diff --git a/panels/printers/pp-details-dialog.c b/panels/printers/pp-details-dialog.c index 520dc7b69..7bd557d8a 100644 --- a/panels/printers/pp-details-dialog.c +++ b/panels/printers/pp-details-dialog.c @@ -42,13 +42,12 @@ struct _PpDetailsDialog { AdwWindow parent_instance; GtkBox *driver_buttons; - GtkBox *loading_box; + GtkSpinner *spinner_driver_search; GtkLabel *printer_address_label; - GtkRevealer *print_name_hint_revealer; - GtkEntry *printer_location_entry; - GtkLabel *printer_model_label; - GtkStack *printer_model_stack; - GtkEntry *printer_name_entry; + GtkRevealer *printer_name_hint_revealer; + AdwEntryRow *printer_location_entry; + AdwActionRow *printer_model_label; + AdwEntryRow *printer_name_entry; GtkButton *search_for_drivers_button; gchar *printer_name; @@ -73,10 +72,12 @@ printer_name_changed (PpDetailsDialog *self) if (printer_name_is_valid (name)){ /* Translators: This is the title of the dialog. %s is the printer name. */ title = g_strdup_printf (_("%s Details"), name); - gtk_revealer_set_reveal_child (self->print_name_hint_revealer, FALSE); gtk_window_set_title (GTK_WINDOW (self), title); + gtk_revealer_set_reveal_child (self->printer_name_hint_revealer, FALSE); + gtk_widget_remove_css_class (GTK_WIDGET (self->printer_name_entry), "error"); } else { - gtk_revealer_set_reveal_child (self->print_name_hint_revealer, TRUE); + gtk_revealer_set_reveal_child (self->printer_name_hint_revealer, TRUE); + gtk_widget_add_css_class (GTK_WIDGET (self->printer_name_entry), "error"); } } @@ -94,7 +95,7 @@ get_ppd_names_cb (PPDName **names, { if (names != NULL) { - gtk_label_set_text (self->printer_model_label, names[0]->ppd_display_name); + adw_action_row_set_subtitle (self->printer_model_label, names[0]->ppd_display_name); printer_set_ppd_async (printer_name, names[0]->ppd_name, self->cancellable, @@ -103,18 +104,18 @@ get_ppd_names_cb (PPDName **names, } else { - gtk_label_set_text (self->printer_model_label, _("No suitable driver found")); + adw_action_row_set_subtitle (self->printer_model_label, _("No suitable driver found")); + gtk_widget_set_visible (GTK_WIDGET (self->spinner_driver_search), FALSE); } - - gtk_stack_set_visible_child (self->printer_model_stack, GTK_WIDGET (self->printer_model_label)); } } static void search_for_drivers (PpDetailsDialog *self) { - gtk_stack_set_visible_child (self->printer_model_stack, GTK_WIDGET (self->loading_box)); + gtk_widget_set_visible (GTK_WIDGET (self->spinner_driver_search), TRUE); gtk_widget_set_sensitive (GTK_WIDGET (self->search_for_drivers_button), FALSE); + adw_action_row_set_subtitle (self->printer_model_label, _("Searching for preferred drivers…")); get_ppd_names_async (self->printer_name, 1, @@ -130,7 +131,7 @@ set_ppd_cb (const gchar *printer_name, { PpDetailsDialog *self = (PpDetailsDialog*) user_data; - gtk_label_set_text (GTK_LABEL (self->printer_model_label), self->ppd_file_name); + adw_action_row_set_subtitle (self->printer_model_label, self->ppd_file_name); } static void @@ -330,13 +331,12 @@ pp_details_dialog_class_init (PpDetailsDialogClass *klass) gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/control-center/printers/pp-details-dialog.ui"); - gtk_widget_class_bind_template_child (widget_class, PpDetailsDialog, print_name_hint_revealer); + gtk_widget_class_bind_template_child (widget_class, PpDetailsDialog, printer_name_hint_revealer); gtk_widget_class_bind_template_child (widget_class, PpDetailsDialog, driver_buttons); - gtk_widget_class_bind_template_child (widget_class, PpDetailsDialog, loading_box); + gtk_widget_class_bind_template_child (widget_class, PpDetailsDialog, spinner_driver_search); gtk_widget_class_bind_template_child (widget_class, PpDetailsDialog, printer_address_label); gtk_widget_class_bind_template_child (widget_class, PpDetailsDialog, printer_location_entry); gtk_widget_class_bind_template_child (widget_class, PpDetailsDialog, printer_model_label); - gtk_widget_class_bind_template_child (widget_class, PpDetailsDialog, printer_model_stack); gtk_widget_class_bind_template_child (widget_class, PpDetailsDialog, printer_name_entry); gtk_widget_class_bind_template_child (widget_class, PpDetailsDialog, search_for_drivers_button); @@ -373,7 +373,7 @@ pp_details_dialog_new (gchar *printer_name, gtk_editable_set_text (GTK_EDITABLE (self->printer_name_entry), printer_name); gtk_editable_set_text (GTK_EDITABLE (self->printer_location_entry), printer_location); - gtk_label_set_text (GTK_LABEL (self->printer_model_label), printer_make_and_model); + adw_action_row_set_subtitle (self->printer_model_label, printer_make_and_model); update_sensitivity (self, sensitive); diff --git a/panels/printers/pp-details-dialog.ui b/panels/printers/pp-details-dialog.ui index 2e50f2624..f16644cdd 100644 --- a/panels/printers/pp-details-dialog.ui +++ b/panels/printers/pp-details-dialog.ui @@ -6,216 +6,152 @@ False True True + 360 + 294 + 360 + 500 - - 20 - 20 - 20 - 20 - center - 10 - 10 + + - - Name - end - printer_name_entry - - 0 - 0 - - - - - - - fill - 320 - - - 1 - 0 - - - - - - True - False + - - True - Printer names cannot contain SPACE, TAB, #, or / - 0 - 0 - - - - - - - - 1 - 1 - - - - - - - Location - end - printer_location_entry - - 0 - 2 - - - - - - - 320 - fill - - 1 - 2 - - - - - - - Address - end - printer_address_label - - 0 - 3 - - - - - - - 192.168.0.1 - start - - 1 - 3 - - - - - - - Driver - end - printer_model_label - - 0 - 4 - - - - - - - start - - 1 - 4 - - - - start - HP Inkjet Delux 9000 - True + + Name + - - start - 5 - - + + Location + + + + + + + vertical + 3 + start + center + + + Address + True + end + start + + + + + + 1 + start + true + + + + + + + + + Driver + + + false True - start + + + + + + + True + False - - start - Searching for preferred drivers… + + True + horizontal + 6 + 12 + 12 + + + dialog-warning-symbolic + + + + + + True + Printer names cannot contain SPACE, TAB, #, or / + 0 + 0 + + + - + - - vertical - 10 - start - - 1 - 5 - + - - Search for Drivers - fill - + + vertical + 6 + + + _Search for Drivers + True + fill + + + + + + S_elect from Database… + True + fill + + + + + + _Install PPD File… + True + fill + + + - - - Select from Database… - fill - - - - - - - Install PPD File… - fill - - - - - - - horizontal - - - - - -