From ff18a88d92312285145adee73a15d9851cb2419d Mon Sep 17 00:00:00 2001 From: Nikos Kouremenos Date: Mon, 18 Jul 2005 09:55:55 +0000 Subject: [PATCH] advanced menuitem does not segfault any more --- src/gtkgui.glade | 22 ++----------- src/roster_window.py | 74 +++++++++++++++++++++++++++++++++++++++----- 2 files changed, 70 insertions(+), 26 deletions(-) diff --git a/src/gtkgui.glade b/src/gtkgui.glade index 3bd49c35d..7fd03bd37 100644 --- a/src/gtkgui.glade +++ b/src/gtkgui.glade @@ -16884,13 +16884,11 @@ Maybe I'll refactor later - True _Send Single Message True - - + True gtk-new 1 @@ -16905,22 +16903,18 @@ Maybe I'll refactor later - True _XML Console True - - True - True _Administrator True @@ -16929,22 +16923,18 @@ Maybe I'll refactor later - True _Online Users True - - True _Send Server Message True - - + True gtk-new 1 @@ -16965,34 +16955,28 @@ Maybe I'll refactor later - True Set Message of the Day Set MOTD True - - True Update Message of the Day Update MOTD True - - True Delete Message of the Day Delete MOTD True - - + True gtk-clear 1 diff --git a/src/roster_window.py b/src/roster_window.py index a7ed16307..ac65ef9a8 100644 --- a/src/roster_window.py +++ b/src/roster_window.py @@ -275,6 +275,28 @@ class RosterWindow: def on_bm_header_changed_state(self, widget, event): widget.set_state(gtk.STATE_NORMAL) #do not allow selected_state + def on_send_single_message_menuitem_activate(self, widget, account): + #FIXME: the same name func already exists and expects 4 args + pass + + def on_xml_console_menuitem_activate(self, widget, account): + pass + + def on_online_users_menuitem_activate(self, widget, account): + pass + + def on_send_server_message_menuitem_activate(self, widget, account): + pass + + def on_set_motd_menuitem_activate(self, widget, account): + pass + + def on_update_motd_menuitem_activate(self, widget, account): + pass + + def on_delete_motd_menuitem_activate(self, widget, account): + pass + def make_menu(self): '''create the main window's menus''' new_message_menuitem = self.xml.get_widget('new_message_menuitem') @@ -286,10 +308,10 @@ class RosterWindow: 'show_offline_contacts_menuitem') profile_avatar_menuitem = self.xml.get_widget('profile_avatar_menuitem') + xm = gtk.glade.XML(GTKGUI_GLADE, 'advanced_menuitem_menu', APP) advanced_menuitem_menu = xm.get_widget('advanced_menuitem_menu') - xm.signal_autoconnect(self) - + if self.add_new_contact_handler_id: add_new_contact_menuitem.handler_disconnect( self.add_new_contact_handler_id) @@ -363,7 +385,8 @@ class RosterWindow: sub_menu = gtk.Menu() add_new_contact_menuitem.set_submenu(sub_menu) for account in gajim.connections: - if gajim.connections[account].connected <= 1: #if offline or connecting + if gajim.connections[account].connected <= 1: + #if offline or connecting continue item = gtk.MenuItem(_('to %s account') % account) sub_menu.append(item) @@ -374,7 +397,8 @@ class RosterWindow: sub_menu = gtk.Menu() service_disco_menuitem.set_submenu(sub_menu) for account in gajim.connections: - if gajim.connections[account].connected <= 1: #if offline or connecting + if gajim.connections[account].connected <= 1: + #if offline or connecting continue item = gtk.MenuItem(_('using %s account') % account) sub_menu.append(item) @@ -385,7 +409,8 @@ class RosterWindow: sub_menu = gtk.Menu() new_message_menuitem.set_submenu(sub_menu) for account in gajim.connections: - if gajim.connections[account].connected <= 1: #if offline or connecting + if gajim.connections[account].connected <= 1: + #if offline or connecting continue our_jid = gajim.config.get_per('accounts', account, 'name') + '@' +\ gajim.config.get_per('accounts', account, 'hostname') @@ -396,13 +421,48 @@ class RosterWindow: sub_menu.show_all() #Advanced Actions + sub_menu = gtk.Menu() for account in gajim.connections: - if gajim.connections[account].connected <= 1: #if offline or connecting + if gajim.connections[account].connected <= 1: + #if offline or connecting continue + childs = advanced_menuitem_menu.get_children() + + send_single_message_menuitem = childs[0] + send_single_message_menuitem.connect('activate', + self.on_send_single_message_menuitem_activate, account) + + xml_console_menuitem = childs[1] + xml_console_menuitem.connect('activate', + self.on_xml_console_menuitem_activate, account) + + # skip the seperator + admin_childs = childs[3].get_submenu().get_children() + + online_users_menuitem = admin_childs[0] + online_users_menuitem.connect('activate', + self.on_online_users_menuitem_activate, account) + + send_server_message_menuitem = admin_childs[1] + send_server_message_menuitem.connect('activate', + self.on_send_server_message_menuitem_activate, account) + + # skip the seperator + set_motd_menuitem = admin_childs[3] + set_motd_menuitem.connect('activate', + self.on_set_motd_menuitem_activate, account) + + update_motd_menuitem = admin_childs[4] + update_motd_menuitem.connect('activate', + self.on_update_motd_menuitem_activate, account) + + delete_motd_menuitem = admin_childs[5] + delete_motd_menuitem.connect('activate', + self.on_delete_motd_menuitem_activate, account) item = gtk.MenuItem(_('for %s ') % account) item.set_submenu(advanced_menuitem_menu) - sub_menu = gtk.Menu() + sub_menu.append(item) advanced_menuitem.set_submenu(sub_menu)