cc-printers-panel: don't show two Add Printer buttons at once

As described in #1976, the printers panel shows two Add Printer buttons when the
printers list is empty. Adds a check that sets the Add Printer button in the toolbar
to be invisible when the empty-state page is shown (and thus the other Add Printer
button is visible), creating a less confusing UI.

Closes #1976
This commit is contained in:
Eric Daigle 2022-08-10 16:03:30 -07:00 committed by Marek Kašík
parent e3395b1dc3
commit a71c3ac3c3

View file

@ -987,6 +987,7 @@ update_sensitivity (gpointer user_data)
GtkWidget *widget;
gboolean local_server = TRUE;
gboolean no_cups = FALSE;
gboolean empty_state = FALSE;
self->is_authorized =
self->permission &&
@ -997,6 +998,8 @@ update_sensitivity (gpointer user_data)
widget = (GtkWidget*) gtk_builder_get_object (self->builder, "main-vbox");
if (g_strcmp0 (gtk_stack_get_visible_child_name (GTK_STACK (widget)), "no-cups-page") == 0)
no_cups = TRUE;
else if (g_strcmp0 (gtk_stack_get_visible_child_name (GTK_STACK (widget)), "empty-state") == 0)
empty_state = TRUE;
cups_server = cupsServer ();
if (cups_server &&
@ -1013,6 +1016,7 @@ update_sensitivity (gpointer user_data)
gtk_widget_set_visible (widget, !no_cups);
widget = (GtkWidget*) gtk_builder_get_object (self->builder, "printer-add-button");
gtk_widget_set_visible (widget, !empty_state);
gtk_widget_set_sensitive (widget, local_server && self->is_authorized && !no_cups && !self->new_printer_name);
widget = (GtkWidget*) gtk_builder_get_object (self->builder, "printer-add-button2");