Mercurial > libervia-backend
changeset 776:f89173f44850
frontends: fixed sendMessage calls, sendMessage is now async so callback and errback need to be specified + redraw in PrimivitusApp.notify
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 03 Jan 2014 21:25:07 +0100 (2014-01-03) |
parents | ab66dac17d1f |
children | 5642939d254e |
files | frontends/src/jp/jp frontends/src/primitivus/primitivus frontends/src/quick_frontend/quick_app.py |
diffstat | 3 files changed, 15 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/frontends/src/jp/jp Sun Dec 29 17:48:14 2013 +0100 +++ b/frontends/src/jp/jp Fri Jan 03 21:25:07 2014 +0100 @@ -256,14 +256,15 @@ if self.options.separate: #we send stdin in several messages if header: - self.bridge.sendMessage(self.dest_jid, header, profile_key=self.profile) + self.bridge.sendMessage(self.dest_jid, header, profile_key=self.profile, callback=lambda: None, errback=lambda ignore: ignore) while (True): line = clean_ustr(sys.stdin.readline().decode('utf-8','ignore')) if not line: break - self.bridge.sendMessage(self.dest_jid, line.replace("\n",""), profile_key=self.profile) + self.bridge.sendMessage(self.dest_jid, line.replace("\n",""), profile_key=self.profile, callback=lambda: None, errback=lambda ignore: ignore) else: - self.bridge.sendMessage(self.dest_jid, header + clean_ustr(u"".join([stream.decode('utf-8','ignore') for stream in sys.stdin.readlines()])), profile_key=self.profile) + self.bridge.sendMessage(self.dest_jid, header + clean_ustr(u"".join([stream.decode('utf-8','ignore') for stream in sys.stdin.readlines()])), + profile_key=self.profile, callback=lambda: None, errback=lambda ignore: ignore) def pipe_out(self):
--- a/frontends/src/primitivus/primitivus Sun Dec 29 17:48:14 2013 +0100 +++ b/frontends/src/primitivus/primitivus Fri Jan 03 21:25:07 2014 +0100 @@ -103,13 +103,12 @@ contact = self.app.contact_list.getContact() ###Based on the fact that there is currently only one contact selectableat once if contact: chat = self.app.chat_wins[contact] - try: - self.app.sendMessage(contact, + self.app.sendMessage(contact, editBar.get_edit_text(), mess_type = "groupchat" if chat.type == 'group' else "chat", - profile_key=self.app.profile) - except: # FIXME: bad global catch + sendMessage is now async - self.app.notify(_("Error while sending message")) + errback=lambda failure: self.app.notify(_("Error while sending message (%s)") % unicode(failure)), + profile_key=self.app.profile + ) editBar.set_edit_text('') elif self.mode == 'COMMAND': self.commandHandler() @@ -346,6 +345,7 @@ def notify(self, message): """"Notify message to user via notification bar""" self.notBar.addMessage(message) + self.redraw() def addWindow(self, widget): """Display a window if possible,
--- a/frontends/src/quick_frontend/quick_app.py Sun Dec 29 17:48:14 2013 +0100 +++ b/frontends/src/quick_frontend/quick_app.py Fri Jan 03 21:25:07 2014 +0100 @@ -280,11 +280,15 @@ timestamp = extra.get('archive') self.chat_wins[win.bare].printMessage(from_jid, msg, profile, float(timestamp) if timestamp else '') - def sendMessage(self, to_jid, message, subject='', mess_type="auto", extra={}, profile_key="@NONE@"): + def sendMessage(self, to_jid, message, subject='', mess_type="auto", extra={}, callback=None, errback=None, profile_key="@NONE@"): if to_jid.startswith(Const.PRIVATE_PREFIX): to_jid = unescapePrivate(to_jid) mess_type = "chat" - self.bridge.sendMessage(to_jid, message, subject, mess_type, extra, profile_key) + if callback is None: + callback = lambda: None + if errback is None: + errback = lambda failure: self.showDialog(unicode(failure), _(u"sendMessage Error"), "error") + self.bridge.sendMessage(to_jid, message, subject, mess_type, extra, profile_key, callback=callback, errback=errback) def newAlert(self, msg, title, alert_type, profile): if not self.check_profile(profile):