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