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
4 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):