summaryrefslogtreecommitdiff
path: root/grc/gui/PropsDialog.py
diff options
context:
space:
mode:
authorSebastian Koslowski <koslowski@kit.edu>2014-03-17 09:58:35 +0100
committerTom Rondeau <tom@trondeau.com>2014-03-17 16:36:23 -0400
commitdcde42fdbdd590218f572734c07047b4c19fab75 (patch)
tree17b4b2041e12e7e54f04352f99afd0861ccd17fb /grc/gui/PropsDialog.py
parent1975b524c6b7ee61156cde49586bec1957022dce (diff)
grc: tabbed props: no more double entries
Diffstat (limited to 'grc/gui/PropsDialog.py')
-rw-r--r--grc/gui/PropsDialog.py17
1 files changed, 6 insertions, 11 deletions
diff --git a/grc/gui/PropsDialog.py b/grc/gui/PropsDialog.py
index 0e85a4b7ee..8a7a8b18cf 100644
--- a/grc/gui/PropsDialog.py
+++ b/grc/gui/PropsDialog.py
@@ -85,12 +85,11 @@ class PropsDialog(gtk.Dialog):
for tab in block.get_param_tab_labels():
label = gtk.Label()
vbox = gtk.VBox()
- input_objects = []
scroll_box = gtk.ScrolledWindow()
scroll_box.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
scroll_box.add_with_viewport(vbox)
notebook.append_page(scroll_box, label)
- self._params_boxes.append((tab, label, vbox, input_objects))
+ self._params_boxes.append((tab, label, vbox))
# Docs for the block
self._docs_text_display = TextDisplay()
@@ -152,21 +151,17 @@ class PropsDialog(gtk.Dialog):
#update the params box
if self._params_changed():
#hide params box before changing
- for tab, label, vbox, input_objects in self._params_boxes:
+ for tab, label, vbox in self._params_boxes:
vbox.hide_all()
# empty the params box
- for io_param in input_objects:
- vbox.remove(io_param)
- input_objects.remove(io_param)
- io_param.destroy()
+ vbox.forall(lambda c: vbox.remove(c) or c.destroy())
# repopulate the params box
box_all_valid = True
for param in filter(lambda p: p.get_tab_label() == tab, self._block.get_params()):
- if param.get_hide() == 'all': continue
- io_param = param.get_input(self._handle_changed)
- input_objects.append(io_param)
- vbox.pack_start(io_param, False)
+ if param.get_hide() == 'all':
+ continue
box_all_valid = box_all_valid and param.is_valid()
+ vbox.pack_start(param.get_input(self._handle_changed), False)
label.set_markup(Utils.parse_template(TAB_LABEL_MARKUP_TMPL, valid=box_all_valid, tab=tab))
#show params box with new params
vbox.show_all()