printers: Use CcPermissionInfobar
This makes the Printers panel consistent with the mockups at https://gitlab.gnome.org/Teams/Design/settings-mockups/blob/master/users/users.png See #685, #771 and !671
This commit is contained in:
parent
4897c6d8e3
commit
c9eb8ebf41
2 changed files with 27 additions and 43 deletions
|
@ -42,6 +42,7 @@
|
||||||
#include "pp-printer-entry.h"
|
#include "pp-printer-entry.h"
|
||||||
#include "pp-job.h"
|
#include "pp-job.h"
|
||||||
|
|
||||||
|
#include "cc-permission-infobar.h"
|
||||||
#include "cc-util.h"
|
#include "cc-util.h"
|
||||||
|
|
||||||
#define RENEW_INTERVAL 500
|
#define RENEW_INTERVAL 500
|
||||||
|
@ -76,6 +77,7 @@ struct _CcPrintersPanel
|
||||||
gboolean is_authorized;
|
gboolean is_authorized;
|
||||||
|
|
||||||
GSettings *lockdown_settings;
|
GSettings *lockdown_settings;
|
||||||
|
CcPermissionInfobar *permission_infobar;
|
||||||
|
|
||||||
PpNewPrinterDialog *pp_new_printer_dialog;
|
PpNewPrinterDialog *pp_new_printer_dialog;
|
||||||
PpPPDSelectionDialog *pp_ppd_selection_dialog;
|
PpPPDSelectionDialog *pp_ppd_selection_dialog;
|
||||||
|
@ -88,7 +90,6 @@ struct _CcPrintersPanel
|
||||||
guint dbus_subscription_id;
|
guint dbus_subscription_id;
|
||||||
guint remove_printer_timeout_id;
|
guint remove_printer_timeout_id;
|
||||||
|
|
||||||
GtkWidget *headerbar_buttons;
|
|
||||||
GtkRevealer *notification;
|
GtkRevealer *notification;
|
||||||
PPDList *all_ppds_list;
|
PPDList *all_ppds_list;
|
||||||
GCancellable *get_all_ppds_cancellable;
|
GCancellable *get_all_ppds_cancellable;
|
||||||
|
@ -117,9 +118,6 @@ struct _CcPrintersPanel
|
||||||
|
|
||||||
CC_PANEL_REGISTER (CcPrintersPanel, cc_printers_panel)
|
CC_PANEL_REGISTER (CcPrintersPanel, cc_printers_panel)
|
||||||
|
|
||||||
#define PAGE_LOCK "_lock"
|
|
||||||
#define PAGE_ADDPRINTER "_addprinter"
|
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
gchar *printer_name;
|
gchar *printer_name;
|
||||||
|
@ -242,11 +240,10 @@ cc_printers_panel_constructed (GObject *object)
|
||||||
G_OBJECT_CLASS (cc_printers_panel_parent_class)->constructed (object);
|
G_OBJECT_CLASS (cc_printers_panel_parent_class)->constructed (object);
|
||||||
|
|
||||||
shell = cc_panel_get_shell (CC_PANEL (self));
|
shell = cc_panel_get_shell (CC_PANEL (self));
|
||||||
cc_shell_embed_widget_in_header (shell, self->headerbar_buttons, GTK_POS_RIGHT);
|
|
||||||
|
|
||||||
widget = (GtkWidget*)
|
widget = (GtkWidget*)
|
||||||
gtk_builder_get_object (self->builder, "lock-button");
|
gtk_builder_get_object (self->builder, "printer-add-button");
|
||||||
gtk_lock_button_set_permission (GTK_LOCK_BUTTON (widget), self->permission);
|
cc_shell_embed_widget_in_header (shell, widget, GTK_POS_RIGHT);
|
||||||
|
|
||||||
widget = (GtkWidget*)
|
widget = (GtkWidget*)
|
||||||
gtk_builder_get_object (self->builder, "search-button");
|
gtk_builder_get_object (self->builder, "search-button");
|
||||||
|
@ -1003,9 +1000,6 @@ update_sensitivity (gpointer user_data)
|
||||||
self->lockdown_settings &&
|
self->lockdown_settings &&
|
||||||
!g_settings_get_boolean (self->lockdown_settings, "disable-print-setup");
|
!g_settings_get_boolean (self->lockdown_settings, "disable-print-setup");
|
||||||
|
|
||||||
gtk_stack_set_visible_child_name (GTK_STACK (self->headerbar_buttons),
|
|
||||||
self->is_authorized ? PAGE_ADDPRINTER : PAGE_LOCK);
|
|
||||||
|
|
||||||
widget = (GtkWidget*) gtk_builder_get_object (self->builder, "main-vbox");
|
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)
|
if (g_strcmp0 (gtk_stack_get_visible_child_name (GTK_STACK (widget)), "no-cups-page") == 0)
|
||||||
no_cups = TRUE;
|
no_cups = TRUE;
|
||||||
|
@ -1018,9 +1012,6 @@ update_sensitivity (gpointer user_data)
|
||||||
cups_server[0] != '/')
|
cups_server[0] != '/')
|
||||||
local_server = FALSE;
|
local_server = FALSE;
|
||||||
|
|
||||||
widget = (GtkWidget*) gtk_builder_get_object (self->builder, "headerbar-buttons");
|
|
||||||
gtk_widget_set_visible (widget, !no_cups);
|
|
||||||
|
|
||||||
widget = (GtkWidget*) gtk_builder_get_object (self->builder, "search-button");
|
widget = (GtkWidget*) gtk_builder_get_object (self->builder, "search-button");
|
||||||
gtk_widget_set_visible (widget, !no_cups);
|
gtk_widget_set_visible (widget, !no_cups);
|
||||||
|
|
||||||
|
@ -1028,7 +1019,7 @@ update_sensitivity (gpointer user_data)
|
||||||
gtk_widget_set_visible (widget, !no_cups);
|
gtk_widget_set_visible (widget, !no_cups);
|
||||||
|
|
||||||
widget = (GtkWidget*) gtk_builder_get_object (self->builder, "printer-add-button");
|
widget = (GtkWidget*) gtk_builder_get_object (self->builder, "printer-add-button");
|
||||||
gtk_widget_set_sensitive (widget, local_server && self->is_authorized && !no_cups && !self->new_printer_name);
|
gtk_widget_set_visible (widget, local_server && self->is_authorized && !no_cups && !self->new_printer_name);
|
||||||
|
|
||||||
widget = (GtkWidget*) gtk_builder_get_object (self->builder, "printer-add-button2");
|
widget = (GtkWidget*) gtk_builder_get_object (self->builder, "printer-add-button2");
|
||||||
gtk_widget_set_sensitive (widget, local_server && self->is_authorized && !no_cups && !self->new_printer_name);
|
gtk_widget_set_sensitive (widget, local_server && self->is_authorized && !no_cups && !self->new_printer_name);
|
||||||
|
@ -1191,7 +1182,7 @@ cc_printers_panel_init (CcPrintersPanel *self)
|
||||||
GtkWidget *widget;
|
GtkWidget *widget;
|
||||||
PpCups *cups;
|
PpCups *cups;
|
||||||
g_autoptr(GError) error = NULL;
|
g_autoptr(GError) error = NULL;
|
||||||
gchar *objects[] = { "overlay", "headerbar-buttons", "search-button", NULL };
|
gchar *objects[] = { "overlay", "permission-infobar", "printer-add-button", "search-button", NULL };
|
||||||
guint builder_result;
|
guint builder_result;
|
||||||
|
|
||||||
g_resources_register (cc_printers_get_resource ());
|
g_resources_register (cc_printers_get_resource ());
|
||||||
|
@ -1236,6 +1227,8 @@ cc_printers_panel_init (CcPrintersPanel *self)
|
||||||
self->cups_status_check_cancellable = g_cancellable_new ();
|
self->cups_status_check_cancellable = g_cancellable_new ();
|
||||||
self->get_job_attributes_cancellable = g_cancellable_new ();
|
self->get_job_attributes_cancellable = g_cancellable_new ();
|
||||||
|
|
||||||
|
g_type_ensure (CC_TYPE_PERMISSION_INFOBAR);
|
||||||
|
|
||||||
builder_result = gtk_builder_add_objects_from_resource (self->builder,
|
builder_result = gtk_builder_add_objects_from_resource (self->builder,
|
||||||
"/org/gnome/control-center/printers/printers.ui",
|
"/org/gnome/control-center/printers/printers.ui",
|
||||||
objects, &error);
|
objects, &error);
|
||||||
|
@ -1247,10 +1240,6 @@ cc_printers_panel_init (CcPrintersPanel *self)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
widget = (GtkWidget*)
|
|
||||||
gtk_builder_get_object (self->builder, "headerbar-buttons");
|
|
||||||
self->headerbar_buttons = widget;
|
|
||||||
|
|
||||||
self->notification = (GtkRevealer*)
|
self->notification = (GtkRevealer*)
|
||||||
gtk_builder_get_object (self->builder, "notification");
|
gtk_builder_get_object (self->builder, "notification");
|
||||||
|
|
||||||
|
@ -1262,6 +1251,9 @@ cc_printers_panel_init (CcPrintersPanel *self)
|
||||||
gtk_builder_get_object (self->builder, "notification-dismiss-button");
|
gtk_builder_get_object (self->builder, "notification-dismiss-button");
|
||||||
g_signal_connect (widget, "clicked", G_CALLBACK (on_notification_dismissed), self);
|
g_signal_connect (widget, "clicked", G_CALLBACK (on_notification_dismissed), self);
|
||||||
|
|
||||||
|
self->permission_infobar = (CcPermissionInfobar*)
|
||||||
|
gtk_builder_get_object (self->builder, "permission-infobar");
|
||||||
|
|
||||||
/* add the top level widget */
|
/* add the top level widget */
|
||||||
top_widget = (GtkWidget*)
|
top_widget = (GtkWidget*)
|
||||||
gtk_builder_get_object (self->builder, "overlay");
|
gtk_builder_get_object (self->builder, "overlay");
|
||||||
|
@ -1304,6 +1296,10 @@ cc_printers_panel_init (CcPrintersPanel *self)
|
||||||
G_CALLBACK (on_permission_changed),
|
G_CALLBACK (on_permission_changed),
|
||||||
self,
|
self,
|
||||||
G_CONNECT_AFTER);
|
G_CONNECT_AFTER);
|
||||||
|
|
||||||
|
cc_permission_infobar_set_permission (self->permission_infobar,
|
||||||
|
self->permission);
|
||||||
|
|
||||||
on_permission_changed (self->permission, NULL, self);
|
on_permission_changed (self->permission, NULL, self);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -1,31 +1,14 @@
|
||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<interface>
|
<interface>
|
||||||
<requires lib="gtk+" version="3.12"/>
|
<requires lib="gtk+" version="3.12"/>
|
||||||
<!-- interface-naming-policy project-wide -->
|
<object class="GtkButton" id="printer-add-button">
|
||||||
<object class="GtkStack" id="headerbar-buttons">
|
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<child>
|
<property name="sensitive">True</property>
|
||||||
<object class="GtkLockButton" id="lock-button">
|
<property name="use_underline">True</property>
|
||||||
<property name="visible">True</property>
|
<property name="label" translatable="yes" comments="Translators: This button adds new printer.">Add…</property>
|
||||||
</object>
|
<style>
|
||||||
<packing>
|
<class name="suggested-action"/>
|
||||||
<property name="name">_lock</property>
|
</style>
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkButton" id="printer-add-button">
|
|
||||||
<property name="visible">True</property>
|
|
||||||
<property name="sensitive">True</property>
|
|
||||||
<property name="use_underline">True</property>
|
|
||||||
<property name="label" translatable="yes" comments="Translators: This button adds new printer.">Add…</property>
|
|
||||||
<style>
|
|
||||||
<class name="suggested-action"/>
|
|
||||||
</style>
|
|
||||||
</object>
|
|
||||||
<packing>
|
|
||||||
<property name="name">_addprinter</property>
|
|
||||||
</packing>
|
|
||||||
</child>
|
|
||||||
</object>
|
</object>
|
||||||
|
|
||||||
<object class="GtkToggleButton" id="search-button">
|
<object class="GtkToggleButton" id="search-button">
|
||||||
|
@ -112,6 +95,11 @@
|
||||||
<object class="GtkBox">
|
<object class="GtkBox">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="orientation">GTK_ORIENTATION_VERTICAL</property>
|
<property name="orientation">GTK_ORIENTATION_VERTICAL</property>
|
||||||
|
<child>
|
||||||
|
<object class="CcPermissionInfobar" id="permission-infobar">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkSearchBar" id="search-bar">
|
<object class="GtkSearchBar" id="search-bar">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue