Daniel Brötzmann pushed to branch mainwindow at gajim / gajim
Commits: 302a30e0 by wurstsalat at 2021-09-11T17:10:17+02:00 ContactInfo: Use 'Share Status' in label
- - - - - f3e1dd77 by wurstsalat at 2021-09-11T17:10:40+02:00 AddContact: App action improvements
- - - - - 01608dea by wurstsalat at 2021-09-11T17:54:58+02:00 AddContact: Fix account handling
- - - - - c8b638dd by wurstsalat at 2021-09-11T18:00:24+02:00 Roster: Improve gateway menu
- - - - -
7 changed files:
- gajim/app_actions.py - gajim/application.py - gajim/data/gui/add_contact.ui - gajim/data/gui/contact_info.ui - gajim/gtk/add_contact.py - gajim/gtk/roster.py - gajim/gui_menu_builder.py
Changes:
===================================== gajim/app_actions.py ===================================== @@ -102,6 +102,7 @@ def on_service_disco(_action, param): except GajimGeneralException: pass
+ def on_create_gc(_action, param): account = param.get_string() open_window('CreateGroupchatWindow', account=account or None) @@ -109,7 +110,7 @@ def on_create_gc(_action, param):
def on_add_contact(_action, param): account, jid = param.get_strv() - open_window('AddContact', account=account, jid=jid or None) + open_window('AddContact', account=account or None, jid=jid or None)
def on_single_message(_action, param): @@ -117,7 +118,7 @@ def on_single_message(_action, param): open_window('SingleMessageWindow', account=account)
-def on_add_account(action, _param): +def on_add_account(_action, _param): open_window('AccountWizard')
@@ -239,6 +240,7 @@ def on_remove_event(_action, param):
# Other Actions
+ def toggle_ipython(_action, _param): """ Show/hide the ipython window
===================================== gajim/application.py ===================================== @@ -392,6 +392,7 @@ def add_actions(self): actions = [ ('quit', app_actions.on_quit), ('add-account', app_actions.on_add_account), + ('add-contact', app_actions.on_add_contact), ('manage-proxies', app_actions.on_manage_proxies), ('history-manager', app_actions.on_history_manager), ('preferences', app_actions.on_preferences),
===================================== gajim/data/gui/add_contact.ui ===================================== @@ -139,7 +139,7 @@ <property name="visible">True</property> <property name="can-focus">False</property> <property name="halign">end</property> - <property name="label" translatable="yes">Publish Status</property> + <property name="label" translatable="yes">Share Status</property> <style> <class name="dim-label"/> </style>
===================================== gajim/data/gui/contact_info.ui ===================================== @@ -255,7 +255,7 @@ <property name="visible">True</property> <property name="can-focus">False</property> <property name="halign">end</property> - <property name="label" translatable="yes">Disclose my online status</property> + <property name="label" translatable="yes">Share my online status</property> </object> <packing> <property name="expand">False</property>
===================================== gajim/gtk/add_contact.py ===================================== @@ -72,6 +72,7 @@ def __init__(self, account=None, jid=None, nick=None):
def _on_button_clicked(self, _assistant, button_name): page = self.get_current_page() + account, _ = self.get_page('address').get_account_and_jid()
if button_name == 'next': self._start_disco() @@ -84,7 +85,7 @@ def _on_button_clicked(self, _assistant, button_name): return
if button_name == 'add': - client = app.get_client(self.account) + client = app.get_client(account) if page == 'contact': data = self.get_page('contact').get_subscription_data() client.get_module('Presence').subscribe( @@ -97,13 +98,13 @@ def _on_button_clicked(self, _assistant, button_name): self._result.jid, name=self._result.gateway_name, auto_auth=True) - app.window.show_account_page(self.account) + app.window.show_account_page(account) self.destroy() return
if button_name == 'join': _, jid = self.get_page('address').get_account_and_jid() - open_window('GroupchatJoin', account=self.account, jid=jid) + open_window('GroupchatJoin', account=account, jid=jid) self.destroy()
def _start_disco(self): @@ -192,8 +193,6 @@ def __init__(self, account, jid): self._account = account self._jid = jid
- self._client = None - self._ui = get_builder('add_contact.ui') self.add(self._ui.address_box)
@@ -201,18 +200,23 @@ def __init__(self, account, jid): self._ui.address_entry.connect('changed', self._set_complete)
accounts = app.get_enabled_accounts_with_labels() + liststore = self._ui.account_combo.get_model() + for acc in accounts: + liststore.append(acc) + if len(accounts) > 1: - liststore = self._ui.account_combo.get_model() - for acc in accounts: - liststore.append(acc) self._ui.account_box.show()
- if self._account is not None: - self._client = app.get_client(self._account) - self._ui.account_combo.set_active_id(self._account) + if self._account is not None: + self._ui.account_combo.set_active_id(account) + else: + self._ui.account_combo.set_active(0) + else: + # Set to first (and only) item; sets self._account as well + self._ui.account_combo.set_active(0)
- if self._jid is not None: - self._ui.address_entry.set_text(self._jid) + if jid is not None: + self._ui.address_entry.set_text(str(jid))
self._set_complete()
===================================== gajim/gtk/roster.py ===================================== @@ -9,6 +9,8 @@ from gi.repository import GLib from gi.repository import Gtk
+from nbxmpp import Namespace + from gajim.common import app from gajim.common import ged from gajim.common.const import AvatarSize @@ -114,7 +116,7 @@ def __init__(self, account): def _add_actions(self): actions = [ ('contact-info', self._on_contact_info), - ('modify-transport', self._on_modify_transport), + ('modify-gateway', self._on_modify_gateway), ('execute-command', self._on_execute_command), ('block-contact', self._on_block_contact), ('remove-contact', self._on_remove_contact), @@ -140,7 +142,7 @@ def update_actions(self): app.window.lookup_action( f'contact-info-{self._account}').set_enabled(online) app.window.lookup_action( - f'modify-transport-{self._account}').set_enabled(online) + f'modify-gateway-{self._account}').set_enabled(online) app.window.lookup_action( f'execute-command-{self._account}').set_enabled(online) app.window.lookup_action( @@ -152,7 +154,7 @@ def update_actions(self): def _remove_actions(self): actions = [ 'contact-info', - 'modify-transport', + 'modify-gateway', 'execute-command', 'block-contact', 'remove-contact', @@ -265,7 +267,7 @@ def _on_show_offline(self, action, param): def _on_contact_info(self, _action, param): app.window.contact_info(self._account, param.get_string())
- def _on_modify_transport(self, _action, param): + def _on_modify_gateway(self, _action, param): ServiceRegistration(self._account, param.get_string())
def _on_execute_command(self, _action, param): @@ -345,8 +347,10 @@ def _on_focus_out(treeview, _param):
def _show_contact_menu(self, jid, treeview, event): contact = self._client.get_module('Contacts').get_contact(jid) + gateway_register = contact.is_gateway and contact.supports( + Namespace.REGISTER) menu = get_roster_menu( - self._account, jid, transport=contact.is_gateway) + self._account, jid, gateway=gateway_register)
rectangle = Gdk.Rectangle() rectangle.x = event.x
===================================== gajim/gui_menu_builder.py ===================================== @@ -152,7 +152,6 @@ def get_account_menu(account): sub menu: list ''' account_menu = [ - ('-add-contact', _('Add Contact…')), ('-profile', _('Profile')), ('-start-single-chat', _('Send Single Message…')), ('-services', _('Discover Services…')), @@ -179,10 +178,7 @@ def build_menu(preset): action, label = item action = 'app.{}{}'.format(account, action) menuitem = Gio.MenuItem.new(label, action) - if 'add-contact' in action: - variant = GLib.Variant('as', [account, '']) - else: - variant = GLib.Variant('s', account) + variant = GLib.Variant('s', account) menuitem.set_action_and_target_value(action, variant) menu.append_item(menuitem) else: @@ -205,15 +201,18 @@ def build_accounts_menu():
accounts_list = sorted(app.settings.get_active_accounts()) if not accounts_list: - modify_account_item = Gio.MenuItem.new(_('_Add Account…'), - 'app.accounts::') - acc_menu.append_item(modify_account_item) + add_account_item = Gio.MenuItem.new(_('_Add Account…'), + 'app.accounts::') + acc_menu.append_item(add_account_item) return
if len(accounts_list) > 1: - modify_account_item = Gio.MenuItem.new(_('_Modify Accounts…'), - 'app.accounts::') - acc_menu.append_item(modify_account_item) + modify_accounts_item = Gio.MenuItem.new(_('_Modify Accounts…'), + 'app.accounts::') + acc_menu.append_item(modify_accounts_item) + add_contact_item = Gio.MenuItem.new(_('Add _Contact…'), + 'app.add-contact::') + acc_menu.append_item(add_contact_item) for acc in accounts_list: label = escape_mnemonic(app.get_account_label(acc)) if acc != 'Local': @@ -224,6 +223,9 @@ def build_accounts_menu(): modify_account_item = Gio.MenuItem.new(_('_Modify Account…'), 'app.accounts::') acc_menu.insert_item(0, modify_account_item) + add_contact_item = Gio.MenuItem.new(_('Add _Contact…'), + 'app.add-contact::') + acc_menu.insert_item(1, add_contact_item) menubar.remove(menu_position) menubar.insert_submenu(menu_position, _('Accounts'), acc_menu)
@@ -320,7 +322,7 @@ def get_conv_context_menu(account, uri): return menu
-def get_roster_menu(account, jid, transport=False): +def get_roster_menu(account, jid, gateway=False): if jid_is_blocked(account, jid): block_label = _('Unblock') else: @@ -331,8 +333,8 @@ def get_roster_menu(account, jid, transport=False): ('block-contact', block_label), ('remove-contact', _('Remove…')), ] - if transport: - menu_items.insert(1, ('modify-transport', _('Modify Transport…'))) + if gateway: + menu_items.insert(1, ('modify-gateway', _('Modify Gateway…')))
menu = Gio.Menu() for item in menu_items: @@ -392,7 +394,7 @@ def get_chat_list_row_menu(workspace_id, account, jid, pinned): is_self_contact = contact.jid.bare == client.get_own_jid().bare if (not contact.is_groupchat and not contact.is_in_roster and not is_self_contact): - menu_items.append(('add-to-roster', _('Add to contact list'))) + menu_items.append(('add-to-roster', _('Add to Contact List…')))
menu = Gio.Menu() for item in menu_items:
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/compare/fa4ecf3d451514d58b9c0107778c34d8...