From 7c9ec2229b67a60d6eaa92992641b301999b4ff6 Mon Sep 17 00:00:00 2001 From: Yann Leboulanger Date: Fri, 4 Mar 2005 21:27:45 +0000 Subject: [PATCH] we can now set and receive subjects --- Core/core.py | 15 +++++++++++++-- plugins/gtkgui/gtkgui.glade | 3 ++- plugins/gtkgui/gtkgui.py | 23 +++++++++++++++++++++-- 3 files changed, 36 insertions(+), 5 deletions(-) diff --git a/Core/core.py b/Core/core.py index 0632f7105..395b8b0ff 100644 --- a/Core/core.py +++ b/Core/core.py @@ -367,8 +367,13 @@ class GajimCore: self.hub.sendPlugin('MSGERROR', self.connexions[con], \ (str(msg.getFrom()), msg.getErrorCode(), msg.getError(), msgtxt, tim)) elif typ == 'groupchat': - self.hub.sendPlugin('GC_MSG', self.connexions[con], \ - (str(msg.getFrom()), msgtxt, tim)) + subject = msg.getSubject() + if subject: + self.hub.sendPlugin('GC_SUBJECT', self.connexions[con], \ + (str(msg.getFrom()), subject)) + else: + self.hub.sendPlugin('GC_MSG', self.connexions[con], \ + (str(msg.getFrom()), msgtxt, tim)) else: self.hub.sendPlugin('MSG', self.connexions[con], \ (str(msg.getFrom()), msgtxt, tim)) @@ -906,6 +911,12 @@ class GajimCore: msg.setType('groupchat') con.send(msg) self.hub.sendPlugin('MSGSENT', ev[1], ev[2]) + #('GC_SUBJECT', account, (jid, subject)) + elif ev[0] == 'GC_SUBJECT': + msg = common.jabber.Message(ev[2][0]) + msg.setType('groupchat') + msg.setSubject(ev[2][1]) + con.send(msg) #('GC_STATUS', account, (nick, jid, show, status)) elif ev[0] == 'GC_STATUS': if ev[2][2] == 'offline': diff --git a/plugins/gtkgui/gtkgui.glade b/plugins/gtkgui/gtkgui.glade index 0fae55b27..10fe127ef 100644 --- a/plugins/gtkgui/gtkgui.glade +++ b/plugins/gtkgui/gtkgui.glade @@ -6881,7 +6881,7 @@ Custom - + True True True @@ -6891,6 +6891,7 @@ Custom True * False + 0 diff --git a/plugins/gtkgui/gtkgui.py b/plugins/gtkgui/gtkgui.py index 16b039fdb..59c9af92a 100644 --- a/plugins/gtkgui/gtkgui.py +++ b/plugins/gtkgui/gtkgui.py @@ -653,6 +653,14 @@ class gc: else: img = self.plugin.roster.pixbufs[show] model.set_value(iter, 0, img) + + def set_subject(self, subject): + self.xml.get_widget('subject_entry').set_text(subject) + + def on_subject_entry_key_press_event(self, widget, event): + if event.keyval == gtk.keysyms.Return: + subject = self.xml.get_widget('subject_entry').get_text() + self.plugin.send('GC_SUBJECT', self.account, (self.jid, subject)) def on_msg_key_press_event(self, widget, event): """When a key is pressed : @@ -915,6 +923,7 @@ class gc: self.xml.signal_connect('on_row_activated', self.on_row_activated) self.xml.signal_connect('on_row_expanded', self.on_row_expanded) self.xml.signal_connect('on_row_collapsed', self.on_row_collapsed) + self.xml.signal_connect('on_subject_entry_key_press_event', self.on_subject_entry_key_press_event) class history_window: """Class for bowser agent window : @@ -2742,6 +2751,14 @@ class plugin: get_property('is-active'): self.systray.add_jid(jid, account) + def handle_event_gc_subject(self, account, array): + #('GC_SUBJECT', account, (jid, subject)) + jids = string.split(array[0], '/') + jid = jids[0] + if not self.windows[account]['gc'].has_key(jid): + return + self.windows[account]['gc'][jid].set_subject(array[1]) + def handle_event_bad_passphrase(self, account, array): warning_dialog(_("Your GPG passphrase is wrong, so you are connected without your GPG key.")) @@ -2814,6 +2831,8 @@ class plugin: self.handle_event_log_line(ev[1], ev[2]) elif ev[0] == 'GC_MSG': self.handle_event_gc_msg(ev[1], ev[2]) + elif ev[0] == 'GC_SUBJECT': + self.handle_event_gc_subject(ev[1], ev[2]) elif ev[0] == 'BAD_PASSPHRASE': self.handle_event_bad_passphrase(ev[1], ev[2]) elif ev[0] == 'GPG_SECRETE_KEYS': @@ -2874,8 +2893,8 @@ class plugin: 'NOTIFY', 'MSG', 'MSGERROR', 'SUBSCRIBED', 'UNSUBSCRIBED', \ 'SUBSCRIBE', 'AGENTS', 'AGENT_INFO', 'REG_AGENT_INFO', 'QUIT', \ 'ACC_OK', 'CONFIG', 'MYVCARD', 'VCARD', 'LOG_NB_LINE', 'LOG_LINE', \ - 'VISUAL', 'GC_MSG', 'BAD_PASSPHRASE', 'GPG_SECRETE_KEYS', \ - 'ROSTER_INFO', 'MSGSENT']) + 'VISUAL', 'GC_MSG', 'GC_SUBJECT', 'BAD_PASSPHRASE', \ + 'GPG_SECRETE_KEYS', 'ROSTER_INFO', 'MSGSENT']) self.send('ASK_CONFIG', None, ('GtkGui', 'GtkGui', {'autopopup':1,\ 'autopopupaway':1,\ 'showoffline':0,\