Philipp Hörist pushed to branch master at gajim / gajim
Commits: 6955a7ea by Philipp Hörist at 2019-07-14T08:17:09Z Remove bookmark/join groupchat menus
- - - - -
4 changed files:
- gajim/data/gui/account_context_menu.ui - gajim/gui_interface.py - gajim/gui_menu_builder.py - gajim/roster_window.py
Changes:
===================================== gajim/data/gui/account_context_menu.ui ===================================== @@ -28,14 +28,6 @@ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> </object> </child> - <child> - <object class="GtkMenuItem" id="join_group_chat_menuitem"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="label" translatable="yes">Join _Group Chat</property> - <property name="use_underline">True</property> - </object> - </child> <child> <object class="GtkSeparatorMenuItem" id="seperator"> <property name="visible">True</property>
===================================== gajim/gui_interface.py ===================================== @@ -601,9 +601,6 @@ class Interface: 'from', 'both'): self.instances[account]['sub_request'][obj.jid].destroy()
- def handle_event_bookmarks(self, obj): - gui_menu_builder.build_bookmark_menu(obj.account) - def handle_event_file_send_error(self, event): ft = self.instances['file_transfers'] ft.set_status(event.file_props, 'stop') @@ -1226,7 +1223,6 @@ class Interface: self.handlers = { 'DB_ERROR': [self.handle_event_db_error], 'file-send-error': [self.handle_event_file_send_error], - 'bookmarks-received': [self.handle_event_bookmarks], 'client-cert-passphrase': [ self.handle_event_client_cert_passphrase], 'connection-lost': [self.handle_event_connection_lost],
===================================== gajim/gui_menu_builder.py ===================================== @@ -15,12 +15,11 @@ # along with Gajim. If not, see http://www.gnu.org/licenses/.
from gi.repository import Gtk, Gio, GLib -from nbxmpp.protocol import NS_COMMANDS, NS_FILE, NS_MUC +from nbxmpp.protocol import NS_COMMANDS, NS_FILE from nbxmpp.protocol import NS_JINGLE_FILE_TRANSFER_5, NS_CONFERENCE
from gajim import gtkgui_helpers from gajim import message_control -from gajim.gtkgui_helpers import get_action from gajim.common import app from gajim.common import helpers from gajim.common.i18n import ngettext @@ -47,8 +46,6 @@ def build_resources_submenu(contacts, account, action, room_jid=None, if action == roster.on_invite_to_room: # pylint: disable=comparison-with-callable item.connect('activate', action, [(c, account)], room_jid, room_account, c.resource) - elif action == roster.on_invite_to_new_room: # pylint: disable=comparison-with-callable - item.connect('activate', action, [(c, account)], c.resource) else: # start_chat, execute_command, send_file item.connect('activate', action, c, account, c.resource)
@@ -92,42 +89,7 @@ show_bookmarked=False, force_resource=False): return invite_to_submenu = Gtk.Menu() invite_menuitem.set_submenu(invite_to_submenu) - invite_to_new_room_menuitem = Gtk.MenuItem.new_with_mnemonic(_( - '_New Group Chat')) - if len(contact_list) > 1: # several resources - invite_to_new_room_menuitem.set_submenu(build_resources_submenu( - contact_list, account, roster.on_invite_to_new_room, cap=NS_MUC)) - elif len(list_) == 1: - invite_menuitem.set_sensitive(True) - # use resource if it's self contact - if contact.jid == app.get_jid_from_account(account) or force_resource: - resource = contact.resource - else: - resource = None - invite_to_new_room_menuitem.connect('activate', - roster.on_invite_to_new_room, list_, resource) - elif len(list_) > 1: - list2 = [] - for (c, a) in list_: - if c.supports(NS_MUC): - list2.append((c, a)) - if list2: - invite_to_new_room_menuitem.connect('activate', - roster.on_invite_to_new_room, list2, None) - else: - invite_menuitem.set_sensitive(False) - else: - invite_menuitem.set_sensitive(False) - # transform None in 'jabber' - c_t = contacts_transport or 'jabber' - muc_jid = {} - for account in connected_accounts: - for t in app.connections[account].muc_jid: - muc_jid[t] = app.connections[account].muc_jid[t] - if c_t not in muc_jid: - invite_to_new_room_menuitem.set_sensitive(False) rooms = [] # a list of (room_jid, account) tuple - invite_to_submenu.append(invite_to_new_room_menuitem) minimized_controls = [] for account in connected_accounts: minimized_controls += \ @@ -698,43 +660,6 @@ def get_groupchat_menu(control_id, account, jid): return build_menu(groupchat_menu)
-def get_bookmarks_menu(account, rebuild=False): - con = app.connections[account] - bookmarks = con.get_module('Bookmarks').get_sorted_bookmarks(short_name=True) - - menu = Gio.Menu() - - # Build Join Groupchat - action = 'app.{}-join-groupchat'.format(account) - menuitem = Gio.MenuItem.new(_('Join Group Chat'), action) - variant = GLib.Variant('as', [account, '']) - menuitem.set_action_and_target_value(action, variant) - menu.append_item(menuitem) - - # Build Bookmarks - section = Gio.Menu() - for bookmark in bookmarks: - action = 'app.{}-activate-bookmark'.format(account) - menuitem = Gio.MenuItem.new(bookmark.name, action) - - # Create Variant Dict - dict_ = {'account': GLib.Variant('s', account), - 'jid': GLib.Variant('s', str(bookmark.jid))} - if bookmark.nick: - dict_['nick'] = GLib.Variant('s', bookmark.nick) - if bookmark.password: - dict_['password'] = GLib.Variant('s', bookmark.password) - variant_dict = GLib.Variant('a{sv}', dict_) - - menuitem.set_action_and_target_value(action, variant_dict) - section.append_item(menuitem) - menu.append_section(None, section) - if not rebuild: - get_action(account + '-activate-bookmark').set_enabled(True) - - return menu - - def get_account_menu(account): ''' [(action, label/sub_menu)] @@ -744,7 +669,6 @@ def get_account_menu(account): ''' account_menu = [ ('-add-contact', _('Add Contact…')), - ('-join-groupchat', _('Join Group Chat')), ('-profile', _('Profile')), ('-services', _('Discover Services')), ('-start-single-chat', _('Send Single Message…')), @@ -773,11 +697,6 @@ def get_account_menu(account): for item in preset: if isinstance(item[1], str): action, label = item - if action == '-join-groupchat': - bookmark_menu = get_bookmarks_menu(account, True) - if bookmark_menu: - menu.append_submenu(label, bookmark_menu) - continue action = 'app.{}{}'.format(account, action) menuitem = Gio.MenuItem.new(label, action) if 'add-contact' in action: @@ -832,37 +751,6 @@ def build_accounts_menu(): menubar.insert_submenu(menu_position, _('Accounts'), acc_menu)
-def build_bookmark_menu(account): - menubar = app.app.get_menubar() - bookmark_menu = get_bookmarks_menu(account) - if not bookmark_menu: - return - - menu_position = 1 - if app.prefers_app_menu(): - menu_position = 0 - - # Accounts Submenu - acc_menu = menubar.get_item_link(menu_position, 'submenu') - - # We have more than one Account active - if acc_menu.get_item_link(1, 'submenu'): - for i in range(acc_menu.get_n_items()): - label = acc_menu.get_item_attribute_value(i, 'label') - account_label = escape_mnemonic( - app.config.get_per('accounts', account, 'account_label')) - if label.get_string() in (account_label, account): - menu = acc_menu.get_item_link(i, 'submenu') - bookmark_position = 1 - else: - # We have only one Account active - menu = acc_menu - bookmark_position = 2 - label = menu.get_item_attribute_value(1, 'label').get_string() - menu.remove(bookmark_position) - menu.insert_submenu(bookmark_position, label, bookmark_menu) - - def get_encryption_menu(control_id, type_id, zeroconf=False): menu = Gio.Menu() menu.append(
===================================== gajim/roster_window.py ===================================== @@ -74,7 +74,6 @@ from gajim.gtk.dialogs import InformationDialog from gajim.gtk.dialogs import NonModalConfirmationDialog from gajim.gtk.dialogs import CertificateDialog from gajim.gtk.dialogs import InvitationReceivedDialog -from gajim.gtk.join_groupchat import JoinGroupchatWindow from gajim.gtk.single_message import SingleMessageWindow from gajim.gtk.add_contact import AddNewContactWindow from gajim.gtk.pep_config import ManagePEPServicesWindow @@ -2998,34 +2997,6 @@ class RosterWindow: app.interface.instances['file_transfers'].show_file_send_request( account, contact)
- def on_invite_to_new_room(self, widget, list_, resource=None): - """ - Resource parameter MUST NOT be used if more than one contact in list - """ - account_list = [] - jid_list = [] - for (contact, account) in list_: - if contact.jid not in jid_list: - if resource: # we MUST have one contact only in list_ - fjid = contact.jid + '/' + resource - jid_list.append(fjid) - else: - jid_list.append(contact.jid) - if account not in account_list: - account_list.append(account) - # transform None in 'jabber' - type_ = app.get_transport_name_from_jid(jid_list[0]) or 'jabber' - for account in account_list: - if app.connections[account].muc_jid[type_]: - # create the room on this muc server - if 'join_gc' in app.interface.instances[account]: - app.interface.instances[account]['join_gc'].destroy() - else: - app.interface.instances[account]['join_gc'] = \ - JoinGroupchatWindow( - account, None, automatic={'invities': jid_list}) - break - def on_invite_to_room(self, widget, list_, room_jid, room_account, resource=None): """ @@ -3544,13 +3515,6 @@ class RosterWindow: def on_add_new_contact(self, widget, account): AddNewContactWindow(account)
- def on_join_gc_activate(self, widget, account): - """ - When the join gc menuitem is clicked, show the join gc window - """ - app.app.activate_action('%s-join-groupchat' % account, - GLib.Variant('as', [account, ''])) - def on_create_gc_activate(self, widget, account): """ When the create gc menuitem is clicked, show the create gc window @@ -4802,8 +4766,6 @@ class RosterWindow: account_context_menu = xml.get_object('account_context_menu')
status_menuitem = xml.get_object('status_menuitem') - join_group_chat_menuitem = xml.get_object( - 'join_group_chat_menuitem') add_contact_menuitem = xml.get_object('add_contact_menuitem') service_discovery_menuitem = xml.get_object( 'service_discovery_menuitem') @@ -4900,14 +4862,10 @@ class RosterWindow: view_certificate_menuitem.connect('activate', self.on_view_certificate, account)
- gc_sub_menu = Gtk.Menu() # gc is always a submenu - join_group_chat_menuitem.set_submenu(gc_sub_menu) - self.add_bookmarks_list(gc_sub_menu, account) - # make some items insensitive if account is offline if not app.account_is_connected(account): for widget in (add_contact_menuitem, service_discovery_menuitem, - join_group_chat_menuitem, execute_command_menuitem, + execute_command_menuitem, view_certificate_menuitem, pep_menuitem): widget.set_sensitive(False) else: @@ -5345,34 +5303,6 @@ class RosterWindow: menu.append(item) item.connect('activate', self.on_history_manager_menuitem_activate)
- def add_bookmarks_list(self, gc_sub_menu, account): - """ - Show join new group chat item and bookmarks list for an account - """ - item = Gtk.MenuItem.new_with_mnemonic(_('_Join New Group Chat')) - item.connect('activate', self.on_join_gc_activate, account) - gc_sub_menu.append(item) - item = Gtk.MenuItem.new_with_mnemonic(_('_Create Group Chat')) - item.connect('activate', self.on_create_gc_activate, account) - gc_sub_menu.append(item) - - # User has at least one bookmark. - con = app.connections[account] - if con.get_module('Bookmarks').bookmarks: - item = Gtk.SeparatorMenuItem.new() - gc_sub_menu.append(item) - - bookmarks = con.get_module('Bookmarks').get_sorted_bookmarks( - short_name=True) - for bookmark in bookmarks: - # Do not use underline. - item = Gtk.MenuItem.new_with_label(bookmark.name) - item.set_use_underline(False) - item.connect( - 'activate', self.on_bookmark_menuitem_activate, - account, bookmark) - gc_sub_menu.append(item) - def show_appropriate_context_menu(self, event, iters): # iters must be all of the same type model = self.modelfilter @@ -5413,19 +5343,6 @@ class RosterWindow:
return True
- def on_ctrl_j(self, accel_group, acceleratable, keyval, modifier): - """ - Bring up the conference join dialog, when CTRL+J accelerator is being - activated - """ - # find a connected account: - for account in app.connections: - if account == 'Local': - continue - if app.account_is_connected(account): - self.on_join_gc_activate(None, account) - return True - def fill_column(self, col): for rend in self.renderers_list: col.pack_start(rend[1], rend[2]) @@ -5731,12 +5648,6 @@ class RosterWindow: # transient for the roster window GLib.idle_add(_open_wizard)
- # Setting CTRL+J to be the shortcut for bringing up the dialog to join a - # conference. - accel_group = Gtk.accel_groups_from_object(self.window)[0] - accel_group.connect(Gdk.KEY_j, Gdk.ModifierType.CONTROL_MASK, - Gtk.AccelFlags.MASK, self.on_ctrl_j) - # Setting CTRL+S to be the shortcut to change status message accel_group = Gtk.AccelGroup() keyval, mod = Gtk.accelerator_parse('<Control>s')
View it on GitLab: https://dev.gajim.org/gajim/gajim/commit/6955a7eafea1952e2f51e4258100f2a7bec...