Author: asterix Date: 2007-06-02 14:03:02 +0200 (Sat, 02 Jun 2007) New Revision: 8195
Modified: trunk/data/glade/gc_control_popup_menu.glade trunk/src/groupchat_control.py Log: refactor groupchat popup menu. see #3211
Modified: trunk/data/glade/gc_control_popup_menu.glade =================================================================== --- trunk/data/glade/gc_control_popup_menu.glade 2007-06-02 11:14:25 UTC (rev 8194) +++ trunk/data/glade/gc_control_popup_menu.glade 2007-06-02 12:03:02 UTC (rev 8195) @@ -1,153 +1,131 @@ -<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*--> -<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd"> - +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd"> +<!--*- mode: xml -*--> <glade-interface> - -<widget class="GtkMenu" id="gc_control_popup_menu"> - - <child> - <widget class="GtkImageMenuItem" id="history_menuitem"> - <property name="tooltip" translatable="yes">Click to see past conversation in this room</property> - <property name="label" translatable="yes">_History</property> - <property name="use_underline">True</property> - - <child internal-child="image"> - <widget class="GtkImage" id="image1405"> - <property name="visible">True</property> - <property name="stock">gtk-justify-fill</property> - <property name="icon_size">1</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkImageMenuItem" id="configure_room_menuitem"> - <property name="label" translatable="yes">Configure _Room</property> - <property name="use_underline">True</property> - - <child internal-child="image"> - <widget class="GtkImage" id="image1406"> - <property name="visible">True</property> - <property name="stock">gtk-preferences</property> - <property name="icon_size">1</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkImageMenuItem" id="destroy_room_menuitem"> - <property name="visible">True</property> - <property name="label" translatable="yes">_Destroy room</property> - <property name="use_underline">True</property> - - <child internal-child="image"> - <widget class="GtkImage" id="image1407"> - <property name="visible">True</property> - <property name="stock">gtk-delete</property> - <property name="icon_size">1</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkImageMenuItem" id="change_subject_menuitem"> - <property name="label" translatable="yes">Change _Subject</property> - <property name="use_underline">True</property> - - <child internal-child="image"> - <widget class="GtkImage" id="image1408"> - <property name="visible">True</property> - <property name="stock">gtk-edit</property> - <property name="icon_size">1</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkImageMenuItem" id="change_nick_menuitem"> - <property name="label" translatable="yes">Change _Nickname</property> - <property name="use_underline">True</property> - - <child internal-child="image"> - <widget class="GtkImage" id="image1409"> - <property name="visible">True</property> - <property name="stock">gtk-redo</property> - <property name="icon_size">1</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkImageMenuItem" id="bookmark_room_menuitem"> - <property name="label" translatable="yes">_Bookmark This Room</property> - <property name="use_underline">True</property> - - <child internal-child="image"> - <widget class="GtkImage" id="image1410"> - <property name="visible">True</property> - <property name="stock">gtk-add</property> - <property name="icon_size">1</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkCheckMenuItem" id="compact_view_menuitem"> - <property name="label" translatable="yes">_Compact View Alt+C</property> - <property name="use_underline">True</property> - <property name="active">False</property> - </widget> - </child> - - <child> - <widget class="GtkImageMenuItem" id="minimize_menuitem"> - <property name="visible">True</property> - <property name="label" translatable="yes">_Minimize</property> - <property name="use_underline">True</property> - - <child internal-child="image"> - <widget class="GtkImage" id="image1411"> - <property name="visible">True</property> - <property name="stock">gtk-goto-bottom</property> - <property name="icon_size">1</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - </child> - </widget> - </child> -</widget> - + <widget class="GtkMenu" id="gc_control_popup_menu"> + <child> + <widget class="GtkImageMenuItem" id="change_nick_menuitem"> + <property name="label" translatable="yes">Change _Nickname</property> + <property name="use_underline">True</property> + <child internal-child="image"> + <widget class="GtkImage" id="image1409"> + <property name="visible">True</property> + <property name="stock">gtk-redo</property> + <property name="icon_size">1</property> + </widget> + </child> + </widget> + </child> + <child> + <widget class="GtkMenuItem" id="manage_room_menuitem"> + <property name="visible">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="label" translatable="yes">_Manage room</property> + <property name="use_underline">True</property> + <child> + <widget class="GtkMenu" id="menu1"> + <property name="visible">True</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <child> + <widget class="GtkImageMenuItem" id="change_subject_menuitem"> + <property name="label" translatable="yes">Change _Subject</property> + <property name="use_underline">True</property> + <child internal-child="image"> + <widget class="GtkImage" id="image1408"> + <property name="visible">True</property> + <property name="stock">gtk-edit</property> + <property name="icon_size">1</property> + </widget> + </child> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="configure_room_menuitem"> + <property name="label" translatable="yes">Configure _Room</property> + <property name="use_underline">True</property> + <child internal-child="image"> + <widget class="GtkImage" id="image1406"> + <property name="visible">True</property> + <property name="stock">gtk-preferences</property> + <property name="icon_size">1</property> + </widget> + </child> + </widget> + </child> + <child> + <widget class="GtkSeparatorMenuItem" id="separatormenuitem1"> + <property name="visible">True</property> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="destroy_room_menuitem"> + <property name="visible">True</property> + <property name="label" translatable="yes">_Destroy room</property> + <property name="use_underline">True</property> + <child internal-child="image"> + <widget class="GtkImage" id="image1407"> + <property name="visible">True</property> + <property name="stock">gtk-delete</property> + <property name="icon_size">1</property> + </widget> + </child> + </widget> + </child> + </widget> + </child> + </widget> + </child> + <child> + <widget class="GtkCheckMenuItem" id="compact_view_menuitem"> + <property name="label" translatable="yes">_Compact View Alt+C</property> + <property name="use_underline">True</property> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="minimize_menuitem"> + <property name="visible">True</property> + <property name="label" translatable="yes">_Minimize</property> + <property name="use_underline">True</property> + <child internal-child="image"> + <widget class="GtkImage" id="image1411"> + <property name="visible">True</property> + <property name="stock">gtk-goto-bottom</property> + <property name="icon_size">1</property> + </widget> + </child> + </widget> + </child> + <child> + <widget class="GtkSeparatorMenuItem" id="separatormenuitem2"> + <property name="visible">True</property> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="bookmark_room_menuitem"> + <property name="label" translatable="yes">_Bookmark</property> + <property name="use_underline">True</property> + <child internal-child="image"> + <widget class="GtkImage" id="image1410"> + <property name="visible">True</property> + <property name="stock">gtk-add</property> + <property name="icon_size">1</property> + </widget> + </child> + </widget> + </child> + <child> + <widget class="GtkImageMenuItem" id="history_menuitem"> + <property name="tooltip" translatable="yes">Click to see past conversation in this room</property> + <property name="label" translatable="yes">_History</property> + <property name="use_underline">True</property> + <child internal-child="image"> + <widget class="GtkImage" id="image1405"> + <property name="visible">True</property> + <property name="stock">gtk-justify-fill</property> + <property name="icon_size">1</property> + </widget> + </child> + </widget> + </child> + </widget> </glade-interface>
Modified: trunk/src/groupchat_control.py =================================================================== --- trunk/src/groupchat_control.py 2007-06-02 11:14:25 UTC (rev 8194) +++ trunk/src/groupchat_control.py 2007-06-02 12:03:02 UTC (rev 8195) @@ -217,28 +217,30 @@ self._on_bookmark_room_menuitem_activate) self.handlers[id] = widget
- widget = xm.get_widget('change_nick_menuitem') - id = widget.connect('activate', self._on_change_nick_menuitem_activate) - self.handlers[id] = widget + self.change_nick_menuitem = xm.get_widget('change_nick_menuitem') + id = self.change_nick_menuitem.connect('activate', + self._on_change_nick_menuitem_activate) + self.handlers[id] = self.change_nick_menuitem
- widget = xm.get_widget('configure_room_menuitem') - id = widget.connect('activate', + self.configure_room_menuitem = xm.get_widget('configure_room_menuitem') + id = self.configure_room_menuitem.connect('activate', self._on_configure_room_menuitem_activate) - self.handlers[id] = widget + self.handlers[id] = self.configure_room_menuitem
- widget = xm.get_widget('destroy_room_menuitem') - id = widget.connect('activate', + self.destroy_room_menuitem = xm.get_widget('destroy_room_menuitem') + id = self.destroy_room_menuitem.connect('activate', self._on_destroy_room_menuitem_activate) - self.handlers[id] = widget + self.handlers[id] = self.destroy_room_menuitem
- widget = xm.get_widget('change_subject_menuitem') - id = widget.connect('activate', + self.change_subject_menuitem = xm.get_widget('change_subject_menuitem') + id = self.change_subject_menuitem.connect('activate', self._on_change_subject_menuitem_activate) - self.handlers[id] = widget + self.handlers[id] = self.change_subject_menuitem
- widget = xm.get_widget('compact_view_menuitem') - id = widget.connect('activate', self._on_compact_view_menuitem_activate) - self.handlers[id] = widget + self.compact_view_menuitem = xm.get_widget('compact_view_menuitem') + id = self.compact_view_menuitem.connect('activate', + self._on_compact_view_menuitem_activate) + self.handlers[id] = self.compact_view_menuitem
widget = xm.get_widget('history_menuitem') id = widget.connect('activate', self._on_history_menuitem_activate) @@ -483,30 +485,28 @@ def prepare_context_menu(self): '''sets compact view menuitem active state sets sensitivity state for configure_room''' - menu = self.gc_popup_menu - childs = menu.get_children() # Check compact view menuitem - childs[6].set_active(self.hide_chat_buttons_current) + self.compact_view_menuitem.set_active(self.hide_chat_buttons_current) if gajim.gc_connected[self.account][self.room_jid]: c = gajim.contacts.get_gc_contact(self.account, self.room_jid, self.nick) if c.affiliation not in ('owner', 'admin'): - childs[1].set_sensitive(False) + self.configure_room_menuitem.set_sensitive(False) else: - childs[1].set_sensitive(True) + self.configure_room_menuitem.set_sensitive(True) if c.affiliation != 'owner': - childs[2].set_sensitive(False) + self.destroy_room_menuitem.set_sensitive(False) else: - childs[2].set_sensitive(True) - childs[3].set_sensitive(True) - childs[4].set_sensitive(True) + self.destroy_room_menuitem.set_sensitive(True) + self.change_subject_menuitem.set_sensitive(True) + self.change_nick_menuitem.set_sensitive(True) else: # We are not connected to this groupchat, disable unusable menuitems - childs[1].set_sensitive(False) - childs[2].set_sensitive(False) - childs[3].set_sensitive(False) - childs[4].set_sensitive(False) - return menu + self.configure_room_menuitem.set_sensitive(False) + self.destroy_room_menuitem.set_sensitive(False) + self.change_subject_menuitem.set_sensitive(False) + self.change_nick_menuitem.set_sensitive(False) + return self.gc_popup_menu
def on_message(self, nick, msg, tim, has_timestamp = False, xhtml = None): if not nick: