# HG changeset patch # User Goffi # Date 1393365686 -3600 # Node ID 3ee2ec7ec010cdce8839b9d989cb2069530c9630 # Parent 241f6baa6687365a59f63e0dec378e05e1935d73 core (xmlui), frontends: handling of "text" type in params xml + bug fixes diff -r 241f6baa6687 -r 3ee2ec7ec010 frontends/src/tools/xmlui.py --- a/frontends/src/tools/xmlui.py Tue Feb 25 10:59:05 2014 +0100 +++ b/frontends/src/tools/xmlui.py Tue Feb 25 23:01:26 2014 +0100 @@ -315,7 +315,7 @@ print(_("FIXME FIXME FIXME: widget type [%s] is not implemented") % type_) raise NotImplementedError(_("FIXME FIXME FIXME: type [%s] is not implemented") % type_) - if self.type == 'param': + if self.type == 'param' and type_ != 'text': try: ctrl._xmluiOnChange(self.onParamChange) ctrl._param_category = self._current_category diff -r 241f6baa6687 -r 3ee2ec7ec010 frontends/src/wix/xmlui.py --- a/frontends/src/wix/xmlui.py Tue Feb 25 10:59:05 2014 +0100 +++ b/frontends/src/wix/xmlui.py Tue Feb 25 23:01:26 2014 +0100 @@ -24,6 +24,7 @@ from logging import debug, info, warning, error from sat.tools.jid import JID from sat_frontends.tools import xmlui +from sat_frontends.constants import Const class EventWidget(object): @@ -280,7 +281,8 @@ def onParamChange(self, ctrl): super(XMLUI, self).onParamChange(ctrl) ### FIXME # Some hacks for better presentation, should be generic # FIXME ### - if (ctrl._param_category, ctrl._param_name) == ('Connection', 'JabberID'): + param_name = ctrl._xmlui_name.split(Const.SAT_PARAM_SEPARATOR)[1] + if (ctrl._param_category, param_name) == ('Connection', 'JabberID'): domain = JID(ctrl._xmluiGetValue()).domain for widget in (ctl['control'] for ctl in self.ctrl_list.values()): if (widget._param_category, widget._param_name) == ('Connection', 'Server'): diff -r 241f6baa6687 -r 3ee2ec7ec010 src/tools/xml_tools.py --- a/src/tools/xml_tools.py Tue Feb 25 10:59:05 2014 +0100 +++ b/src/tools/xml_tools.py Tue Feb 25 23:01:26 2014 +0100 @@ -199,10 +199,10 @@ param_name = param.getAttribute('name') param_label = param.getAttribute('label') - if not param_name: + type_ = param.getAttribute('type') + if not param_name and type_ != 'text': raise exceptions.DataError(_('INTERNAL ERROR: params must have a name')) - type_ = param.getAttribute('type') value = param.getAttribute('value') or None callback_id = param.getAttribute('callback_id') or None @@ -210,7 +210,7 @@ options = _getParamListOptions(param) widget_kwargs['options'] = options - if type_ == "button": + if type_ in ("button", "text"): param_ui.addEmpty() value = param_label else: @@ -513,9 +513,9 @@ class TextWidget(Widget): type = 'text' - def __init__(self, xmlui, text, name=None, parent=None): + def __init__(self, xmlui, value, name=None, parent=None): super(TextWidget, self).__init__(xmlui, name, parent) - text = self.xmlui.doc.createTextNode(text) + text = self.xmlui.doc.createTextNode(value) self.elem.appendChild(text)