[gnome-usage] storage-actionbar: Port to Gtk+ widget template



commit 64aac4b27da8ecd08fa5355f27089b74a22a04fc
Author: Petr Štětka <pstetka redhat com>
Date:   Tue Aug 22 13:38:30 2017 +0200

    storage-actionbar: Port to Gtk+ widget template
    
    https://bugzilla.gnome.org/show_bug.cgi?id=781542

 data/org.gnome.Usage.gresource.xml |    1 +
 data/ui/storage-actionbar.ui       |   80 ++++++++++++++++++++++++++++++++++++
 src/storage-actionbar.vala         |   57 ++++++++++----------------
 3 files changed, 103 insertions(+), 35 deletions(-)
---
diff --git a/data/org.gnome.Usage.gresource.xml b/data/org.gnome.Usage.gresource.xml
index 9d4b8e2..84e4e4d 100644
--- a/data/org.gnome.Usage.gresource.xml
+++ b/data/org.gnome.Usage.gresource.xml
@@ -6,6 +6,7 @@
         <file preprocess="xml-stripblanks">ui/no-results-found-view.ui</file>
         <file preprocess="xml-stripblanks">ui/performance-view.ui</file>
         <file preprocess="xml-stripblanks">ui/process-dialog.ui</file>
+        <file preprocess="xml-stripblanks">ui/storage-actionbar.ui</file>
         <file preprocess="xml-stripblanks">ui/storage-view.ui</file>
         <file preprocess="xml-stripblanks">ui/process-row.ui</file>
         <file preprocess="xml-stripblanks">ui/sub-process-sub-row.ui</file>
diff --git a/data/ui/storage-actionbar.ui b/data/ui/storage-actionbar.ui
new file mode 100644
index 0000000..1c5fda6
--- /dev/null
+++ b/data/ui/storage-actionbar.ui
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.20.0 -->
+<interface>
+  <requires lib="gtk+" version="3.12"/>
+  <template class="UsageStorageActionBar" parent="GtkActionBar">
+    <property name="visible">True</property>
+    <child>
+      <object class="GtkButton" id="move_to_button">
+        <property name="label" translatable="yes">Move to</property>
+        <property name="visible">False</property>
+        <property name="can_focus">True</property>
+        <property name="receives_default">True</property>
+        <signal name="clicked" handler="move_to_clicked" swapped="no"/>
+      </object>
+    </child>
+    <child>
+      <object class="GtkButton" id="delete_button">
+        <property name="label" translatable="yes">Delete</property>
+        <property name="visible">False</property>
+        <property name="can_focus">True</property>
+        <property name="receives_default">True</property>
+        <signal name="clicked" handler="delete_clicked" swapped="no"/>
+        <style>
+          <class name="destructive-action"/>
+        </style>
+      </object>
+      <packing>
+        <property name="pack_type">end</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkButton" id="move_to_trash_button">
+        <property name="label" translatable="yes">Move to Trash</property>
+        <property name="visible">False</property>
+        <property name="can_focus">True</property>
+        <property name="receives_default">True</property>
+        <signal name="clicked" handler="move_to_trash_clicked" swapped="no"/>
+      </object>
+      <packing>
+        <property name="pack_type">end</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkButton" id="empty_folder_button">
+        <property name="label" translatable="yes">Empty folder</property>
+        <property name="visible">False</property>
+        <property name="can_focus">True</property>
+        <property name="receives_default">True</property>
+        <signal name="clicked" handler="empty_folder_clicked" swapped="no"/>
+      </object>
+      <packing>
+        <property name="pack_type">end</property>
+      </packing>
+    </child>
+     <child>
+      <object class="GtkButton" id="restore_button">
+        <property name="label" translatable="yes">Restore</property>
+        <property name="visible">False</property>
+        <property name="can_focus">True</property>
+        <property name="receives_default">True</property>
+        <signal name="clicked" handler="restore_clicked" swapped="no"/>
+      </object>
+    </child>
+    <child>
+      <object class="GtkButton" id="delete_from_trash_button">
+        <property name="label" translatable="yes">Delete from Trash</property>
+        <property name="visible">False</property>
+        <property name="can_focus">True</property>
+        <property name="receives_default">True</property>
+        <signal name="clicked" handler="delete_from_trash_clicked" swapped="no"/>
+        <style>
+          <class name="destructive-action"/>
+        </style>
+      </object>
+      <packing>
+        <property name="pack_type">end</property>
+      </packing>
+    </child>
+  </template>
+</interface>
diff --git a/src/storage-actionbar.vala b/src/storage-actionbar.vala
index 1abb517..6171e03 100644
--- a/src/storage-actionbar.vala
+++ b/src/storage-actionbar.vala
@@ -20,45 +20,26 @@
 
 namespace Usage
 {
-       public class StorageActionBar : Gtk.ActionBar
-       {
-           private Gtk.Button move_to_button;
-           private Gtk.Button delete_button;
-           private Gtk.Button move_to_trash_button;
-           private Gtk.Button empty_folder_button;
-           private Gtk.Button restore_button;
-           private Gtk.Button delete_from_trash_button;
-
-        public StorageActionBar()
-        {
-            //common
-            move_to_button = new Gtk.Button.with_label(_("Move to"));
-            move_to_button.clicked.connect(move_to_clicked);
-            delete_button = new Gtk.Button.with_label(_("Delete"));
-            delete_button.clicked.connect(delete_clicked);
-            delete_button.get_style_context().add_class ("destructive-action");
-            move_to_trash_button = new Gtk.Button.with_label(_("Move to Trash"));
-            move_to_trash_button.clicked.connect(move_to_trash_clicked);
-            this.pack_start(move_to_button);
-            this.pack_end(delete_button);
-            this.pack_end(move_to_trash_button);
-
-            //root
-            empty_folder_button = new Gtk.Button.with_label(_("Empty folder"));
-            empty_folder_button.clicked.connect(empty_folder_clicked);
-            this.pack_end(empty_folder_button);
-
-            //trash
-            restore_button = new Gtk.Button.with_label(_("Restore"));
-            restore_button.clicked.connect(restore_clicked);
-            delete_from_trash_button = new Gtk.Button.with_label(_("Delete from Trash"));
-            delete_from_trash_button.clicked.connect(delete_from_trash_clicked);
-            delete_from_trash_button.get_style_context().add_class ("destructive-action");
-            this.pack_start(restore_button);
-            this.pack_end(delete_from_trash_button);
+    [GtkTemplate (ui = "/org/gnome/Usage/ui/storage-actionbar.ui")]
+    public class StorageActionBar : Gtk.ActionBar
+    {
+        [GtkChild]
+        private Gtk.Button move_to_button;
 
-            hide_all();
-        }
+        [GtkChild]
+        private Gtk.Button delete_button;
+
+        [GtkChild]
+        private Gtk.Button move_to_trash_button;
+
+        [GtkChild]
+        private Gtk.Button empty_folder_button;
+
+        [GtkChild]
+        private Gtk.Button restore_button;
+
+        [GtkChild]
+        private Gtk.Button delete_from_trash_button;
 
         public void show_common()
         {
@@ -101,6 +82,7 @@ namespace Usage
             delete_from_trash_button.set_sensitive(sensitive);
         }
 
+        [GtkCallback]
         private void move_to_clicked()
         {
             Gtk.FileChooserDialog chooser = new Gtk.FileChooserDialog (
@@ -145,6 +127,7 @@ namespace Usage
             chooser.destroy();
         }
 
+        [GtkCallback]
         private void delete_clicked()
         {
             string files = "";
@@ -181,6 +164,7 @@ namespace Usage
 
         }
 
+        [GtkCallback]
         private void move_to_trash_clicked()
         {
             Timeout.add(0, () => {
@@ -198,6 +182,7 @@ namespace Usage
             });
         }
 
+        [GtkCallback]
         private void empty_folder_clicked()
         {
             Timeout.add(0, () => {
@@ -253,6 +238,7 @@ namespace Usage
             });
         }
 
+        [GtkCallback]
         private void restore_clicked()
         {
             Timeout.add(0, () => {
@@ -270,6 +256,7 @@ namespace Usage
             });
         }
 
+        [GtkCallback]
         private void delete_from_trash_clicked()
         {
             Timeout.add(0, () => {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]