From 8f0cf4697bfde204302b1fb71ab5802f0175ceff Mon Sep 17 00:00:00 2001 From: Goffi Date: Tue, 25 Feb 2014 23:01:26 +0100 Subject: [PATCH] core (xmlui), frontends: handling of "text" type in params xml + bug fixes --- frontends/src/tools/xmlui.py | 2 +- frontends/src/wix/xmlui.py | 4 +++- src/tools/xml_tools.py | 10 +++++----- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/frontends/src/tools/xmlui.py b/frontends/src/tools/xmlui.py index 31fdb59e..16fe9df2 100644 --- a/frontends/src/tools/xmlui.py +++ b/frontends/src/tools/xmlui.py @@ -315,7 +315,7 @@ class XMLUI(object): 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 --git a/frontends/src/wix/xmlui.py b/frontends/src/wix/xmlui.py index 69f90661..d035661c 100644 --- a/frontends/src/wix/xmlui.py +++ b/frontends/src/wix/xmlui.py @@ -24,6 +24,7 @@ import wx 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 @@ class XMLUI(xmlui.XMLUI, wx.Frame): 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 --git a/src/tools/xml_tools.py b/src/tools/xml_tools.py index 84b17a54..9787d62a 100644 --- a/src/tools/xml_tools.py +++ b/src/tools/xml_tools.py @@ -199,10 +199,10 @@ def paramsXML2XMLUI(xml): 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 @@ def paramsXML2XMLUI(xml): 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 EmptyWidget(Widget): 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)