[gnome-tweak-tool] tweakview: Allow tweak groups to provide extra titlebar widgets



commit 2f4d7f0b2f9024b246069290065fc5f89d2536e6
Author: Florian Müllner <fmuellner gnome org>
Date:   Wed Feb 8 22:26:45 2017 +0100

    tweakview: Allow tweak groups to provide extra titlebar widgets
    
    Current mockups make use of the titlebar for certain views, so allow
    groups to specify a widget that appears to the headerbar when active.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=778669

 gtweak/tweakmodel.py |    1 +
 gtweak/tweakview.py  |   10 ++++++++++
 2 files changed, 11 insertions(+), 0 deletions(-)
---
diff --git a/gtweak/tweakmodel.py b/gtweak/tweakmodel.py
index cddecf8..0ad94de 100644
--- a/gtweak/tweakmodel.py
+++ b/gtweak/tweakmodel.py
@@ -77,6 +77,7 @@ class TweakGroup(object):
 
     def __init__(self, name, *tweaks, **options):
         self.name = name
+        self.titlebar_widget = None
         self.tweaks = [t for t in tweaks if t.loaded]
         self.uid = options.get('uid', self.__class__.__name__)
 
diff --git a/gtweak/tweakview.py b/gtweak/tweakview.py
index 274047d..0a2eaec 100644
--- a/gtweak/tweakview.py
+++ b/gtweak/tweakview.py
@@ -84,6 +84,8 @@ class Window(Gtk.ApplicationWindow):
 
         self._update_decorations (Gtk.Settings.get_default(), None)
 
+        self._group_titlebar_widget = None
+
         self.title = Gtk.Label(label="")
         self.title.get_style_context().add_class("title")
         right_header.set_custom_title(self.title)
@@ -252,6 +254,14 @@ class Window(Gtk.ApplicationWindow):
             group = row.get_child().get_text()
             self.stack.set_visible_child_name(group)
             self.title.set_text(group)
+            tweakgroup = self._model.get_value(
+                                self._model.get_tweakgroup_iter(group),
+                                self._model.COLUMN_TWEAK)
+            if self._group_titlebar_widget:
+                self._right_header.remove(self._group_titlebar_widget)
+            self._group_titlebar_widget = tweakgroup.titlebar_widget
+            if self._group_titlebar_widget:
+                self._right_header.pack_end(self._group_titlebar_widget)
 
     def _on_find_toggled(self, btn):
          if self.searchbar.get_search_mode():


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