core (menus): improvments:

- use the new convention for bridge names (getMenus ==> menusGet, etc.)
    - menu now use canonical path, which is the untranslated path with each element stripped and lowercase, it must be unique by menu type
    - added menuLaunch method to manually launch a menu like an action, canonical path is used instead of id
    - added SECURITY_LIMIT_MAX constant
This commit is contained in:
Goffi 2017-01-26 20:29:48 +01:00
commit d8b9c85cc0
2 changed files with 164 additions and 65 deletions

View file

@ -640,7 +640,7 @@ doc_return= a dict which map profile to progress_dict
progress_dict map progress_id to progress_data
progress_data is the same dict as returned by [progressGet]
[getMenus]
[menusGet]
type=method
category=core
sig_in=si
@ -656,7 +656,22 @@ doc_return=list of tuple with the following value:
- menu_path_i18n: translated path of the menu
- extra: extra data, like icon name
[getMenuHelp]
[menuLaunch]
async=
type=method
category=core
sig_in=sasa{ss}is
sig_out=a{ss}
doc=Launch a registred menu
doc_param_0=menu_type: type of the menu (C.MENU_*)
doc_param_1=path: canonical (untranslated) path of the menu
doc_param_2=data: optional data
doc_param_3=%(doc_security_limit)s
doc_param_4=%(doc_profile_key)s
doc_return=dict where key can be:
- xmlui: a XMLUI need to be displayed
[menuHelpGet]
type=method
category=core
sig_in=ss

View file

@ -299,18 +299,6 @@ class DbusObject(dbus.service.Object):
def getMainResource(self, contact_jid, profile_key="@DEFAULT@"):
return self._callback("getMainResource", unicode(contact_jid), unicode(profile_key))
@dbus.service.method(const_INT_PREFIX+const_CORE_SUFFIX,
in_signature='ss', out_signature='s',
async_callbacks=None)
def getMenuHelp(self, menu_id, language):
return self._callback("getMenuHelp", unicode(menu_id), unicode(language))
@dbus.service.method(const_INT_PREFIX+const_CORE_SUFFIX,
in_signature='si', out_signature='a(ssasasa{ss})',
async_callbacks=None)
def getMenus(self, language, security_limit):
return self._callback("getMenus", unicode(language), security_limit)
@dbus.service.method(const_INT_PREFIX+const_CORE_SUFFIX,
in_signature='ssss', out_signature='s',
async_callbacks=None)
@ -389,6 +377,24 @@ class DbusObject(dbus.service.Object):
def loadParamsTemplate(self, filename):
return self._callback("loadParamsTemplate", unicode(filename))
@dbus.service.method(const_INT_PREFIX+const_CORE_SUFFIX,
in_signature='ss', out_signature='s',
async_callbacks=None)
def menuHelpGet(self, menu_id, language):
return self._callback("menuHelpGet", unicode(menu_id), unicode(language))
@dbus.service.method(const_INT_PREFIX+const_CORE_SUFFIX,
in_signature='sasa{ss}is', out_signature='a{ss}',
async_callbacks=('callback', 'errback'))
def menuLaunch(self, menu_type, path, data, security_limit, profile_key, callback=None, errback=None):
return self._callback("menuLaunch", unicode(menu_type), path, data, security_limit, unicode(profile_key), callback=callback, errback=errback)
@dbus.service.method(const_INT_PREFIX+const_CORE_SUFFIX,
in_signature='si', out_signature='a(ssasasa{ss})',
async_callbacks=None)
def menusGet(self, language, security_limit):
return self._callback("menusGet", unicode(language), security_limit)
@dbus.service.method(const_INT_PREFIX+const_CORE_SUFFIX,
in_signature='sa{ss}a{ss}sa{ss}s', out_signature='',
async_callbacks=('callback', 'errback'))