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
-
-
- horizontal
-
-
-
-
-
-