From a466f890e41f41ec39c9e5b4fee0413d98416ef0 Mon Sep 17 00:00:00 2001 From: Mika Fischer Date: Fri, 10 Jun 2011 11:35:16 +0200 Subject: [PATCH] Preserve order of choices --- sloth/gui/buttonarea.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/sloth/gui/buttonarea.py b/sloth/gui/buttonarea.py index f2e47d2..2f2566d 100644 --- a/sloth/gui/buttonarea.py +++ b/sloth/gui/buttonarea.py @@ -3,6 +3,15 @@ from PyQt4.QtGui import * from PyQt4.QtCore import * from sloth.gui.floatinglayout import FloatingLayout +def unique_list(seq): + seen = {} + result = [] + for item in seq: + if item in seen: continue + seen[item] = 1 + result.append(item) + return result + class ButtonListWidget(QGroupBox): selectionChanged = pyqtSignal(object) @@ -134,9 +143,10 @@ class ButtonArea(QWidget): self.label_properties[label_name] = properties for key, value in properties.iteritems(): if self.properties.has_key(key): - self.properties[key] |= set(value) + self.properties[key] = unique_list(self.properties[key] + value) + else: - self.properties[key] = set(value) + self.properties[key] = value def get_checked_label_button(self): return self.label_button_list.get_checked_button()