massive refactoring to switch from camelCase to snake_case:
historically, Libervia (SàT before) was using camelCase as allowed by PEP8 when using a pre-PEP8 code, to use the same coding style as in Twisted. However, snake_case is more readable and it's better to follow PEP8 best practices, so it has been decided to move on full snake_case. Because Libervia has a huge codebase, this ended with a ugly mix of camelCase and snake_case. To fix that, this patch does a big refactoring by renaming every function and method (including bridge) that are not coming from Twisted or Wokkel, to use fully snake_case. This is a massive change, and may result in some bugs.
This commit is contained in:
parent
d50412c7f7
commit
6a6f15707a
1 changed files with 9945 additions and 9945 deletions
|
|
@ -63,23 +63,23 @@ class ProfileManager(object):
|
|||
def plug(self):
|
||||
"""Plug the profile to the host"""
|
||||
# first of all we create the contact lists
|
||||
self.host.contact_lists.addProfile(self.profile)
|
||||
self.host.contact_lists.add_profile(self.profile)
|
||||
|
||||
# we get the essential params
|
||||
self.bridge.asyncGetParamA(
|
||||
self.bridge.param_get_a_async(
|
||||
"JabberID",
|
||||
"Connection",
|
||||
profile_key=self.profile,
|
||||
callback=self._plug_profile_jid,
|
||||
errback=self._getParamError,
|
||||
errback=self._get_param_error,
|
||||
)
|
||||
|
||||
def _plug_profile_jid(self, jid_s):
|
||||
self.whoami = jid.JID(jid_s) # resource might change after the connection
|
||||
log.info(f"Our current jid is: {self.whoami}")
|
||||
self.bridge.isConnected(self.profile, callback=self._plug_profile_isconnected)
|
||||
self.bridge.is_connected(self.profile, callback=self._plug_profile_isconnected)
|
||||
|
||||
def _autodisconnectEb(self, failure_):
|
||||
def _autodisconnect_eb(self, failure_):
|
||||
# XXX: we ignore error on this parameter, as Libervia can't access it
|
||||
log.warning(
|
||||
_("Error while trying to get autodisconnect param, ignoring: {}").format(
|
||||
|
|
@ -91,24 +91,24 @@ class ProfileManager(object):
|
|||
def _plug_profile_isconnected(self, connected):
|
||||
self.connected = connected
|
||||
if connected:
|
||||
self.host.profileConnected(self.profile)
|
||||
self.bridge.asyncGetParamA(
|
||||
self.host.profile_connected(self.profile)
|
||||
self.bridge.param_get_a_async(
|
||||
"autodisconnect",
|
||||
"Connection",
|
||||
profile_key=self.profile,
|
||||
callback=self._plug_profile_autodisconnect,
|
||||
errback=self._autodisconnectEb,
|
||||
errback=self._autodisconnect_eb,
|
||||
)
|
||||
|
||||
def _plug_profile_autodisconnect(self, autodisconnect):
|
||||
if C.bool(autodisconnect):
|
||||
self._autodisconnect = True
|
||||
self.bridge.asyncGetParamA(
|
||||
self.bridge.param_get_a_async(
|
||||
"autoconnect",
|
||||
"Connection",
|
||||
profile_key=self.profile,
|
||||
callback=self._plug_profile_autoconnect,
|
||||
errback=self._getParamError,
|
||||
errback=self._get_param_error,
|
||||
)
|
||||
|
||||
def _plug_profile_autoconnect(self, value_str):
|
||||
|
|
@ -124,79 +124,79 @@ class ProfileManager(object):
|
|||
# Profile can be connected or not
|
||||
# we get cached data
|
||||
self.connected = True
|
||||
self.host.bridge.getFeatures(
|
||||
self.host.bridge.features_get(
|
||||
profile_key=self.profile,
|
||||
callback=self._plug_profile_getFeaturesCb,
|
||||
errback=self._plug_profile_getFeaturesEb,
|
||||
callback=self._plug_profile_get_features_cb,
|
||||
errback=self._plug_profile_get_features_eb,
|
||||
)
|
||||
|
||||
def _plug_profile_getFeaturesEb(self, failure):
|
||||
def _plug_profile_get_features_eb(self, failure):
|
||||
log.error("Couldn't get features: {}".format(failure))
|
||||
self._plug_profile_getFeaturesCb({})
|
||||
self._plug_profile_get_features_cb({})
|
||||
|
||||
def _plug_profile_getFeaturesCb(self, features):
|
||||
def _plug_profile_get_features_cb(self, features):
|
||||
self.host.features = features
|
||||
self.host.bridge.getEntitiesData([], ProfileManager.cache_keys_to_get,
|
||||
self.host.bridge.entities_data_get([], ProfileManager.cache_keys_to_get,
|
||||
profile=self.profile,
|
||||
callback=self._plug_profile_gotCachedValues,
|
||||
errback=self._plug_profile_failedCachedValues)
|
||||
callback=self._plug_profile_got_cached_values,
|
||||
errback=self._plug_profile_failed_cached_values)
|
||||
|
||||
def _plug_profile_failedCachedValues(self, failure):
|
||||
def _plug_profile_failed_cached_values(self, failure):
|
||||
log.error("Couldn't get cached values: {}".format(failure))
|
||||
self._plug_profile_gotCachedValues({})
|
||||
self._plug_profile_got_cached_values({})
|
||||
|
||||
def _plug_profile_gotCachedValues(self, cached_values):
|
||||
def _plug_profile_got_cached_values(self, cached_values):
|
||||
contact_list = self.host.contact_lists[self.profile]
|
||||
# add the contact list and its listener
|
||||
for entity_s, data in cached_values.items():
|
||||
for key, value in data.items():
|
||||
self.host.entityDataUpdatedHandler(entity_s, key, value, self.profile)
|
||||
self.host.entity_data_updated_handler(entity_s, key, value, self.profile)
|
||||
|
||||
if not self.connected:
|
||||
self.host.setPresenceStatus(C.PRESENCE_UNAVAILABLE, "", profile=self.profile)
|
||||
self.host.set_presence_status(C.PRESENCE_UNAVAILABLE, "", profile=self.profile)
|
||||
else:
|
||||
|
||||
contact_list.fill()
|
||||
self.host.setPresenceStatus(profile=self.profile)
|
||||
self.host.set_presence_status(profile=self.profile)
|
||||
|
||||
# The waiting subscription requests
|
||||
self.bridge.getWaitingSub(
|
||||
self.profile, callback=self._plug_profile_gotWaitingSub
|
||||
self.bridge.sub_waiting_get(
|
||||
self.profile, callback=self._plug_profile_got_waiting_sub
|
||||
)
|
||||
|
||||
def _plug_profile_gotWaitingSub(self, waiting_sub):
|
||||
def _plug_profile_got_waiting_sub(self, waiting_sub):
|
||||
for sub in waiting_sub:
|
||||
self.host.subscribeHandler(waiting_sub[sub], sub, self.profile)
|
||||
self.host.subscribe_handler(waiting_sub[sub], sub, self.profile)
|
||||
|
||||
self.bridge.mucGetRoomsJoined(
|
||||
self.profile, callback=self._plug_profile_gotRoomsJoined
|
||||
self.bridge.muc_get_rooms_joined(
|
||||
self.profile, callback=self._plug_profile_got_rooms_joined
|
||||
)
|
||||
|
||||
def _plug_profile_gotRoomsJoined(self, rooms_args):
|
||||
def _plug_profile_got_rooms_joined(self, rooms_args):
|
||||
# Now we open the MUC window where we already are:
|
||||
for room_args in rooms_args:
|
||||
self.host.mucRoomJoinedHandler(*room_args, profile=self.profile)
|
||||
self.host.muc_room_joined_handler(*room_args, profile=self.profile)
|
||||
# Presence must be requested after rooms are filled
|
||||
self.host.bridge.getPresenceStatuses(
|
||||
self.profile, callback=self._plug_profile_gotPresences
|
||||
self.host.bridge.presence_statuses_get(
|
||||
self.profile, callback=self._plug_profile_got_presences
|
||||
)
|
||||
|
||||
def _plug_profile_gotPresences(self, presences):
|
||||
def _plug_profile_got_presences(self, presences):
|
||||
for contact in presences:
|
||||
for res in presences[contact]:
|
||||
jabber_id = ("%s/%s" % (jid.JID(contact).bare, res)) if res else contact
|
||||
show = presences[contact][res][0]
|
||||
priority = presences[contact][res][1]
|
||||
statuses = presences[contact][res][2]
|
||||
self.host.presenceUpdateHandler(
|
||||
self.host.presence_update_handler(
|
||||
jabber_id, show, priority, statuses, self.profile
|
||||
)
|
||||
|
||||
# At this point, profile should be fully plugged
|
||||
# and we launch frontend specific method
|
||||
self.host.profilePlugged(self.profile)
|
||||
self.host.profile_plugged(self.profile)
|
||||
|
||||
def _getParamError(self, failure):
|
||||
def _get_param_error(self, failure):
|
||||
log.error(_("Can't get profile parameter: {msg}").format(msg=failure))
|
||||
|
||||
|
||||
|
|
@ -242,7 +242,7 @@ class ProfilesManager(object):
|
|||
|
||||
del self._profiles[profile]
|
||||
|
||||
def chooseOneProfile(self):
|
||||
def choose_one_profile(self):
|
||||
return list(self._profiles.keys())[0]
|
||||
|
||||
|
||||
|
|
@ -260,7 +260,7 @@ class QuickApp(object):
|
|||
def __init__(self, bridge_factory, xmlui, check_options=None, connect_bridge=True):
|
||||
"""Create a frontend application
|
||||
|
||||
@param bridge_factory: method to use to create the Bridge
|
||||
@param bridge_factory: method to use to create the bridge
|
||||
@param xmlui: xmlui module
|
||||
@param check_options: method to call to check options (usually command line
|
||||
arguments)
|
||||
|
|
@ -297,7 +297,7 @@ class QuickApp(object):
|
|||
self.bridge = bridge_factory()
|
||||
ProfileManager.bridge = self.bridge
|
||||
if connect_bridge:
|
||||
self.connectBridge()
|
||||
self.connect_bridge()
|
||||
|
||||
# frontend notifications
|
||||
self._notif_id = 0
|
||||
|
|
@ -314,58 +314,58 @@ class QuickApp(object):
|
|||
# state of synchronisation with backend
|
||||
self._sync = True
|
||||
|
||||
def connectBridge(self):
|
||||
self.bridge.bridgeConnect(callback=self._bridgeCb, errback=self._bridgeEb)
|
||||
def connect_bridge(self):
|
||||
self.bridge.bridge_connect(callback=self._bridge_cb, errback=self._bridge_eb)
|
||||
|
||||
def _namespacesGetCb(self, ns_map):
|
||||
def _namespaces_get_cb(self, ns_map):
|
||||
self.ns_map = ns_map
|
||||
|
||||
def _namespacesGetEb(self, failure_):
|
||||
def _namespaces_get_eb(self, failure_):
|
||||
log.error(_("Can't get namespaces map: {msg}").format(msg=failure_))
|
||||
|
||||
def _encryptionPluginsGetCb(self, plugins_ser):
|
||||
def _encryption_plugins_get_cb(self, plugins_ser):
|
||||
self.encryption_plugins = data_format.deserialise(plugins_ser, type_check=list)
|
||||
|
||||
def _encryptionPluginsGetEb(self, failure_):
|
||||
def _encryption_plugins_get_eb(self, failure_):
|
||||
log.warning(_("Can't retrieve encryption plugins: {msg}").format(msg=failure_))
|
||||
|
||||
def onBridgeConnected(self):
|
||||
self.bridge.getReady(self.onBackendReady)
|
||||
def on_bridge_connected(self):
|
||||
self.bridge.ready_get(self.on_backend_ready)
|
||||
|
||||
def _bridgeCb(self):
|
||||
self.registerSignal("connected")
|
||||
self.registerSignal("disconnected")
|
||||
self.registerSignal("actionNew")
|
||||
self.registerSignal("newContact")
|
||||
self.registerSignal("messageNew")
|
||||
def _bridge_cb(self):
|
||||
self.register_signal("connected")
|
||||
self.register_signal("disconnected")
|
||||
self.register_signal("action_new")
|
||||
self.register_signal("contact_new")
|
||||
self.register_signal("message_new")
|
||||
if self.ENCRYPTION_HANDLERS:
|
||||
self.registerSignal("messageEncryptionStarted")
|
||||
self.registerSignal("messageEncryptionStopped")
|
||||
self.registerSignal("presenceUpdate")
|
||||
self.registerSignal("subscribe")
|
||||
self.registerSignal("paramUpdate")
|
||||
self.registerSignal("contactDeleted")
|
||||
self.registerSignal("entityDataUpdated")
|
||||
self.registerSignal("progressStarted")
|
||||
self.registerSignal("progressFinished")
|
||||
self.registerSignal("progressError")
|
||||
self.registerSignal("mucRoomJoined", iface="plugin")
|
||||
self.registerSignal("mucRoomLeft", iface="plugin")
|
||||
self.registerSignal("mucRoomUserChangedNick", iface="plugin")
|
||||
self.registerSignal("mucRoomNewSubject", iface="plugin")
|
||||
self.registerSignal("chatStateReceived", iface="plugin")
|
||||
self.registerSignal("messageState", iface="plugin")
|
||||
self.registerSignal("psEvent", iface="plugin")
|
||||
self.register_signal("message_encryption_started")
|
||||
self.register_signal("message_encryption_stopped")
|
||||
self.register_signal("presence_update")
|
||||
self.register_signal("subscribe")
|
||||
self.register_signal("param_update")
|
||||
self.register_signal("contact_deleted")
|
||||
self.register_signal("entity_data_updated")
|
||||
self.register_signal("progress_started")
|
||||
self.register_signal("progress_finished")
|
||||
self.register_signal("progress_error")
|
||||
self.register_signal("muc_room_joined", iface="plugin")
|
||||
self.register_signal("muc_room_left", iface="plugin")
|
||||
self.register_signal("muc_room_user_changed_nick", iface="plugin")
|
||||
self.register_signal("muc_room_new_subject", iface="plugin")
|
||||
self.register_signal("chat_state_received", iface="plugin")
|
||||
self.register_signal("message_state", iface="plugin")
|
||||
self.register_signal("ps_event", iface="plugin")
|
||||
# useful for debugging
|
||||
self.registerSignal("_debug", iface="core")
|
||||
self.register_signal("_debug", iface="core")
|
||||
|
||||
# FIXME: do it dynamically
|
||||
quick_games.Tarot.registerSignals(self)
|
||||
quick_games.Quiz.registerSignals(self)
|
||||
quick_games.Radiocol.registerSignals(self)
|
||||
self.onBridgeConnected()
|
||||
quick_games.Tarot.register_signals(self)
|
||||
quick_games.Quiz.register_signals(self)
|
||||
quick_games.Radiocol.register_signals(self)
|
||||
self.on_bridge_connected()
|
||||
|
||||
def _bridgeEb(self, failure):
|
||||
def _bridge_eb(self, failure):
|
||||
if isinstance(failure, exceptions.BridgeExceptionNoService):
|
||||
print((_("Can't connect to SàT backend, are you sure it's launched ?")))
|
||||
sys.exit(C.EXIT_BACKEND_NOT_FOUND)
|
||||
|
|
@ -375,15 +375,15 @@ class QuickApp(object):
|
|||
else:
|
||||
print((_("Error while initialising bridge: {}".format(failure))))
|
||||
|
||||
def onBackendReady(self):
|
||||
def on_backend_ready(self):
|
||||
log.info("backend is ready")
|
||||
self.bridge.namespacesGet(
|
||||
callback=self._namespacesGetCb, errback=self._namespacesGetEb)
|
||||
self.bridge.namespaces_get(
|
||||
callback=self._namespaces_get_cb, errback=self._namespaces_get_eb)
|
||||
# we cache available encryption plugins, as we'll use them on each
|
||||
# new chat widget
|
||||
self.bridge.encryptionPluginsGet(
|
||||
callback=self._encryptionPluginsGetCb,
|
||||
errback=self._encryptionPluginsGetEb)
|
||||
self.bridge.encryption_plugins_get(
|
||||
callback=self._encryption_plugins_get_cb,
|
||||
errback=self._encryption_plugins_get_eb)
|
||||
|
||||
|
||||
@property
|
||||
|
|
@ -392,7 +392,7 @@ class QuickApp(object):
|
|||
try:
|
||||
return self.selected_widget.profile
|
||||
except (TypeError, AttributeError):
|
||||
return self.profiles.chooseOneProfile()
|
||||
return self.profiles.choose_one_profile()
|
||||
|
||||
@property
|
||||
def visible_widgets(self):
|
||||
|
|
@ -434,13 +434,13 @@ class QuickApp(object):
|
|||
return
|
||||
self._selected_widget = wid
|
||||
try:
|
||||
onSelected = wid.onSelected
|
||||
on_selected = wid.on_selected
|
||||
except AttributeError:
|
||||
pass
|
||||
else:
|
||||
onSelected()
|
||||
on_selected()
|
||||
|
||||
self.callListeners("selected", wid)
|
||||
self.call_listeners("selected", wid)
|
||||
|
||||
# backend state management
|
||||
|
||||
|
|
@ -486,7 +486,7 @@ class QuickApp(object):
|
|||
except AttributeError:
|
||||
pass
|
||||
|
||||
def registerSignal(
|
||||
def register_signal(
|
||||
self, function_name, handler=None, iface="core", with_profile=True
|
||||
):
|
||||
"""Register a handler for a signal
|
||||
|
|
@ -500,12 +500,12 @@ class QuickApp(object):
|
|||
"""
|
||||
log.debug("registering signal {name}".format(name=function_name))
|
||||
if handler is None:
|
||||
handler = getattr(self, "{}{}".format(function_name, "Handler"))
|
||||
handler = getattr(self, "{}{}".format(function_name, "_handler"))
|
||||
if not with_profile:
|
||||
self.bridge.register_signal(function_name, handler, iface)
|
||||
return
|
||||
|
||||
def signalReceived(*args, **kwargs):
|
||||
def signal_received(*args, **kwargs):
|
||||
profile = kwargs.get("profile")
|
||||
if profile is None:
|
||||
if not args:
|
||||
|
|
@ -522,7 +522,7 @@ class QuickApp(object):
|
|||
return # we ignore signal for profiles we don't manage
|
||||
handler(*args, **kwargs)
|
||||
|
||||
self.bridge.register_signal(function_name, signalReceived, iface)
|
||||
self.bridge.register_signal(function_name, signal_received, iface)
|
||||
|
||||
def addListener(self, type_, callback, profiles_filter=None):
|
||||
"""Add a listener for an event
|
||||
|
|
@ -551,15 +551,15 @@ class QuickApp(object):
|
|||
args: (widget_deleted,)
|
||||
- menu: called when a menu item is added or removed
|
||||
args: (type_, path, path_i18n, item) were values are:
|
||||
type_: same as in [sat.core.sat_main.SAT.importMenu]
|
||||
path: same as in [sat.core.sat_main.SAT.importMenu]
|
||||
type_: same as in [sat.core.sat_main.SAT.import_menu]
|
||||
path: same as in [sat.core.sat_main.SAT.import_menu]
|
||||
path_i18n: translated path (or None if the item is removed)
|
||||
item: instance of quick_menus.MenuItemBase or None if the item is
|
||||
removed
|
||||
- gotMenus: called only once when menu are available (no arg)
|
||||
- progressFinished: called when a progressing action has just finished
|
||||
- progress_finished: called when a progressing action has just finished
|
||||
args: (progress_id, metadata, profile)
|
||||
- progressError: called when a progressing action failed
|
||||
- progress_error: called when a progressing action failed
|
||||
args: (progress_id, error_msg, profile):
|
||||
@param callback: method to call on event
|
||||
@param profiles_filter (set[unicode]): if set and not empty, the
|
||||
|
|
@ -585,7 +585,7 @@ class QuickApp(object):
|
|||
f"Trying to remove an inexisting listener (type = {type_}): "
|
||||
f"{callback}")
|
||||
|
||||
def callListeners(self, type_, *args, **kwargs):
|
||||
def call_listeners(self, type_, *args, **kwargs):
|
||||
"""Call the methods which listen type_ event. If a profiles filter has
|
||||
been register with a listener and profile argument is not None, the
|
||||
listener will be called only if profile is in the profiles filter list.
|
||||
|
|
@ -609,7 +609,7 @@ class QuickApp(object):
|
|||
"""Tell if the profile is currently followed by the application, and ready"""
|
||||
return profile in self.ready_profiles
|
||||
|
||||
def postInit(self, profile_manager):
|
||||
def post_init(self, profile_manager):
|
||||
"""Must be called after initialization is done, do all automatic task
|
||||
|
||||
(auto plug profile)
|
||||
|
|
@ -619,7 +619,7 @@ class QuickApp(object):
|
|||
if self.options and self.options.profile:
|
||||
profile_manager.autoconnect([self.options.profile])
|
||||
|
||||
def profilePlugged(self, profile):
|
||||
def profile_plugged(self, profile):
|
||||
"""Method called when the profile is fully plugged
|
||||
|
||||
This will launch frontend specific workflow
|
||||
|
|
@ -641,15 +641,15 @@ class QuickApp(object):
|
|||
)
|
||||
handler(*args, **kwargs)
|
||||
|
||||
self.callListeners("profilePlugged", profile=profile)
|
||||
self.call_listeners("profile_plugged", profile=profile)
|
||||
if not self._plugs_in_progress:
|
||||
self.contact_lists.lockUpdate(False)
|
||||
self.contact_lists.lock_update(False)
|
||||
|
||||
def profileConnected(self, profile):
|
||||
def profile_connected(self, profile):
|
||||
"""Called when a plugged profile is connected
|
||||
|
||||
it is called independently of profilePlugged (may be called before or after
|
||||
profilePlugged)
|
||||
it is called independently of profile_plugged (may be called before or after
|
||||
profile_plugged)
|
||||
"""
|
||||
pass
|
||||
|
||||
|
|
@ -676,9 +676,9 @@ class QuickApp(object):
|
|||
module.startswith("twisted.words.protocols.jabber")
|
||||
and failure.condition == "not-authorized"
|
||||
):
|
||||
self.launchAction(C.CHANGE_XMPP_PASSWD_ID, {}, profile=profile)
|
||||
self.action_launch(C.CHANGE_XMPP_PASSWD_ID, {}, profile=profile)
|
||||
else:
|
||||
self.showDialog(message, fullname, "error")
|
||||
self.show_dialog(message, fullname, "error")
|
||||
|
||||
self.bridge.connect(profile, callback=callback, errback=errback)
|
||||
|
||||
|
|
@ -687,7 +687,7 @@ class QuickApp(object):
|
|||
|
||||
@param profiles: list of valid profile names
|
||||
"""
|
||||
self.contact_lists.lockUpdate()
|
||||
self.contact_lists.lock_update()
|
||||
self._plugs_in_progress.update(profiles)
|
||||
self.plugging_profiles()
|
||||
for profile in profiles:
|
||||
|
|
@ -709,12 +709,12 @@ class QuickApp(object):
|
|||
def clear_profile(self):
|
||||
self.profiles.clear()
|
||||
|
||||
def newWidget(self, widget):
|
||||
def new_widget(self, widget):
|
||||
raise NotImplementedError
|
||||
|
||||
# bridge signals hanlers
|
||||
|
||||
def connectedHandler(self, jid_s, profile):
|
||||
def connected_handler(self, jid_s, profile):
|
||||
"""Called when the connection is made.
|
||||
|
||||
@param jid_s (unicode): the JID that we were assigned by the server,
|
||||
|
|
@ -722,7 +722,7 @@ class QuickApp(object):
|
|||
"""
|
||||
log.debug(_("Connected"))
|
||||
self.profiles[profile].whoami = jid.JID(jid_s)
|
||||
self.setPresenceStatus(profile=profile)
|
||||
self.set_presence_status(profile=profile)
|
||||
# FIXME: fill() is already called for all profiles when doing self.sync = True
|
||||
# a per-profile fill() should be done once, see below note
|
||||
self.contact_lists[profile].fill()
|
||||
|
|
@ -732,25 +732,25 @@ class QuickApp(object):
|
|||
# A mechanism similar to sync should be available
|
||||
# on a per-profile basis
|
||||
self.sync = True
|
||||
self.profileConnected(profile)
|
||||
self.profile_connected(profile)
|
||||
|
||||
def disconnectedHandler(self, profile):
|
||||
def disconnected_handler(self, profile):
|
||||
"""called when the connection is closed"""
|
||||
log.debug(_("Disconnected"))
|
||||
self.contact_lists[profile].disconnect()
|
||||
# FIXME: see note on connectedHandler
|
||||
# FIXME: see note on connected_handler
|
||||
self.sync = False
|
||||
self.setPresenceStatus(C.PRESENCE_UNAVAILABLE, "", profile=profile)
|
||||
self.set_presence_status(C.PRESENCE_UNAVAILABLE, "", profile=profile)
|
||||
|
||||
def actionNewHandler(self, action_data, id_, security_limit, profile):
|
||||
self.actionManager(action_data, user_action=False, profile=profile)
|
||||
def action_new_handler(self, action_data, id_, security_limit, profile):
|
||||
self.action_manager(action_data, user_action=False, profile=profile)
|
||||
|
||||
def newContactHandler(self, jid_s, attributes, groups, profile):
|
||||
def contact_new_handler(self, jid_s, attributes, groups, profile):
|
||||
entity = jid.JID(jid_s)
|
||||
groups = list(groups)
|
||||
self.contact_lists[profile].setContact(entity, groups, attributes, in_roster=True)
|
||||
self.contact_lists[profile].set_contact(entity, groups, attributes, in_roster=True)
|
||||
|
||||
def messageNewHandler(
|
||||
def message_new_handler(
|
||||
self, uid, timestamp, from_jid_s, to_jid_s, msg, subject, type_, extra_s,
|
||||
profile):
|
||||
from_jid = jid.JID(from_jid_s)
|
||||
|
|
@ -767,7 +767,7 @@ class QuickApp(object):
|
|||
contact_list = self.contact_lists[profile]
|
||||
|
||||
try:
|
||||
is_room = contact_list.isRoom(target)
|
||||
is_room = contact_list.is_room(target)
|
||||
except exceptions.NotFound:
|
||||
is_room = False
|
||||
|
||||
|
|
@ -776,7 +776,7 @@ class QuickApp(object):
|
|||
# messages
|
||||
target = target
|
||||
# we want to be sure to have at least one QuickChat instance
|
||||
self.widgets.getOrCreateWidget(
|
||||
self.widgets.get_or_create_widget(
|
||||
quick_chat.QuickChat,
|
||||
target,
|
||||
type_ = C.CHAT_GROUP if is_room else C.CHAT_ONE2ONE,
|
||||
|
|
@ -790,36 +790,36 @@ class QuickApp(object):
|
|||
):
|
||||
# XXX: needed to show entities which haven't sent any
|
||||
# presence information and which are not in roster
|
||||
contact_list.setContact(from_jid)
|
||||
contact_list.set_contact(from_jid)
|
||||
|
||||
# we dispatch the message in the widgets
|
||||
for widget in self.widgets.getWidgets(
|
||||
for widget in self.widgets.get_widgets(
|
||||
quick_chat.QuickChat, target=target, profiles=(profile,)
|
||||
):
|
||||
widget.messageNew(
|
||||
widget.message_new(
|
||||
uid, timestamp, from_jid, mess_to_jid, msg, subject, type_, extra, profile
|
||||
)
|
||||
|
||||
def messageEncryptionStartedHandler(self, destinee_jid_s, plugin_data, profile):
|
||||
def message_encryption_started_handler(self, destinee_jid_s, plugin_data, profile):
|
||||
destinee_jid = jid.JID(destinee_jid_s)
|
||||
plugin_data = data_format.deserialise(plugin_data)
|
||||
for widget in self.widgets.getWidgets(quick_chat.QuickChat,
|
||||
for widget in self.widgets.get_widgets(quick_chat.QuickChat,
|
||||
target=destinee_jid.bare,
|
||||
profiles=(profile,)):
|
||||
widget.messageEncryptionStarted(plugin_data)
|
||||
widget.message_encryption_started(plugin_data)
|
||||
|
||||
def messageEncryptionStoppedHandler(self, destinee_jid_s, plugin_data, profile):
|
||||
def message_encryption_stopped_handler(self, destinee_jid_s, plugin_data, profile):
|
||||
destinee_jid = jid.JID(destinee_jid_s)
|
||||
for widget in self.widgets.getWidgets(quick_chat.QuickChat,
|
||||
for widget in self.widgets.get_widgets(quick_chat.QuickChat,
|
||||
target=destinee_jid.bare,
|
||||
profiles=(profile,)):
|
||||
widget.messageEncryptionStopped(plugin_data)
|
||||
widget.message_encryption_stopped(plugin_data)
|
||||
|
||||
def messageStateHandler(self, uid, status, profile):
|
||||
for widget in self.widgets.getWidgets(quick_chat.QuickChat, profiles=(profile,)):
|
||||
widget.onMessageState(uid, status, profile)
|
||||
def message_state_handler(self, uid, status, profile):
|
||||
for widget in self.widgets.get_widgets(quick_chat.QuickChat, profiles=(profile,)):
|
||||
widget.on_message_state(uid, status, profile)
|
||||
|
||||
def messageSend(self, to_jid, message, subject=None, mess_type="auto", extra=None, callback=None, errback=None, profile_key=C.PROF_KEY_NONE):
|
||||
def message_send(self, to_jid, message, subject=None, mess_type="auto", extra=None, callback=None, errback=None, profile_key=C.PROF_KEY_NONE):
|
||||
if not subject and not extra and (not message or message == {'': ''}):
|
||||
log.debug("Not sending empty message")
|
||||
return
|
||||
|
|
@ -834,14 +834,14 @@ class QuickApp(object):
|
|||
) # FIXME: optional argument is here because pyjamas doesn't support callback
|
||||
# without arg with json proxy
|
||||
if errback is None:
|
||||
errback = lambda failure: self.showDialog(
|
||||
errback = lambda failure: self.show_dialog(
|
||||
message=failure.message, title=failure.fullname, type="error"
|
||||
)
|
||||
|
||||
if not self.trigger.point("messageSendTrigger", to_jid, message, subject, mess_type, extra, callback, errback, profile_key=profile_key):
|
||||
return
|
||||
|
||||
self.bridge.messageSend(
|
||||
self.bridge.message_send(
|
||||
str(to_jid),
|
||||
message,
|
||||
subject,
|
||||
|
|
@ -852,10 +852,10 @@ class QuickApp(object):
|
|||
errback=errback,
|
||||
)
|
||||
|
||||
def setPresenceStatus(self, show="", status=None, profile=C.PROF_KEY_NONE):
|
||||
def set_presence_status(self, show="", status=None, profile=C.PROF_KEY_NONE):
|
||||
raise NotImplementedError
|
||||
|
||||
def presenceUpdateHandler(self, entity_s, show, priority, statuses, profile):
|
||||
def presence_update_handler(self, entity_s, show, priority, statuses, profile):
|
||||
# XXX: this log is commented because it's really too verbose even for DEBUG logs
|
||||
# but it is kept here as it may still be useful for troubleshooting
|
||||
# log.debug(
|
||||
|
|
@ -875,16 +875,16 @@ class QuickApp(object):
|
|||
|
||||
if entity == self.profiles[profile].whoami:
|
||||
if show == C.PRESENCE_UNAVAILABLE:
|
||||
self.setPresenceStatus(C.PRESENCE_UNAVAILABLE, "", profile=profile)
|
||||
self.set_presence_status(C.PRESENCE_UNAVAILABLE, "", profile=profile)
|
||||
else:
|
||||
# FIXME: try to retrieve user language status before fallback to default
|
||||
status = statuses.get(C.PRESENCE_STATUSES_DEFAULT, None)
|
||||
self.setPresenceStatus(show, status, profile=profile)
|
||||
self.set_presence_status(show, status, profile=profile)
|
||||
return
|
||||
|
||||
self.callListeners("presence", entity, show, priority, statuses, profile=profile)
|
||||
self.call_listeners("presence", entity, show, priority, statuses, profile=profile)
|
||||
|
||||
def mucRoomJoinedHandler(
|
||||
def muc_room_joined_handler(
|
||||
self, room_jid_s, occupants, user_nick, subject, statuses, profile):
|
||||
"""Called when a MUC room is joined"""
|
||||
log.debug(
|
||||
|
|
@ -893,8 +893,8 @@ class QuickApp(object):
|
|||
)
|
||||
)
|
||||
room_jid = jid.JID(room_jid_s)
|
||||
self.contact_lists[profile].setSpecial(room_jid, C.CONTACT_SPECIAL_GROUP)
|
||||
self.widgets.getOrCreateWidget(
|
||||
self.contact_lists[profile].set_special(room_jid, C.CONTACT_SPECIAL_GROUP)
|
||||
self.widgets.get_or_create_widget(
|
||||
quick_chat.QuickChat,
|
||||
room_jid,
|
||||
type_=C.CHAT_GROUP,
|
||||
|
|
@ -905,44 +905,44 @@ class QuickApp(object):
|
|||
profile=profile,
|
||||
)
|
||||
|
||||
def mucRoomLeftHandler(self, room_jid_s, profile):
|
||||
def muc_room_left_handler(self, room_jid_s, profile):
|
||||
"""Called when a MUC room is left"""
|
||||
log.debug(
|
||||
"Room [%(room_jid)s] left by %(profile)s"
|
||||
% {"room_jid": room_jid_s, "profile": profile}
|
||||
)
|
||||
room_jid = jid.JID(room_jid_s)
|
||||
chat_widget = self.widgets.getWidget(quick_chat.QuickChat, room_jid, profile)
|
||||
chat_widget = self.widgets.get_widget(quick_chat.QuickChat, room_jid, profile)
|
||||
if chat_widget:
|
||||
self.widgets.deleteWidget(
|
||||
self.widgets.delete_widget(
|
||||
chat_widget, all_instances=True, explicit_close=True)
|
||||
self.contact_lists[profile].removeContact(room_jid)
|
||||
self.contact_lists[profile].remove_contact(room_jid)
|
||||
|
||||
def mucRoomUserChangedNickHandler(self, room_jid_s, old_nick, new_nick, profile):
|
||||
def muc_room_user_changed_nick_handler(self, room_jid_s, old_nick, new_nick, profile):
|
||||
"""Called when an user joined a MUC room"""
|
||||
room_jid = jid.JID(room_jid_s)
|
||||
chat_widget = self.widgets.getOrCreateWidget(
|
||||
chat_widget = self.widgets.get_or_create_widget(
|
||||
quick_chat.QuickChat, room_jid, type_=C.CHAT_GROUP, profile=profile
|
||||
)
|
||||
chat_widget.changeUserNick(old_nick, new_nick)
|
||||
chat_widget.change_user_nick(old_nick, new_nick)
|
||||
log.debug(
|
||||
"user [%(old_nick)s] is now known as [%(new_nick)s] in room [%(room_jid)s]"
|
||||
% {"old_nick": old_nick, "new_nick": new_nick, "room_jid": room_jid}
|
||||
)
|
||||
|
||||
def mucRoomNewSubjectHandler(self, room_jid_s, subject, profile):
|
||||
def muc_room_new_subject_handler(self, room_jid_s, subject, profile):
|
||||
"""Called when subject of MUC room change"""
|
||||
room_jid = jid.JID(room_jid_s)
|
||||
chat_widget = self.widgets.getOrCreateWidget(
|
||||
chat_widget = self.widgets.get_or_create_widget(
|
||||
quick_chat.QuickChat, room_jid, type_=C.CHAT_GROUP, profile=profile
|
||||
)
|
||||
chat_widget.setSubject(subject)
|
||||
chat_widget.set_subject(subject)
|
||||
log.debug(
|
||||
"new subject for room [%(room_jid)s]: %(subject)s"
|
||||
% {"room_jid": room_jid, "subject": subject}
|
||||
)
|
||||
|
||||
def chatStateReceivedHandler(self, from_jid_s, state, profile):
|
||||
def chat_state_received_handler(self, from_jid_s, state, profile):
|
||||
"""Called when a new chat state (XEP-0085) is received.
|
||||
|
||||
@param from_jid_s (unicode): JID of a contact or C.ENTITY_ALL
|
||||
|
|
@ -950,9 +950,9 @@ class QuickApp(object):
|
|||
@param profile (unicode): current profile
|
||||
"""
|
||||
from_jid = jid.JID(from_jid_s)
|
||||
for widget in self.widgets.getWidgets(quick_chat.QuickChat, target=from_jid.bare,
|
||||
for widget in self.widgets.get_widgets(quick_chat.QuickChat, target=from_jid.bare,
|
||||
profiles=(profile,)):
|
||||
widget.onChatState(from_jid, state, profile)
|
||||
widget.on_chat_state(from_jid, state, profile)
|
||||
|
||||
def notify(self, type_, entity=None, message=None, subject=None, callback=None,
|
||||
cb_args=None, widget=None, profile=C.PROF_KEY_NONE):
|
||||
|
|
@ -986,9 +986,9 @@ class QuickApp(object):
|
|||
type_notifs.append(notif_data)
|
||||
self._notifications[self._notif_id] = notif_data
|
||||
self._notif_id += 1
|
||||
self.callListeners("notification", entity, notif_data, profile=profile)
|
||||
self.call_listeners("notification", entity, notif_data, profile=profile)
|
||||
|
||||
def getNotifs(self, entity=None, type_=None, exact_jid=None, profile=C.PROF_KEY_NONE):
|
||||
def get_notifs(self, entity=None, type_=None, exact_jid=None, profile=C.PROF_KEY_NONE):
|
||||
"""return notifications for given entity
|
||||
|
||||
@param entity(jid.JID, None, C.ENTITY_ALL): jid of the entity to check
|
||||
|
|
@ -1032,7 +1032,7 @@ class QuickApp(object):
|
|||
continue
|
||||
yield notif
|
||||
|
||||
def clearNotifs(self, entity, type_=None, profile=C.PROF_KEY_NONE):
|
||||
def clear_notifs(self, entity, type_=None, profile=C.PROF_KEY_NONE):
|
||||
"""return notifications for given entity
|
||||
|
||||
@param entity(jid.JID, None): bare jid of the entity to check
|
||||
|
|
@ -1050,9 +1050,9 @@ class QuickApp(object):
|
|||
del notif_dict[key][type_]
|
||||
except KeyError:
|
||||
return
|
||||
self.callListeners("notificationsClear", entity, type_, profile=profile)
|
||||
self.call_listeners("notificationsClear", entity, type_, profile=profile)
|
||||
|
||||
def psEventHandler(self, category, service_s, node, event_type, data, profile):
|
||||
def ps_event_handler(self, category, service_s, node, event_type, data, profile):
|
||||
"""Called when a PubSub event is received.
|
||||
|
||||
@param category(unicode): event category (e.g. "PEP", "MICROBLOG")
|
||||
|
|
@ -1073,8 +1073,8 @@ class QuickApp(object):
|
|||
# FIXME: check if [] make sense (instead of None)
|
||||
_groups = data.get("group")
|
||||
|
||||
for wid in self.widgets.getWidgets(quick_blog.QuickBlog):
|
||||
wid.addEntryIfAccepted(service_s, node, data, _groups, profile)
|
||||
for wid in self.widgets.get_widgets(quick_blog.QuickBlog):
|
||||
wid.add_entry_if_accepted(service_s, node, data, _groups, profile)
|
||||
|
||||
try:
|
||||
comments_node, comments_service = (
|
||||
|
|
@ -1084,7 +1084,7 @@ class QuickApp(object):
|
|||
except KeyError:
|
||||
pass
|
||||
else:
|
||||
self.bridge.mbGet(
|
||||
self.bridge.mb_get(
|
||||
comments_service,
|
||||
comments_node,
|
||||
C.NO_LIMIT,
|
||||
|
|
@ -1093,13 +1093,13 @@ class QuickApp(object):
|
|||
profile=profile,
|
||||
)
|
||||
elif event_type == C.PS_RETRACT:
|
||||
for wid in self.widgets.getWidgets(quick_blog.QuickBlog):
|
||||
wid.deleteEntryIfPresent(service_s, node, data["id"], profile)
|
||||
for wid in self.widgets.get_widgets(quick_blog.QuickBlog):
|
||||
wid.delete_entry_if_present(service_s, node, data["id"], profile)
|
||||
pass
|
||||
else:
|
||||
log.warning("Unmanaged PubSub event type {}".format(event_type))
|
||||
|
||||
def registerProgressCbs(self, progress_id, callback, errback):
|
||||
def register_progress_cbs(self, progress_id, callback, errback):
|
||||
"""Register progression callbacks
|
||||
|
||||
@param progress_id(unicode): id of the progression to check
|
||||
|
|
@ -1112,10 +1112,10 @@ class QuickApp(object):
|
|||
callbacks = self._progress_ids.setdefault(progress_id, [])
|
||||
callbacks.append((callback, errback))
|
||||
|
||||
def progressStartedHandler(self, pid, metadata, profile):
|
||||
def progress_started_handler(self, pid, metadata, profile):
|
||||
log.info("Progress {} started".format(pid))
|
||||
|
||||
def progressFinishedHandler(self, pid, metadata, profile):
|
||||
def progress_finished_handler(self, pid, metadata, profile):
|
||||
log.info("Progress {} finished".format(pid))
|
||||
try:
|
||||
callbacks = self._progress_ids.pop(pid)
|
||||
|
|
@ -1125,9 +1125,9 @@ class QuickApp(object):
|
|||
for callback, __ in callbacks:
|
||||
if callback is not None:
|
||||
callback(metadata, profile=profile)
|
||||
self.callListeners("progressFinished", pid, metadata, profile=profile)
|
||||
self.call_listeners("progress_finished", pid, metadata, profile=profile)
|
||||
|
||||
def progressErrorHandler(self, pid, err_msg, profile):
|
||||
def progress_error_handler(self, pid, err_msg, profile):
|
||||
log.warning("Progress {pid} error: {err_msg}".format(pid=pid, err_msg=err_msg))
|
||||
try:
|
||||
callbacks = self._progress_ids.pop(pid)
|
||||
|
|
@ -1137,20 +1137,20 @@ class QuickApp(object):
|
|||
for __, errback in callbacks:
|
||||
if errback is not None:
|
||||
errback(err_msg, profile=profile)
|
||||
self.callListeners("progressError", pid, err_msg, profile=profile)
|
||||
self.call_listeners("progress_error", pid, err_msg, profile=profile)
|
||||
|
||||
def _subscribe_cb(self, answer, data):
|
||||
entity, profile = data
|
||||
type_ = "subscribed" if answer else "unsubscribed"
|
||||
self.bridge.subscription(type_, str(entity.bare), profile_key=profile)
|
||||
|
||||
def subscribeHandler(self, type, raw_jid, profile):
|
||||
def subscribe_handler(self, type, raw_jid, profile):
|
||||
"""Called when a subsciption management signal is received"""
|
||||
entity = jid.JID(raw_jid)
|
||||
if type == "subscribed":
|
||||
# this is a subscription confirmation, we just have to inform user
|
||||
# TODO: call self.getEntityMBlog to add the new contact blogs
|
||||
self.showDialog(
|
||||
self.show_dialog(
|
||||
_("The contact {contact} has accepted your subscription").format(
|
||||
contact=entity.bare
|
||||
),
|
||||
|
|
@ -1158,7 +1158,7 @@ class QuickApp(object):
|
|||
)
|
||||
elif type == "unsubscribed":
|
||||
# this is a subscription refusal, we just have to inform user
|
||||
self.showDialog(
|
||||
self.show_dialog(
|
||||
_("The contact {contact} has refused your subscription").format(
|
||||
contact=entity.bare
|
||||
),
|
||||
|
|
@ -1168,7 +1168,7 @@ class QuickApp(object):
|
|||
elif type == "subscribe":
|
||||
# this is a subscriptionn request, we have to ask for user confirmation
|
||||
# TODO: use sat.stdui.ui_contact_list to display the groups selector
|
||||
self.showDialog(
|
||||
self.show_dialog(
|
||||
_(
|
||||
"The contact {contact} wants to subscribe to your presence"
|
||||
".\nDo you accept ?"
|
||||
|
|
@ -1179,7 +1179,7 @@ class QuickApp(object):
|
|||
answer_data=(entity, profile),
|
||||
)
|
||||
|
||||
def _debugHandler(self, action, parameters, profile):
|
||||
def _debug_handler(self, action, parameters, profile):
|
||||
if action == "widgets_dump":
|
||||
from pprint import pformat
|
||||
log.info("Widgets dump:\n{data}".format(data=pformat(self.widgets._widgets)))
|
||||
|
|
@ -1187,7 +1187,7 @@ class QuickApp(object):
|
|||
log.warning("Unknown debug action: {action}".format(action=action))
|
||||
|
||||
|
||||
def showDialog(self, message, title, type="info", answer_cb=None, answer_data=None):
|
||||
def show_dialog(self, message, title, type="info", answer_cb=None, answer_data=None):
|
||||
"""Show a dialog to user
|
||||
|
||||
Frontends must override this method
|
||||
|
|
@ -1206,25 +1206,25 @@ class QuickApp(object):
|
|||
# FIXME: misnamed method + types are not well chosen. Need to be rethought
|
||||
raise NotImplementedError
|
||||
|
||||
def showAlert(self, message):
|
||||
def show_alert(self, message):
|
||||
# FIXME: doesn't seems used anymore, to remove?
|
||||
pass # FIXME
|
||||
|
||||
def dialogFailure(self, failure):
|
||||
def dialog_failure(self, failure):
|
||||
log.warning("Failure: {}".format(failure))
|
||||
|
||||
def progressIdHandler(self, progress_id, profile):
|
||||
def progress_id_handler(self, progress_id, profile):
|
||||
"""Callback used when an action result in a progress id"""
|
||||
log.info("Progress ID received: {}".format(progress_id))
|
||||
|
||||
def isHidden(self):
|
||||
def is_hidden(self):
|
||||
"""Tells if the frontend window is hidden.
|
||||
|
||||
@return bool
|
||||
"""
|
||||
raise NotImplementedError
|
||||
|
||||
def paramUpdateHandler(self, name, value, namespace, profile):
|
||||
def param_update_handler(self, name, value, namespace, profile):
|
||||
log.debug(
|
||||
_("param update: [%(namespace)s] %(name)s = %(value)s")
|
||||
% {"namespace": namespace, "name": name, "value": value}
|
||||
|
|
@ -1233,37 +1233,37 @@ class QuickApp(object):
|
|||
log.debug(_("Changing JID to %s") % value)
|
||||
self.profiles[profile].whoami = jid.JID(value)
|
||||
elif (namespace, name) == ("General", C.SHOW_OFFLINE_CONTACTS):
|
||||
self.contact_lists[profile].showOfflineContacts(C.bool(value))
|
||||
self.contact_lists[profile].show_offline_contacts(C.bool(value))
|
||||
elif (namespace, name) == ("General", C.SHOW_EMPTY_GROUPS):
|
||||
self.contact_lists[profile].showEmptyGroups(C.bool(value))
|
||||
self.contact_lists[profile].show_empty_groups(C.bool(value))
|
||||
|
||||
def contactDeletedHandler(self, jid_s, profile):
|
||||
def contact_deleted_handler(self, jid_s, profile):
|
||||
target = jid.JID(jid_s)
|
||||
self.contact_lists[profile].removeContact(target)
|
||||
self.contact_lists[profile].remove_contact(target)
|
||||
|
||||
def entityDataUpdatedHandler(self, entity_s, key, value_raw, profile):
|
||||
def entity_data_updated_handler(self, entity_s, key, value_raw, profile):
|
||||
entity = jid.JID(entity_s)
|
||||
value = data_format.deserialise(value_raw, type_check=None)
|
||||
if key == "nicknames":
|
||||
assert isinstance(value, list) or value is None
|
||||
if entity in self.contact_lists[profile]:
|
||||
self.contact_lists[profile].setCache(entity, "nicknames", value)
|
||||
self.callListeners("nicknames", entity, value, profile=profile)
|
||||
self.contact_lists[profile].set_cache(entity, "nicknames", value)
|
||||
self.call_listeners("nicknames", entity, value, profile=profile)
|
||||
elif key == "avatar" and self.AVATARS_HANDLER:
|
||||
assert isinstance(value, dict) or value is None
|
||||
self.contact_lists[profile].setCache(entity, "avatar", value)
|
||||
self.callListeners("avatar", entity, value, profile=profile)
|
||||
self.contact_lists[profile].set_cache(entity, "avatar", value)
|
||||
self.call_listeners("avatar", entity, value, profile=profile)
|
||||
|
||||
def actionManager(self, action_data, callback=None, ui_show_cb=None, user_action=True,
|
||||
def action_manager(self, action_data, callback=None, ui_show_cb=None, user_action=True,
|
||||
progress_cb=None, progress_eb=None, profile=C.PROF_KEY_NONE):
|
||||
"""Handle backend action
|
||||
|
||||
@param action_data(dict): action dict as sent by launchAction or returned by an
|
||||
@param action_data(dict): action dict as sent by action_launch or returned by an
|
||||
UI action
|
||||
@param callback(None, callback): if not None, callback to use on XMLUI answer
|
||||
@param ui_show_cb(None, callback): if not None, method to call to show the XMLUI
|
||||
@param user_action(bool): if True, the action is a result of a user interaction
|
||||
else the action come from backend direclty (i.e. actionNew).
|
||||
else the action come from backend direclty (i.e. action_new).
|
||||
This is useful to know if the frontend can display a popup immediately (if
|
||||
True) or if it should add it to a queue that the user can activate later.
|
||||
@param progress_cb(None, callable): method to call when progression is finished.
|
||||
|
|
@ -1295,8 +1295,8 @@ class QuickApp(object):
|
|||
pass
|
||||
else:
|
||||
if progress_cb or progress_eb:
|
||||
self.registerProgressCbs(progress_id, progress_cb, progress_eb)
|
||||
self.progressIdHandler(progress_id, profile)
|
||||
self.register_progress_cbs(progress_id, progress_cb, progress_eb)
|
||||
self.progress_id_handler(progress_id, profile)
|
||||
|
||||
# we ignore metadata
|
||||
action_data = {
|
||||
|
|
@ -1310,13 +1310,13 @@ class QuickApp(object):
|
|||
)
|
||||
)
|
||||
|
||||
def _actionCb(self, data, callback, callback_id, profile):
|
||||
def _action_cb(self, data, callback, callback_id, profile):
|
||||
if callback is None:
|
||||
self.actionManager(data, profile=profile)
|
||||
self.action_manager(data, profile=profile)
|
||||
else:
|
||||
callback(data=data, cb_id=callback_id, profile=profile)
|
||||
|
||||
def launchAction(
|
||||
def action_launch(
|
||||
self, callback_id, data=None, callback=None, profile=C.PROF_KEY_NONE
|
||||
):
|
||||
"""Launch a dynamic action
|
||||
|
|
@ -1324,7 +1324,7 @@ class QuickApp(object):
|
|||
@param callback_id: id of the action to launch
|
||||
@param data: data needed only for certain actions
|
||||
@param callback(callable, None): will be called with the resut
|
||||
if None, self.actionManager will be called
|
||||
if None, self.action_manager will be called
|
||||
else the callable will be called with the following kw parameters:
|
||||
- data: action_data
|
||||
- cb_id: callback id
|
||||
|
|
@ -1334,12 +1334,12 @@ class QuickApp(object):
|
|||
"""
|
||||
if data is None:
|
||||
data = dict()
|
||||
action_cb = lambda data: self._actionCb(data, callback, callback_id, profile)
|
||||
self.bridge.launchAction(
|
||||
callback_id, data, profile, callback=action_cb, errback=self.dialogFailure
|
||||
action_cb = lambda data: self._action_cb(data, callback, callback_id, profile)
|
||||
self.bridge.action_launch(
|
||||
callback_id, data, profile, callback=action_cb, errback=self.dialog_failure
|
||||
)
|
||||
|
||||
def launchMenu(
|
||||
def launch_menu(
|
||||
self,
|
||||
menu_type,
|
||||
path,
|
||||
|
|
@ -1354,7 +1354,7 @@ class QuickApp(object):
|
|||
@param path(iterable[unicode]): path to the menu
|
||||
@param data: data needed only for certain actions
|
||||
@param callback(callable, None): will be called with the resut
|
||||
if None, self.actionManager will be called
|
||||
if None, self.action_manager will be called
|
||||
else the callable will be called with the following kw parameters:
|
||||
- data: action_data
|
||||
- cb_id: (menu_type, path) tuple
|
||||
|
|
@ -1364,25 +1364,25 @@ class QuickApp(object):
|
|||
"""
|
||||
if data is None:
|
||||
data = dict()
|
||||
action_cb = lambda data: self._actionCb(
|
||||
action_cb = lambda data: self._action_cb(
|
||||
data, callback, (menu_type, path), profile
|
||||
)
|
||||
self.bridge.menuLaunch(
|
||||
self.bridge.menu_launch(
|
||||
menu_type,
|
||||
path,
|
||||
data,
|
||||
security_limit,
|
||||
profile,
|
||||
callback=action_cb,
|
||||
errback=self.dialogFailure,
|
||||
errback=self.dialog_failure,
|
||||
)
|
||||
|
||||
def disconnect(self, profile):
|
||||
log.info("disconnecting")
|
||||
self.callListeners("disconnect", profile=profile)
|
||||
self.call_listeners("disconnect", profile=profile)
|
||||
self.bridge.disconnect(profile)
|
||||
|
||||
def onExit(self):
|
||||
def on_exit(self):
|
||||
"""Must be called when the frontend is terminating"""
|
||||
to_unplug = []
|
||||
for profile, profile_manager in self.profiles.items():
|
||||
|
|
|
|||
Loading…
Reference in a new issue