Instead of directly applying the deletion of a printer, we should follow the GNOME in-app notification deletion guidelines. This patch introduces the in-app notification following the HIG[0] for the deletion of a printer. It allows to "undo" the deletion. The default behavior for these notification is to dismiss a previous notification. In doing so, when deleting multiple printers, the "Undo" button only restores the last deleted one. We don't do batch/ bulk removal in the printers panel. [0] https://developer.gnome.org/hig/stable/in-app-notifications.html.en https://bugzilla.gnome.org/show_bug.cgi?id=693187
278 lines
9.9 KiB
XML
278 lines
9.9 KiB
XML
<?xml version="1.0"?>
|
||
<interface>
|
||
<requires lib="gtk+" version="3.12"/>
|
||
<!-- interface-naming-policy project-wide -->
|
||
<object class="GtkStack" id="headerbar-buttons">
|
||
<property name="visible">True</property>
|
||
<child>
|
||
<object class="GtkLockButton" id="lock-button">
|
||
<property name="visible">True</property>
|
||
</object>
|
||
<packing>
|
||
<property name="name">_lock</property>
|
||
</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 class="GtkToggleButton" id="search-button">
|
||
<property name="visible">True</property>
|
||
<property name="margin-end">6</property> <!-- since we don't have access to the shell header bar -->
|
||
<style>
|
||
<class name="image-button"/>
|
||
</style>
|
||
<child>
|
||
<object class="GtkImage">
|
||
<property name="visible">True</property>
|
||
<property name="icon_name">system-search-symbolic</property>
|
||
</object>
|
||
</child>
|
||
</object>
|
||
|
||
<object class="GtkOverlay" id="overlay">
|
||
<property name="visible">True</property>
|
||
<child type="overlay">
|
||
<object class="GtkRevealer" id="notification">
|
||
<property name="visible">True</property>
|
||
<property name="halign">GTK_ALIGN_CENTER</property>
|
||
<property name="valign">GTK_ALIGN_START</property>
|
||
<child>
|
||
<object class="GtkBox">
|
||
<property name="visible">True</property>
|
||
<property name="spacing">6</property>
|
||
<style>
|
||
<class name="app-notification"/>
|
||
</style>
|
||
<child>
|
||
<object class="GtkLabel" id="notification-label">
|
||
<property name="visible">True</property>
|
||
<property name="wrap">True</property>
|
||
<property name="max_width_chars">50</property>
|
||
</object>
|
||
</child>
|
||
<child>
|
||
<object class="GtkButton" id="notification-undo-button">
|
||
<property name="visible">True</property>
|
||
<property name="can_focus">True</property>
|
||
<property name="valign">GTK_ALIGN_CENTER</property>
|
||
<property name="label" translatable="yes" comments="Translators: This is the button which allows undoing the removal of the printer.">Undo</property>
|
||
</object>
|
||
</child>
|
||
<child>
|
||
<object class="GtkButton" id="notification-dismiss-button">
|
||
<property name="visible">True</property>
|
||
<property name="valign">GTK_ALIGN_CENTER</property>
|
||
<style>
|
||
<class name="flat"/>
|
||
</style>
|
||
<child>
|
||
<object class="GtkImage">
|
||
<property name="visible">True</property>
|
||
<property name="icon_name">window-close-symbolic</property>
|
||
</object>
|
||
</child>
|
||
</object>
|
||
</child>
|
||
</object>
|
||
</child>
|
||
</object>
|
||
</child>
|
||
<child>
|
||
|
||
<object class="GtkStack" id="main-vbox">
|
||
<child>
|
||
<object class="GtkBox">
|
||
<property name="visible">True</property>
|
||
<child>
|
||
<object class="GtkSpinner" id="loading-spinner">
|
||
<property name="visible">True</property>
|
||
<property name="active">True</property>
|
||
<property name="expand">True</property>
|
||
</object>
|
||
</child>
|
||
</object>
|
||
<packing>
|
||
<property name="name">loading-page</property>
|
||
</packing>
|
||
</child>
|
||
<child>
|
||
<object class="GtkBox">
|
||
<property name="visible">True</property>
|
||
<property name="orientation">GTK_ORIENTATION_VERTICAL</property>
|
||
<child>
|
||
<object class="GtkSearchBar" id="search-bar">
|
||
<property name="visible">True</property>
|
||
<property name="hexpand">True</property>
|
||
<property name="search_mode_enabled" bind-source="search-button" bind-property="active" bind-flags="bidirectional" />
|
||
<child>
|
||
<object class="GtkSearchEntry" id="search-entry">
|
||
<property name="visible">True</property>
|
||
<property name="width_chars">30</property>
|
||
</object>
|
||
</child>
|
||
</object>
|
||
</child>
|
||
<child>
|
||
<object class="GtkScrolledWindow">
|
||
<property name="visible">True</property>
|
||
<property name="hscrollbar-policy">GTK_POLICY_NEVER</property>
|
||
<property name="min-content-height">490</property>
|
||
<child>
|
||
<object class="GtkListBox" id="content">
|
||
<property name="visible">True</property>
|
||
<property name="can_focus">True</property>
|
||
<property name="selection-mode">GTK_SELECTION_NONE</property>
|
||
<style>
|
||
<class name="background"/>
|
||
</style>
|
||
</object>
|
||
</child>
|
||
</object>
|
||
</child>
|
||
</object>
|
||
<packing>
|
||
<property name="name">printers-list</property>
|
||
</packing>
|
||
</child>
|
||
<child>
|
||
<object class="GtkBox">
|
||
<property name="visible">True</property>
|
||
<property name="can_focus">False</property>
|
||
<property name="spacing">10</property>
|
||
<property name="orientation">vertical</property>
|
||
<property name="valign">center</property>
|
||
<child>
|
||
<object class="GtkImage">
|
||
<property name="visible">True</property>
|
||
<property name="can_focus">False</property>
|
||
<property name="valign">start</property>
|
||
<property name="pixel_size">72</property>
|
||
<property name="icon_name">printer-symbolic</property>
|
||
<style>
|
||
<class name="dim-label"/>
|
||
</style>
|
||
</object>
|
||
<packing>
|
||
<property name="expand">False</property>
|
||
<property name="fill">False</property>
|
||
<property name="position">0</property>
|
||
</packing>
|
||
</child>
|
||
<child>
|
||
<object class="GtkLabel">
|
||
<property name="visible">True</property>
|
||
<property name="margin_bottom">15</property>
|
||
<property name="label" translatable="yes">No printers</property>
|
||
<style>
|
||
<class name="dim-label"/>
|
||
</style>
|
||
<attributes>
|
||
<attribute name="scale" value="1.2"/>
|
||
</attributes>
|
||
</object>
|
||
<packing>
|
||
<property name="position">1</property>
|
||
</packing>
|
||
</child>
|
||
<child>
|
||
<object class="GtkButton" id="printer-add-button2">
|
||
<property name="label" translatable="yes" comments="Translators: This button adds new printer.">Add a Printer…</property>
|
||
<property name="visible">True</property>
|
||
<property name="can_focus">True</property>
|
||
<property name="receives_default">True</property>
|
||
<property name="halign">center</property>
|
||
<property name="relief">normal</property>
|
||
<style>
|
||
<class name="suggested-action"/>
|
||
</style>
|
||
</object>
|
||
<packing>
|
||
<property name="expand">False</property>
|
||
<property name="fill">False</property>
|
||
<property name="position">2</property>
|
||
</packing>
|
||
</child>
|
||
</object>
|
||
<packing>
|
||
<property name="name">empty-state</property>
|
||
</packing>
|
||
</child>
|
||
<child>
|
||
<object class="GtkBox">
|
||
<property name="visible">True</property>
|
||
<property name="can_focus">False</property>
|
||
<property name="spacing">10</property>
|
||
<property name="orientation">vertical</property>
|
||
<property name="valign">center</property>
|
||
<child>
|
||
<object class="GtkLabel">
|
||
<property name="visible">True</property>
|
||
<property name="can_focus">False</property>
|
||
<property name="label" translatable="yes" comments="Translators: The CUPS server is not running (we can not connect to it).">Sorry! The system printing service
|
||
doesn’t seem to be available.</property>
|
||
<style>
|
||
<class name="dim-label"/>
|
||
</style>
|
||
<attributes>
|
||
<attribute name="scale" value="1.2"/>
|
||
</attributes>
|
||
</object>
|
||
<packing>
|
||
<property name="expand">True</property>
|
||
<property name="fill">True</property>
|
||
<property name="position">1</property>
|
||
</packing>
|
||
</child>
|
||
<child>
|
||
<object class="GtkImage">
|
||
<property name="visible">True</property>
|
||
<property name="can_focus">False</property>
|
||
<property name="valign">start</property>
|
||
<property name="pixel_size">72</property>
|
||
<property name="icon_name">computer-fail-symbolic</property>
|
||
<style>
|
||
<class name="dim-label"/>
|
||
</style>
|
||
</object>
|
||
<packing>
|
||
<property name="expand">True</property>
|
||
<property name="fill">True</property>
|
||
<property name="position">0</property>
|
||
</packing>
|
||
</child>
|
||
</object>
|
||
<packing>
|
||
<property name="name">no-cups-page</property>
|
||
</packing>
|
||
</child>
|
||
</object>
|
||
|
||
</child>
|
||
</object>
|
||
|
||
<object class="GtkSizeGroup" id="sizegroup1">
|
||
<widgets>
|
||
<widget name="back-button-1"/>
|
||
<widget name="back-spacer-label-1"/>
|
||
</widgets>
|
||
</object>
|
||
<object class="GtkSizeGroup" id="sizegroup2">
|
||
<widgets>
|
||
<widget name="back-button-2"/>
|
||
<widget name="back-spacer-label-2"/>
|
||
</widgets>
|
||
</object>
|
||
</interface>
|