[gnome-control-center] printers: Hide header buttons when there's no printer server
- From: Felipe Borges <felipeborges src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center] printers: Hide header buttons when there's no printer server
- Date: Mon, 5 Feb 2018 13:21:25 +0000 (UTC)
commit db9017bf305c06df3ec1dd1fe67a88be39d4671f
Author: Felipe Borges <felipeborges gnome org>
Date: Tue Feb 21 14:31:41 2017 +0100
printers: Hide header buttons when there's no printer server
There's no reason to "Unlock" the panel and/or "Add" a new printer
if there's no printer server available.
This patch sets the visibility of the "headerbar-buttons" based on
whether the current visible stack page in the panel is the
"no-cups-page".
https://bugzilla.gnome.org/show_bug.cgi?id=778599
panels/printers/cc-printers-panel.c | 26 ++++++++++++++++++++++----
1 files changed, 22 insertions(+), 4 deletions(-)
---
diff --git a/panels/printers/cc-printers-panel.c b/panels/printers/cc-printers-panel.c
index 7b174d0..e247573 100644
--- a/panels/printers/cc-printers-panel.c
+++ b/panels/printers/cc-printers-panel.c
@@ -801,17 +801,24 @@ set_current_page (GObject *source_object,
GAsyncResult *result,
gpointer user_data)
{
- GtkWidget *widget = GTK_WIDGET (user_data);
- PpCups *cups = PP_CUPS (source_object);
- gboolean success;
+ CcPrintersPanelPrivate *priv;
+ CcPrintersPanel *self = (CcPrintersPanel *) user_data;
+ GtkWidget *widget;
+ PpCups *cups = PP_CUPS (source_object);
+ gboolean success;
+
+ priv = PRINTERS_PANEL_PRIVATE (self);
success = pp_cups_connection_test_finish (cups, result);
g_object_unref (source_object);
+ widget = (GtkWidget*) gtk_builder_get_object (priv->builder, "main-vbox");
if (success)
gtk_stack_set_visible_child_name (GTK_STACK (widget), "empty-state");
else
gtk_stack_set_visible_child_name (GTK_STACK (widget), "no-cups-page");
+
+ update_sensitivity (user_data);
}
static void
@@ -850,7 +857,7 @@ actualize_printers_list_cb (GObject *source_object,
widget = (GtkWidget*) gtk_builder_get_object (priv->builder, "main-vbox");
if (priv->num_dests == 0 && !priv->new_printer_name)
- pp_cups_connection_test_async (g_object_ref (cups), set_current_page, widget);
+ pp_cups_connection_test_async (g_object_ref (cups), set_current_page, self);
else
gtk_stack_set_visible_child_name (GTK_STACK (widget), "printers-list");
@@ -874,6 +881,8 @@ actualize_printers_list_cb (GObject *source_object,
add_printer_entry (self, priv->dests[i]);
}
+
+ update_sensitivity (user_data);
}
static void
@@ -1027,6 +1036,15 @@ update_sensitivity (gpointer user_data)
cups_server[0] != '/')
local_server = FALSE;
+ widget = (GtkWidget*) gtk_builder_get_object (priv->builder, "headerbar-buttons");
+ gtk_widget_set_visible (widget, !no_cups);
+
+ widget = (GtkWidget*) gtk_builder_get_object (priv->builder, "search-button");
+ gtk_widget_set_visible (widget, !no_cups);
+
+ widget = (GtkWidget*) gtk_builder_get_object (priv->builder, "search-bar");
+ gtk_widget_set_visible (widget, !no_cups);
+
widget = (GtkWidget*) gtk_builder_get_object (priv->builder, "printer-add-button");
gtk_widget_set_sensitive (widget, local_server && priv->is_authorized && !no_cups &&
!priv->new_printer_name);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]