+ # init can be called several times for when the config dir is changed
+ self.inited=False
+ self.init ()
+
+ def store_local (self, name, value):
+ setattr (self, 'widget_'+name, value)
+ def retrieve_local (self, name):
+ return getattr (self, 'widget_'+name, None)
+
+ def init (self):
+ # if already inited we just need to set the values
+ if self.inited:
+ for (field,msg) in config.field_labels():
+ edit = self.retrieve_local(field)
+ if isinstance (edit,QCheckBox):
+ if config.is_true(config.get(field)): edit.setCheckState (Qt.Checked)
+ else: edit.setCheckState (Qt.Unchecked)
+ else:
+ edit.setText (config.get(field) or "")
+ return
+
+ # otherwise we need to build the whole thing up
+ glayout = QGridLayout()
+ row = 0
+ for (field,msg) in config.field_labels():
+
+ if static_labels.has_key(field):
+ labels=static_labels[field]
+ if not isinstance(labels,list): labels = [ labels, ]
+ for label in labels:
+ glayout.addWidget(QLabel(label),row,1)
+ row+=1
+ # edit : text or checkbox
+ default=config.field_default(field)
+ if isinstance(default,bool):
+ edit=QCheckBox(msg)
+ self.store_local (field, edit)
+ if config.is_true(config.get(field)):
+ edit.setCheckState(Qt.Checked)
+ else:
+ edit=QLineEdit(config.get(field) or "", self)
+ self.store_local (field, edit)
+ edit.setAttribute(Qt.WA_MacShowFocusRect, 0)
+ setattr(self,field,edit)