[shotwell] Make ManifestWidget templated



commit f489c26f64aa16b989c397002c076553845d5cf7
Author: Jens Georg <mail jensge org>
Date:   Wed Dec 20 14:13:21 2017 +0100

    Make ManifestWidget templated

 org.gnome.Shotwell.gresource.xml |    1 +
 src/dialogs/Preferences.vala     |    2 +-
 src/plugins/ManifestWidget.vala  |   32 ++++++----------------
 ui/manifest_widget.ui            |   55 ++++++++++++++++++++++++++++++++++++++
 ui/shotwell.ui                   |   50 ----------------------------------
 5 files changed, 66 insertions(+), 74 deletions(-)
---
diff --git a/org.gnome.Shotwell.gresource.xml b/org.gnome.Shotwell.gresource.xml
index 538f919..fac0103 100644
--- a/org.gnome.Shotwell.gresource.xml
+++ b/org.gnome.Shotwell.gresource.xml
@@ -12,6 +12,7 @@
       <file preprocess="xml-stripblanks">ui/import.ui</file>
       <file preprocess="xml-stripblanks">ui/media.ui</file>
       <file preprocess="xml-stripblanks">ui/multitextentrydialog.ui</file>
+      <file preprocess="xml-stripblanks">ui/manifest_widget.ui</file>
       <file preprocess="xml-stripblanks">ui/offline.ui</file>
       <file preprocess="xml-stripblanks">ui/photo_context.ui</file>
       <file preprocess="xml-stripblanks">ui/photo.ui</file>
diff --git a/src/dialogs/Preferences.vala b/src/dialogs/Preferences.vala
index 6bbe28a..3286cb2 100644
--- a/src/dialogs/Preferences.vala
+++ b/src/dialogs/Preferences.vala
@@ -135,7 +135,7 @@ public class PreferencesDialog : Gtk.Dialog {
 
         lowercase.toggled.connect(on_lowercase_toggled);
 
-        (preferences_notebook.get_nth_page (2) as Gtk.Container).add (plugins_mediator.widget);
+        (preferences_notebook.get_nth_page (2) as Gtk.Container).add (plugins_mediator);
 
         populate_preference_options();
 
diff --git a/src/plugins/ManifestWidget.vala b/src/plugins/ManifestWidget.vala
index b6897ba..8fb0ba2 100644
--- a/src/plugins/ManifestWidget.vala
+++ b/src/plugins/ManifestWidget.vala
@@ -6,29 +6,20 @@
 
 namespace Plugins {
 
-public class ManifestWidgetMediator {
-    public Gtk.Widget widget {
-        get {
-            return builder.get_object("plugin-manifest") as Gtk.Widget;
-        }
-    }
+
+[GtkTemplate (ui = "/org/gnome/Shotwell/ui/manifest_widget.ui")]
+public class ManifestWidgetMediator : Gtk.Box {
+    [GtkChild]
+    private Gtk.Button about_button;
     
-    private Gtk.Button about_button {
-        get {
-            return builder.get_object("about-plugin-button") as Gtk.Button;
-        }
-    }
+    [GtkChild]
+    private Gtk.ScrolledWindow list_bin;
     
-    private Gtk.ScrolledWindow list_bin {
-        get {
-            return builder.get_object("plugin-list-scrolled-window") as Gtk.ScrolledWindow;
-        }
-    }
-    
-    private Gtk.Builder builder = AppWindow.create_builder();
     private ManifestListView list = new ManifestListView();
     
     public ManifestWidgetMediator() {
+        Object();
+
         list_bin.add(list);
         
         about_button.clicked.connect(on_about);
@@ -37,11 +28,6 @@ public class ManifestWidgetMediator {
         set_about_button_sensitivity();
     }
     
-    ~ManifestWidgetMediator() {
-        about_button.clicked.disconnect(on_about);
-        list.get_selection().changed.disconnect(on_selection_changed);
-    }
-    
     private void on_about() {
         string[] ids = list.get_selected_ids();
         if (ids.length == 0)
diff --git a/ui/manifest_widget.ui b/ui/manifest_widget.ui
new file mode 100644
index 0000000..edbeb59
--- /dev/null
+++ b/ui/manifest_widget.ui
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.20.0 -->
+<interface domain="shotwell">
+  <requires lib="gtk+" version="3.18"/>
+  <template class="ManifestWidgetMediator" parent="GtkBox">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="orientation">vertical</property>
+    <property name="spacing">12</property>
+    <child>
+      <object class="GtkScrolledWindow" id="list_bin">
+        <property name="visible">True</property>
+        <property name="can_focus">True</property>
+        <property name="hexpand">True</property>
+        <property name="vexpand">True</property>
+        <property name="hscrollbar_policy">never</property>
+        <property name="shadow_type">etched-in</property>
+        <child>
+          <placeholder/>
+        </child>
+      </object>
+      <packing>
+        <property name="expand">False</property>
+        <property name="fill">True</property>
+        <property name="position">0</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkButtonBox" id="hbuttonbox1">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="layout_style">end</property>
+        <child>
+          <object class="GtkButton" id="about_button">
+            <property name="label" translatable="yes">_About</property>
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="use_underline">True</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">False</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+      </object>
+      <packing>
+        <property name="expand">False</property>
+        <property name="fill">False</property>
+        <property name="position">1</property>
+      </packing>
+    </child>
+  </template>
+</interface>
diff --git a/ui/shotwell.ui b/ui/shotwell.ui
index 8d1e315..f8659d6 100644
--- a/ui/shotwell.ui
+++ b/ui/shotwell.ui
@@ -10,56 +10,6 @@
       <placeholder/>
     </child>
   </object>
-  <object class="GtkBox" id="plugin-manifest">
-    <property name="visible">True</property>
-    <property name="can_focus">False</property>
-    <property name="orientation">vertical</property>
-    <property name="spacing">12</property>
-    <child>
-      <object class="GtkScrolledWindow" id="plugin-list-scrolled-window">
-        <property name="visible">True</property>
-        <property name="can_focus">True</property>
-        <property name="hexpand">True</property>
-        <property name="vexpand">True</property>
-        <property name="hscrollbar_policy">never</property>
-        <property name="shadow_type">etched-in</property>
-        <child>
-          <placeholder/>
-        </child>
-      </object>
-      <packing>
-        <property name="expand">False</property>
-        <property name="fill">True</property>
-        <property name="position">0</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkButtonBox" id="hbuttonbox1">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="layout_style">end</property>
-        <child>
-          <object class="GtkButton" id="about-plugin-button">
-            <property name="label">_About</property>
-            <property name="visible">True</property>
-            <property name="can_focus">True</property>
-            <property name="receives_default">True</property>
-            <property name="use_underline">True</property>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">False</property>
-            <property name="position">0</property>
-          </packing>
-        </child>
-      </object>
-      <packing>
-        <property name="expand">False</property>
-        <property name="fill">False</property>
-        <property name="position">1</property>
-      </packing>
-    </child>
-  </object>
   <object class="GtkBox" id="progress_pane_widget">
     <property name="visible">True</property>
     <property name="can_focus">False</property>


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