refactor groupchat popup menu. see

This commit is contained in:
Yann Leboulanger 2007-06-02 12:03:02 +00:00
parent ef8b15c893
commit cefac49fdf
2 changed files with 158 additions and 180 deletions

View file

@ -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>

View file

@ -217,28 +217,30 @@ class GroupchatControl(ChatControlBase):
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 @@ class GroupchatControl(ChatControlBase):
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: