changeset 865:3ee2ec7ec010

core (xmlui), frontends: handling of "text" type in params xml + bug fixes
author Goffi <goffi@goffi.org>
date Tue, 25 Feb 2014 23:01:26 +0100
parents 241f6baa6687
children f27d736428f1
files frontends/src/tools/xmlui.py frontends/src/wix/xmlui.py src/tools/xml_tools.py
diffstat 3 files changed, 9 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- 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
--- 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'):
--- 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)