Added setup_help_handler to complement all the other handlers (set_value_handler, get_value_handler, connect_gui_obj_handler)

This allows adding options not tied to a widget without having to change Widget
This commit is contained in:
Eli Algranti 2012-04-12 13:17:32 +10:00
parent 051d7c71c2
commit 298654d9fa

View File

@ -233,19 +233,22 @@ class Widget(QWidget):
pass
def setup_help(self, help_provider):
w = textwrap.TextWrapper(80)
for name in self._options:
g = getattr(self, 'opt_'+name, None)
if g is None:
continue
help = help_provider(name)
if not help: continue
if self.setup_help_handler(g, help): continue
g._help = help
htext = u'<div>%s</div>'%prepare_string_for_xml(
'\n'.join(w.wrap(help)))
g.setToolTip(htext)
g.setWhatsThis(htext)
g.__class__.enterEvent = lambda obj, event: self.set_help(getattr(obj, '_help', obj.toolTip()))
self.setup_widget_help(g)
def setup_widget_help(self, g):
w = textwrap.TextWrapper(80)
htext = u'<div>%s</div>'%prepare_string_for_xml('\n'.join(w.wrap(g._help)))
g.setToolTip(htext)
g.setWhatsThis(htext)
g.__class__.enterEvent = lambda obj, event: self.set_help(getattr(obj, '_help', obj.toolTip()))
def set_value_handler(self, g, val):
@ -260,6 +263,9 @@ class Widget(QWidget):
def post_get_value(self, g):
pass
def setup_help_handler(self, g, help):
return False
def break_cycles(self):
self.db = None