Mercurial > libervia-backend
changeset 1467:ceba6fd77739
core, bridge: new signal actionNew to launch an action from the backend (e.g. display a dialog message):
- SAT.actionNew is a shortcut to call bridge.actionNew with a generated id. The id may be used in the future to ignore an action (e.g.: an action is sent to all frontends to accept a file, one of the frontend did manage the dialog, the other ones can then ignore this dialog), but is not used for now.
author | Goffi <goffi@goffi.org> |
---|---|
date | Tue, 18 Aug 2015 09:01:18 +0200 |
parents | 2184d5f496b5 |
children | 731fbed0b9cf |
files | src/bridge/DBus.py src/bridge/bridge_constructor/bridge_template.ini src/core/sat_main.py |
diffstat | 3 files changed, 30 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/bridge/DBus.py Tue Aug 18 09:01:18 2015 +0200 +++ b/src/bridge/DBus.py Tue Aug 18 09:01:18 2015 +0200 @@ -126,6 +126,11 @@ pass @dbus.service.signal(const_INT_PREFIX+const_CORE_SUFFIX, + signature='a{ss}ss') + def actionNew(self, action_data, id, profile): + pass + + @dbus.service.signal(const_INT_PREFIX+const_CORE_SUFFIX, signature='ssa{ss}s') def actionResult(self, answer_type, id, data, profile): pass @@ -546,6 +551,9 @@ self.dbus_name = dbus.service.BusName(const_INT_PREFIX, self.session_bus) self.dbus_bridge = DbusObject(self.session_bus, const_OBJ_PATH) + def actionNew(self, action_data, id, profile): + self.dbus_bridge.actionNew(action_data, id, profile) + def actionResult(self, answer_type, id, data, profile): self.dbus_bridge.actionResult(answer_type, id, data, profile)
--- a/src/bridge/bridge_constructor/bridge_template.ini Tue Aug 18 09:01:18 2015 +0200 +++ b/src/bridge/bridge_constructor/bridge_template.ini Tue Aug 18 09:01:18 2015 +0200 @@ -109,6 +109,18 @@ doc_param_2=data: conf_type dependent data doc_param_3=%(doc_profile)s +[actionNew] +type=signal +category=core +sig_in=a{ss}ss +doc=A frontend action is requested +doc_param_0=action_data: a dict where key can be: + - xmlui: a XMLUI need to be displayed +doc_param_1=id: action id + This id can be used later by frontends to announce to other ones + That the action is managed and can now be ignored. +doc_param_2=%(doc_profile)s + [actionResult] deprecated= type=signal
--- a/src/core/sat_main.py Tue Aug 18 09:01:18 2015 +0200 +++ b/src/core/sat_main.py Tue Aug 18 09:01:18 2015 +0200 @@ -40,6 +40,7 @@ from uuid import uuid4 import sys import os.path +import uuid try: from collections import OrderedDict # only available from python 2.7 @@ -728,6 +729,15 @@ del client._waiting_conf[conf_id] cb(conf_id, accepted, data, profile) + def actionNew(self, action_data, profile): + """Shortcut to bridge.actionNew which generate and id + + @param action_data(dict): action data (see bridge documentation) + @param profile: %(doc_profile)s + """ + id_ = unicode(uuid.uuid4()) + self.bridge.actionNew(action_data, id_, profile) + def registerProgressCB(self, progress_id, CB, profile): """Register a callback called when progress is requested for id""" client = self.getClient(profile)