diff --git a/core/core.py b/core/core.py index a9e873de0..b89a4680d 100644 --- a/core/core.py +++ b/core/core.py @@ -38,7 +38,6 @@ class GajimCore: def __init__(self): self.connected = 0 self.cfgParser = common.optparser.OptionsParser(CONFPATH) -# print '%s\n' % self.cfgParser.Server_hostname; self.hub = common.hub.GajimHub() self.cfgParser.parseCfgFile() # END __init__ @@ -109,7 +108,6 @@ class GajimCore: roster = self.con.getRoster().getRaw() if not roster : roster = {} - print roster self.hub.sendPlugin('ROSTER', roster) self.con.sendInitPresence() self.connected = 1 @@ -173,7 +171,6 @@ class GajimCore: self.hub.sendPlugin('AGENT_INFO', (ev[1], agent_info)) elif ev[0] == 'REG_AGENT': self.con.sendRegInfo(ev[1]) - print ev[1] else: log.debug("Unknown Command") elif self.connected == 1: diff --git a/doc/gajimrc b/doc/gajimrc index 3099c01a9..4ca325466 100644 --- a/doc/gajimrc +++ b/doc/gajimrc @@ -19,3 +19,4 @@ alwaysauth = 0 showoffline = 0 inmsgcolor = red outmsgcolor = blue +iconstyle = sun diff --git a/plugins/gtkgui.py b/plugins/gtkgui.py index 41fb8e11c..980fcc17c 100644 --- a/plugins/gtkgui.py +++ b/plugins/gtkgui.py @@ -24,6 +24,7 @@ import gtk from gtk import TRUE, FALSE import gtk.glade import gobject +import os import string import common.optparser CONFPATH = "~/.gajimrc" @@ -159,16 +160,6 @@ class agent_reg: for name in self.entries.keys(): self.infos[name] = self.entries[name].get_text() self.r.queueOUT.put(('REG_AGENT', self.agent)) - print self.infos -# jid = string.replace(jid, '@', '') -# if not self.r.l_group.has_key('Agents'): -# iterG = self.r.treestore.append(None, (None, \ -# 'Agents', 'group', FALSE)) -# self.r.l_group['Agent'] = iterG -# user1 = user(jid, jid, ['Agent'], 'online', 'online', 'from') -# iterU = self.r.treestore.append(self.r.l_group['Agent'], \ -# (self.r.pixbufs['online'], jid, jid, TRUE)) -# self.r.l_contact[jid] = {'user':user1, 'iter':[iterU]} self.delete_event(self) def __init__(self, agent, infos, roster): @@ -273,8 +264,8 @@ class message: self.window.set_title('Chat with ' + user.name) self.xml.get_widget('label_contact').set_text(user.name + ' <'\ + user.jid + '>') -#+ '/' + user.resource + '>') self.message = self.xml.get_widget('message') + self.message.grab_focus() self.conversation = self.xml.get_widget('conversation') self.convTxtBuffer = self.conversation.get_buffer() end_iter = self.convTxtBuffer.get_end_iter() @@ -304,7 +295,7 @@ class roster: self.l_group = {} self.treestore.clear() for jid in tab.keys(): - #On enleve la resource + #remove ressource from jid string ji = string.split(jid, '/')[0] name = tab[jid]['name'] if not name: @@ -317,7 +308,6 @@ class roster: show = 'offline' user1 = user(ji, name, tab[jid]['groups'], show, tab[jid]['status'], tab[jid]['sub']) self.l_contact[user1.jid] = {'user': user1, 'iter': []} - print user1.jid if user1.groups == []: if string.find(ji, "@") <= 0: user1.groups.append('Agents') @@ -328,7 +318,10 @@ class roster: iterG = self.treestore.append(None, (None, g, 'group', FALSE)) self.l_group[g] = iterG if user1.show != 'offline' or self.showOffline or g == 'Agents': - iterU = self.treestore.append(self.l_group[g], (self.pixbufs[user1.show], user1.name, user1.jid, TRUE)) + if g == 'Agents': + iterU = self.treestore.append(self.l_group[g], (self.pixbufs[user1.show], user1.name, 'agent', TRUE)) + else: + iterU = self.treestore.append(self.l_group[g], (self.pixbufs[user1.show], user1.name, user1.jid, TRUE)) self.l_contact[user1.jid]['iter'].append(iterU) def update_iter(self, widget, path, iter, data): @@ -437,6 +430,9 @@ class roster: data = self.treestore.get_value(iter, 2) if data == 'group': self.mk_menu_g(event) + elif data == 'agent': + #TODO + pass else: self.mk_menu_c(event, iter) return gtk.TRUE @@ -447,7 +443,7 @@ class roster: def on_status_changed(self, widget): self.queueOUT.put(('STATUS',widget.name)) - if not self.showOffline: + if (not self.showOffline) and widget.name == 'offline': self.treestore.clear() def on_add(self, widget): @@ -467,8 +463,7 @@ class roster: iter = self.treestore.get_iter(path) jid = self.treestore.get_value(iter, 2) if self.tab_messages.has_key(jid): - #TODO: NE FONCTIONNE PAS ! - self.tab_messages[jid].window.grab_focus() + self.tab_messages[jid].window.present() elif self.l_contact.has_key(jid): self.tab_messages[jid] = message(self.l_contact[jid]['user'], self) @@ -476,10 +471,10 @@ class roster: iter = self.treestore.get_iter_from_string(row) jid = self.treestore.get_value(iter, 2) old_text = self.l_contact[jid]['user'].name + #If it is a double click, old_text == new_text if old_text == new_text: if self.tab_messages.has_key(jid): - #TODO: NE FONCTIONNE PAS ! - self.tab_messages[jid].window.grab_focus() + self.tab_messages[jid].window.present() elif self.l_contact.has_key(jid): self.tab_messages[jid] = message(self.l_contact[jid]['user'], self) else: @@ -493,22 +488,25 @@ class roster: Wbrowser = browser(self) def __init__(self, queueOUT): - #initialisation des variables # FIXME : handle no file ... self.cfgParser = common.optparser.OptionsParser(CONFPATH) self.cfgParser.parseCfgFile() self.xml = gtk.glade.XML('plugins/gtkgui.glade', 'Gajim') + self.window = self.xml.get_widget('Gajim') self.tree = self.xml.get_widget('treeview') self.treestore = gtk.TreeStore(gtk.gdk.Pixbuf, str, str, gobject.TYPE_BOOLEAN) - add_pixbuf = self.get_icon_pixbuf(gtk.STOCK_ADD) - remove_pixbuf = self.get_icon_pixbuf(gtk.STOCK_REMOVE) - requested_pixbuf = self.get_icon_pixbuf(gtk.STOCK_QUIT) - self.pixbufs = { "online": add_pixbuf, \ - "away": remove_pixbuf, \ - "xa": remove_pixbuf, \ - "dnd": remove_pixbuf, \ - "offline": remove_pixbuf, \ - "requested": requested_pixbuf} + iconstyle = self.cfgParser.GtkGui_iconstyle + if not iconstyle: + iconstyle = 'sun' + path = 'plugins/icons/' + iconstyle + '/' + self.pixbufs = {} + for state in ('online', 'away', 'xa', 'dnd', 'offline', 'requested'): + if not os.path.exists(path + state + '.xpm'): + print 'No such file : ' + path + state + '.xpm' + self.pixbufs[state] = None + else: + pix = gtk.gdk.pixbuf_new_from_file (path + state + '.xpm') + self.pixbufs[state] = pix self.tree.set_model(self.treestore) self.queueOUT = queueOUT self.optionmenu = self.xml.get_widget('optionmenu') @@ -521,13 +519,11 @@ class roster: else: self.showOffline = 0 - #colonnes + #columns self.col = gtk.TreeViewColumn() render_pixbuf = gtk.CellRendererPixbuf() self.col.pack_start(render_pixbuf, expand = False) self.col.add_attribute(render_pixbuf, 'pixbuf', 0) -# self.col.add_attribute(render_pixbuf, 'pixbuf-expander-closed', 0) -# self.col.add_attribute(render_pixbuf, 'pixbuf-expander-open', 0) render_text = gtk.CellRendererText() render_text.connect('edited', self.on_cell_edited) self.col.pack_start(render_text, expand = True) @@ -545,20 +541,16 @@ class roster: self.xml.signal_connect('on_treeview_event', self.on_treeview_event) self.xml.signal_connect('on_status_changed', self.on_status_changed) self.xml.signal_connect('on_row_activated', self.on_row_activated) -# self.mk_menu_c() class plugin: def read_queue(self): global Wbrowser while self.queueIN.empty() == 0: ev = self.queueIN.get() -# print ev if ev[0] == 'ROSTER': self.r.mkroster(ev[1]) elif ev[0] == 'NOTIFY': jid = string.split(ev[1][0], '/')[0] - print self.r.l_contact - print jid if string.find(jid, "@") <= 0: #It must be an agent jid = string.replace(jid, '@', '') @@ -569,21 +561,23 @@ class plugin: if not self.r.l_contact.has_key(jid): user1 = user(jid, jid, ['Agents'], ev[1][1], ev[1][2], 'from') iterU = self.r.treestore.append(self.r.l_group['Agents'], \ - (self.r.pixbufs[ev[1][1]], jid, jid, TRUE)) + (self.r.pixbufs[ev[1][1]], jid, 'agent', TRUE)) self.r.l_contact[jid] = {'user':user1, 'iter':[iterU]} else: - #On mets a jour la ligne ki existe deja + #Update existing line for i in self.r.l_contact[jid]['iter']: if self.r.pixbufs.has_key(ev[1][1]): self.r.treestore.set_value(i, 0, self.r.pixbufs[ev[1][1]]) elif self.r.l_contact.has_key(jid): - #ca n'est pas un agent + #It isn't an agent self.r.chg_status(jid, ev[1][1], ev[1][2]) elif ev[0] == 'MSG': if string.find(ev[1][0], "@") <= 0: jid = string.replace(ev[1][0], '@', '') + else: + jid = ev[1][0] if not self.r.tab_messages.has_key(jid): - #FIXME:message d'un inconne + #FIXME:message from unknown self.r.tab_messages[jid] = message(self.r.l_contact[jid]['user'], self.r) self.r.tab_messages[jid].print_conversation(ev[1][1]) elif ev[0] == 'SUBSCRIBE': @@ -604,7 +598,7 @@ class plugin: iterU = self.r.treestore.append(self.r.l_group['general'], \ (self.r.pixbufs['online'], jid, jid, TRUE)) self.r.l_contact[jid] = {'user':user1, 'iter':[iterU]} - #TODO: print you are now authorized + #TODO: print 'you are now authorized' elif ev[0] == 'AGENTS': if Wbrowser: Wbrowser.agents(ev[1])