core, frontends: various fixes for Libervia:

- quick_app: don't fail when we can't get autodisconnect parameter
    - bridge: removed useless BridgeFrontend parent class
    - use of TypeError, unicode and list to workaround Pyjamas incompatibilities
This commit is contained in:
Goffi 2017-02-26 18:23:01 +01:00
commit 9b0542fb46
6 changed files with 13 additions and 14 deletions

View file

@ -18,12 +18,6 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
class BridgeFrontend(object):
def register(self, functionName, handler):
raise NotImplementedError
class BridgeException(Exception):
"""An exception which has been raised from the backend and arrived to the frontend."""

View file

@ -18,7 +18,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from sat.core.i18n import _
from bridge_frontend import BridgeFrontend, BridgeException
from bridge_frontend import BridgeException
import dbus
from sat.core.log import getLogger
log = getLogger(__name__)
@ -59,7 +59,7 @@ def dbus_to_bridge_exception(dbus_e):
return BridgeException(name, message, condition)
class Bridge(BridgeFrontend):
class Bridge(object):
def bridgeConnect(self, callback, errback):
try:

View file

@ -76,10 +76,15 @@ class ProfileManager(object):
self.whoami = jid.JID(jid_s) # resource might change after the connection
self.bridge.isConnected(self.profile, callback=self._plug_profile_isconnected)
def _autodisconnectEb(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(failure_))
self._plug_profile_autodisconnect("false")
def _plug_profile_isconnected(self, connected):
self.connected = connected
self.bridge.asyncGetParamA("autodisconnect", "Connection", profile_key=self.profile,
callback=self._plug_profile_autodisconnect, errback=self._getParamError)
callback=self._plug_profile_autodisconnect, errback=self._autodisconnectEb)
def _plug_profile_autodisconnect(self, autodisconnect):
if C.bool(autodisconnect):

View file

@ -139,7 +139,8 @@ class Message(object):
except KeyError:
log.error(u"extra data is missing user nick for uid {}".format(self.uid))
return ""
if self.parent.type == C.CHAT_GROUP or entity in contact_list.getSpecials(C.CONTACT_SPECIAL_GROUP):
# FIXME: converted getSpecials to list for pyjamas
if self.parent.type == C.CHAT_GROUP or entity in list(contact_list.getSpecials(C.CONTACT_SPECIAL_GROUP)):
return entity.resource or ""
if entity.bare in contact_list:
return contact_list.getCache(entity, 'nick') or contact_list.getCache(entity, 'name') or entity.node or entity
@ -292,7 +293,7 @@ class QuickChat(quick_widgets.QuickWidget):
@staticmethod
def getWidgetHash(target, profiles):
profile = list(profiles)[0]
return profile + "\n" + target.bare
return profile + "\n" + unicode(target.bare)
@staticmethod
def getPrivateHash(target, profile):

View file

@ -36,7 +36,6 @@ from sat.tools.common import dynamic_import
from sat.stdui import ui_contact_list, ui_profile_manager
import sat.plugins
from glob import glob
from uuid import uuid4
import sys
import os.path
import uuid
@ -733,7 +732,7 @@ class SAT(service.Service):
"""
callback_id = kwargs.pop('force_id', None)
if callback_id is None:
callback_id = str(uuid4())
callback_id = str(uuid.uuid4())
else:
if callback_id in self._cb_map:
raise exceptions.ConflictError(_(u"id already registered"))

View file

@ -44,7 +44,7 @@ class ANSI(object):
try:
tty = sys.stdout.isatty()
except AttributeError:
except (AttributeError, TypeError): # FIXME: TypeError is here for Pyjamas, need to be removed
tty = False
if not tty:
# we don't want ANSI escape codes if we are not outputing to a tty!