From 309e844b4ee853c1dbb17108e517ff38e920b109 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20H=C3=B6rist?= Date: Sat, 11 Nov 2017 17:10:17 +0100 Subject: [PATCH] Escape account label in roster and menus --- gajim/gui_menu_builder.py | 15 ++++++++++++--- gajim/roster_window.py | 2 +- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/gajim/gui_menu_builder.py b/gajim/gui_menu_builder.py index 46d1aec46..3b0b8308f 100644 --- a/gajim/gui_menu_builder.py +++ b/gajim/gui_menu_builder.py @@ -780,7 +780,8 @@ def build_accounts_menu(): return if len(accounts_list) > 1: for acc in accounts_list: - label = app.config.get_per('accounts', acc, 'account_label') + label = escape_mnemonic( + app.config.get_per('accounts', acc, 'account_label')) acc_menu.append_submenu( label or acc, get_account_menu(acc)) else: @@ -806,8 +807,8 @@ def build_bookmark_menu(account): if acc_menu.get_item_link(0, 'submenu'): for i in range(acc_menu.get_n_items()): label = acc_menu.get_item_attribute_value(i, 'label') - account_label = app.config.get_per('accounts', account, - 'account_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') else: @@ -835,3 +836,11 @@ def get_encryption_menu(control_id, type_id): if menu.get_n_items() == 1: return None return menu + + +def escape_mnemonic(label): + if label is None: + return + # Underscore inside a label means the next letter is a keyboard + # shortcut. To show an underscore we have to use double underscore + return label.replace('_', '__') diff --git a/gajim/roster_window.py b/gajim/roster_window.py index 44222cde9..9fe71d054 100644 --- a/gajim/roster_window.py +++ b/gajim/roster_window.py @@ -1069,7 +1069,7 @@ class RosterWindow: accounts = accounts) account_name += ' (%s/%s)' % (repr(nbr_on), repr(nbr_total)) - self.model[child_iter][Column.NAME] = account_name + self.model[child_iter][Column.NAME] = GLib.markup_escape_text(account_name) pep_dict = app.connections[account].pep if app.config.get('show_mood_in_roster') and 'mood' in pep_dict: