diff --git a/src/chat.py b/src/chat.py index 3a5eb1b9f..e839d4e9d 100644 --- a/src/chat.py +++ b/src/chat.py @@ -178,8 +178,8 @@ class Chat: if self.plugin.windows['logs'].has_key(jid): self.plugin.windows['logs'][jid].window.present() else: - self.plugin.windows['logs'][jid] = history_window.\ - HistoryWindow(self.plugin, jid, self.account) + self.plugin.windows['logs'][jid] = history_window.HistoryWindow( + self.plugin, jid, self.account) def on_chat_window_focus_in_event(self, widget, event): """When window gets focus""" @@ -202,6 +202,12 @@ class Chat: isactive = widget.get_active() self.set_compact_view(isactive) + def on_actions_button_clicked(self, widget): + '''popup action menu''' + menu = self.prepare_context_menu() + menu.popup(None, None, None, 1, 0) + menu.show_all() + def remove_possible_switch_to_menuitems(self, menu): ''' remove duplicate 'Switch to' if they exist and return clean menu''' childs = menu.get_children() @@ -228,28 +234,35 @@ class Chat: return menu + def prepare_context_menu(self): + '''sets compact view menuitem active state + sets active and sensitivity state for toggle_gpg_menuitem + and remove possible 'Switch to' menuitems''' + if self.widget_name == 'groupchat_window': + menu = self.gc_popup_menu + childs = menu.get_children() + # compact_view_menuitem + childs[5].set_active(self.compact_view_current_state) + elif self.widget_name == 'tabbed_chat_window': + menu = self.tabbed_chat_popup_menu + childs = menu.get_children() + # check if gpg capabitlies or else make gpg toggle insensitive + jid = self.get_active_jid() + gpg_btn = self.xmls[jid].get_widget('gpg_togglebutton') + isactive = gpg_btn.get_active() + issensitive = gpg_btn.get_property('sensitive') + childs[3].set_active(isactive) + childs[3].set_property('sensitive', issensitive) + # compact_view_menuitem + childs[4].set_active(self.compact_view_current_state) + menu = self.remove_possible_switch_to_menuitems(menu) + + return menu + def on_chat_window_button_press_event(self, widget, event): '''If right-clicked, show popup''' if event.button == 3: # right click - if self.widget_name == 'groupchat_window': - menu = self.gc_popup_menu - childs = menu.get_children() - # compact_view_menuitem - childs[5].set_active(self.compact_view_current_state) - elif self.widget_name == 'tabbed_chat_window': - menu = self.tabbed_chat_popup_menu - childs = menu.get_children() - # check if gpg capabitlies or else make gpg toggle insensitive - jid = self.get_active_jid() - gpg_btn = self.xmls[jid].get_widget('gpg_togglebutton') - isactive = gpg_btn.get_active() - issensitive = gpg_btn.get_property('sensitive') - childs[3].set_active(isactive) - childs[3].set_property('sensitive', issensitive) - # compact_view_menuitem - childs[4].set_active(self.compact_view_current_state) - menu = self.remove_possible_switch_to_menuitems(menu) - + menu = self.prepare_context_menu() # common menuitems (tab switches) if len(self.xmls) > 1: # if there is more than one tab menu.append(gtk.MenuItem()) # seperator @@ -1132,7 +1145,7 @@ class Chat: self.paint_banner(jid) def set_compact_view(self, state): - '''Toggle compact view''' + '''Toggle compact view. state is bool''' self.compact_view_current_state = state for jid in self.xmls: diff --git a/src/groupchat_window.py b/src/groupchat_window.py index 68ba0670a..5517f1c06 100644 --- a/src/groupchat_window.py +++ b/src/groupchat_window.py @@ -1063,16 +1063,6 @@ class GroupchatWindow(chat.Chat): else: # it is root (eg. group) bgcolor = gajim.config.get_per('themes', theme, 'groupbgcolor') renderer.set_property('cell-background', bgcolor) - - def on_actions_button_clicked(self, widget): - """popup action menu""" - menu = self.gc_popup_menu - childs = menu.get_children() - # compact_view_menuitem - childs[5].set_active(self.compact_view_current_state) - menu = self.remove_possible_switch_to_menuitems(menu) - menu.popup(None, None, None, 1, 0) - menu.show_all() def on_list_treeview_button_press_event(self, widget, event): """popup user's group's or agent menu""" diff --git a/src/gtkgui.glade b/src/gtkgui.glade index e06abf56c..a5f456e03 100644 --- a/src/gtkgui.glade +++ b/src/gtkgui.glade @@ -17095,6 +17095,7 @@ Maybe I'll refactor later GTK_WINDOW_TOPLEVEL GTK_WIN_POS_NONE False + 480 True False True