tools, frontends, memory: param definition and XMLUI handle multi-selection for list widgets:

- we need to update urwid_satext to revision 79
                          - no more "value" attribute value in the "list" element, use
                            HTML-style "select" attribute in the "option" elements instead
                          - /!\ param saving do not handle multiple values yet!
This commit is contained in:
souliane 2014-04-01 21:21:13 +02:00
commit 608e2ba9fa
3 changed files with 82 additions and 39 deletions

View file

@ -163,7 +163,7 @@ class CS_Plugin(object):
interface.addText(_("G'day %(name)s, you have %(nb_message)i unread message%(plural_mess)s and %(unread_CR_mess)s unread couch request message%(plural_CR)s\nIf you want to send a message, select the recipient(s) in the list below") % {'name': user_name, 'nb_message': unread_mess, 'plural_mess': 's' if unread_mess > 1 else '', 'unread_CR_mess': unread_CR_mess, 'plural_CR': 's' if unread_CR_mess > 1 else ''})
if unread_mess:
interface.addButton('plugin_CS_showUnreadMessages', 'showUnreadMessages', _('Show unread message%(plural)s in external web browser') % {'plural': 's' if unread_mess > 1 else ''})
interface.addList(friends_list, 'friends', style=['multi'])
interface.addList(friends_list, 'friends', None, style=['multi'])
interface.changeLayout('pairs')
interface.addLabel(_("Subject"))
interface.addString('subject')

View file

@ -77,8 +77,7 @@ class TextSyntaxes(object):
<params>
<individual>
<category name="%(category_name)s" label="%(category_label)s">
<param name="%(name)s" label="%(label)s"
value="%(default)s" type="list" security="0">
<param name="%(name)s" label="%(label)s" type="list" security="0">
%(options)s
</param>
</category>
@ -91,7 +90,6 @@ class TextSyntaxes(object):
'category_label': _(CATEGORY),
'name': NAME,
'label': _(NAME),
'default': _SYNTAX_XHTML,
'syntaxes': {},
}
@ -128,7 +126,8 @@ class TextSyntaxes(object):
options = []
for syntax in syntaxes:
options.append(u'<option value="%s" />' % syntax)
selected = 'selected="true"' if syntax == _SYNTAX_XHTML else ''
options.append(u'<option value="%s" %s/>' % (syntax, selected))
TextSyntaxes.params_data["options"] = u'\n'.join(options)
self.host.memory.updateParams(TextSyntaxes.params % TextSyntaxes.params_data)

View file

@ -59,7 +59,7 @@ class XEP_0249(object):
<params>
<individual>
<category name="%(category_name)s" label="%(category_label)s">
<param name="%(param_name)s" label="%(param_label)s" value="%(param_default)s" type="list" security="0">
<param name="%(param_name)s" label="%(param_label)s" type="list" security="0">
%(param_options)s
</param>
</category>
@ -70,8 +70,9 @@ class XEP_0249(object):
'category_label': _("Misc"),
'param_name': AUTOJOIN_NAME,
'param_label': _("Auto-join MUC on invitation"),
'param_default': AUTOJOIN_VALUES[0],
'param_options': ['<option value="%s"/>' % value for value in AUTOJOIN_VALUES]
'param_options': '\n'.join(['<option value="%s" %s/>' % \
(value, 'selected="true"' if value == AUTOJOIN_VALUES[0] else '') \
for value in AUTOJOIN_VALUES])
}
def __init__(self, host):