summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Kasik <mkasik@redhat.com>2011-10-14 19:25:04 +0200
committerMarek Kasik <mkasik@redhat.com>2011-10-14 19:25:04 +0200
commit3c1442ceba56a68b89740e0b13ba6dcefd422845 (patch)
treebfce88ed753027c1dfddde81075b0d51497cedfb
parent5de892f312b05aeaa60962cce775cc66d55ae805 (diff)
downloadgnome-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.c13
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);