Blob Blame History Raw
From e620956cec21318f74f5dc5736ebeecc96bfd291 Mon Sep 17 00:00:00 2001
From: Rui Matos <tiagomatos@gmail.com>
Date: Fri, 6 Dec 2013 16:07:00 +0100
Subject: [PATCH 5/5] tweakview.py: Remove and re-add all tweaks on tweak
 reload

This is a bit heavier but keeps everything always sorted. The number
of widgets we have isn't high enough for it to be too slow anyway.
---
 gtweak/tweakview.py | 15 ++-------------
 1 file changed, 2 insertions(+), 13 deletions(-)

diff --git a/gtweak/tweakview.py b/gtweak/tweakview.py
index 9de821c..f5ee5c9 100644
--- a/gtweak/tweakview.py
+++ b/gtweak/tweakview.py
@@ -73,7 +73,6 @@ class TweakView:
         ctx.add_provider (provider,6000)
 
         #add all tweaks
-        self._tweak_set = set()
         self._tweak_vbox = builder.get_object('tweak_vbox')
         self.reload_tweaks()
 
@@ -83,24 +82,14 @@ class TweakView:
         self._notification_functions = {}
 
     def reload_tweaks(self):
-        new_tweak_set = set()
+        for widget in self._tweak_vbox:
+            self._tweak_vbox.remove(widget)
 
         for t in sorted(self._model.tweaks, key=_sort_tweak_widgets_by_widget_type):
-            new_tweak_set.add(t)
-            if t in self._tweak_set:
-                continue
-
             t.main_window = self._main_window
             self._tweak_vbox.pack_start(t.widget, False, False, 0)
             t.set_notify_cb(self._on_tweak_notify)
 
-            self._tweak_set.add(t)
-
-        for t in self._tweak_set - new_tweak_set:
-            self._tweak_vbox.remove(t.widget)
-
-        self._tweak_set = new_tweak_set
-
     def _on_model_row_changed(self, model, path, titer):
         model, selected = self.treeview.get_selection().get_selected_rows()
         self.select_none()
-- 
1.8.3.1