diff options
author | Marek Kasik <mkasik@redhat.com> | 2011-10-14 19:25:04 +0200 |
---|---|---|
committer | Marek Kasik <mkasik@redhat.com> | 2011-10-14 19:25:04 +0200 |
commit | 3c1442ceba56a68b89740e0b13ba6dcefd422845 (patch) | |
tree | bfce88ed753027c1dfddde81075b0d51497cedfb | |
parent | 5de892f312b05aeaa60962cce775cc66d55ae805 (diff) | |
download | gnome-control-center-3c1442ceba56a68b89740e0b13ba6dcefd422845.tar.gz |
Printers: Make +/- buttons insensitive when can not connect to CUPS
Check whether sad computer is displayed and set sensitivity accordingly.
The check doesn't try to connect to CUPS because of performance reasons.
-rw-r--r-- | panels/printers/cc-printers-panel.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/panels/printers/cc-printers-panel.c b/panels/printers/cc-printers-panel.c index 187a60139..e72912177 100644 --- a/panels/printers/cc-printers-panel.c +++ b/panels/printers/cc-printers-panel.c @@ -1123,6 +1123,8 @@ actualize_printers_list (CcPrintersPanel *self) g_free (current_printer_name); g_free (current_printer_instance); g_object_unref (store); + + actualize_sensitivity (self); } static void @@ -2256,6 +2258,7 @@ actualize_sensitivity (gpointer user_data) gboolean is_discovered = FALSE; gboolean printer_selected; gboolean local_server = TRUE; + gboolean no_cups = FALSE; gint i; priv = PRINTERS_PANEL_PRIVATE (self); @@ -2289,14 +2292,18 @@ actualize_sensitivity (gpointer user_data) cups_server[0] != '/') local_server = FALSE; + widget = (GtkWidget*) gtk_builder_get_object (priv->builder, "notebook"); + if (gtk_notebook_get_current_page (GTK_NOTEBOOK (widget)) == NOTEBOOK_NO_CUPS_PAGE) + no_cups = TRUE; + widget = (GtkWidget*) gtk_builder_get_object (priv->builder, "printer-add-button"); - gtk_widget_set_sensitive (widget, local_server && is_authorized); + gtk_widget_set_sensitive (widget, local_server && is_authorized && !no_cups); widget = (GtkWidget*) gtk_builder_get_object (priv->builder, "printer-add-button2"); - gtk_widget_set_sensitive (widget, local_server && is_authorized); + gtk_widget_set_sensitive (widget, local_server && is_authorized && !no_cups); widget = (GtkWidget*) gtk_builder_get_object (priv->builder, "printer-remove-button"); - gtk_widget_set_sensitive (widget, local_server && !is_discovered && is_authorized && printer_selected); + gtk_widget_set_sensitive (widget, local_server && !is_discovered && is_authorized && printer_selected && !no_cups); widget = (GtkWidget*) gtk_builder_get_object (priv->builder, "printer-disable-switch"); gtk_widget_set_sensitive (widget, local_server && !is_discovered && is_authorized); |