refactor groupchat popup menu. see #3211
This commit is contained in:
parent
ef8b15c893
commit
cefac49fdf
2 changed files with 158 additions and 180 deletions
|
@ -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>
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Add table
Reference in a new issue