Philipp Hörist pushed to branch master at gajim / gajim

Commits:

2 changed files:

Changes:

  • gajim/gtk/menus.py
    ... ... @@ -156,7 +156,7 @@ def get_groupchat_menu(control_id: str, account: str, jid: JID) -> Gio.Menu:
    156 156
             (_('Rename Chat…'), f'win.rename-groupchat-{control_id}', None),
    
    157 157
             (_('Change Nickname…'), f'win.change-nickname-{control_id}', None),
    
    158 158
             (_('Request Voice'), f'win.request-voice-{control_id}', None),
    
    159
    -        (_('Execute Command…'), f'win.execute-command-{control_id}', 's("")'),
    
    159
    +        (_('Execute Command…'), f'win.execute-command-{control_id}', '""'),
    
    160 160
             (_('Search…'), 'win.search-history', None),
    
    161 161
             (_('Remove History'), 'app.remove-history', params)
    
    162 162
         ]
    
    ... ... @@ -165,52 +165,41 @@ def get_groupchat_menu(control_id: str, account: str, jid: JID) -> Gio.Menu:
    165 165
     
    
    166 166
     
    
    167 167
     def get_account_menu(account: str) -> Gio.Menu:
    
    168
    -    '''
    
    169
    -    [(action, label/sub_menu)]
    
    170
    -        action: string
    
    171
    -        label: string
    
    172
    -        sub menu: list
    
    173
    -    '''
    
    174
    -    account_menu: list[tuple[str, Union[str, list[tuple[str, str]]]]] = [
    
    175
    -        ('-profile', _('Profile')),
    
    176
    -        ('-start-single-chat', _('Send Single Message…')),
    
    177
    -        ('-services', _('Discover Services…')),
    
    178
    -        ('-server-info', _('Server Info')),
    
    179
    -        (_('Advanced'), [
    
    180
    -            ('-archive', _('Archiving Preferences')),
    
    181
    -            ('-blocking', _('Blocking List')),
    
    182
    -            ('-pep-config', _('PEP Configuration')),
    
    183
    -            ('-sync-history', _('Synchronise History…')),
    
    184
    -        ]),
    
    185
    -        (_('Admin'), [
    
    186
    -            ('-send-server-message', _('Send Server Message…')),
    
    187
    -            ('-set-motd', _('Set MOTD…')),
    
    188
    -            ('-update-motd', _('Update MOTD…')),
    
    189
    -            ('-delete-motd', _('Delete MOTD…'))
    
    190
    -        ]),
    
    168
    +
    
    169
    +    val = f'"{account}"'
    
    170
    +
    
    171
    +    menuitems: MenuItemListT = [
    
    172
    +        (_('Profile'), f'app.{account}-profile', val),
    
    173
    +        (_('Send Single Message…'), f'app.{account}-start-single-chat', val),
    
    174
    +        (_('Discover Services…'), f'app.{account}-services', val),
    
    175
    +        (_('Server Info'), f'app.{account}-server-info', val),
    
    176
    +    ]
    
    177
    +
    
    178
    +    menu = make_menu(menuitems)
    
    179
    +
    
    180
    +    advanced_menuitems: MenuItemListT = [
    
    181
    +        (_('Archiving Preferences'), f'app.{account}-archive', val),
    
    182
    +        (_('Blocking List'), f'app.{account}-blocking', val),
    
    183
    +        (_('PEP Configuration'), f'app.{account}-pep-config', val),
    
    184
    +        (_('Synchronise History…'), f'app.{account}-sync-history', val),
    
    191 185
         ]
    
    192 186
     
    
    193 187
         if app.settings.get('developer_modus'):
    
    194
    -        account_menu[5][1].append(('-bookmarks', _('Bookmarks')))
    
    188
    +        advanced_menuitems.append(
    
    189
    +            (_('Bookmarks'), f'app.{account}-bookmarks', val))
    
    195 190
     
    
    196
    -    def build_menu(preset: list[tuple[str, Union[str, list[tuple[str, str]]]]]):
    
    197
    -        menu = Gio.Menu()
    
    198
    -        for item in preset:
    
    199
    -            if isinstance(item[1], str):
    
    200
    -                action, label = item
    
    201
    -                action = f'app.{account}{action}'
    
    202
    -                menuitem = Gio.MenuItem.new(label, action)
    
    203
    -                variant = GLib.Variant('s', account)
    
    204
    -                menuitem.set_action_and_target_value(action, variant)
    
    205
    -                menu.append_item(menuitem)
    
    206
    -            else:
    
    207
    -                label, sub_menu = item
    
    208
    -                # This is a submenu
    
    209
    -                submenu = build_menu(sub_menu)
    
    210
    -                menu.append_submenu(label, submenu)
    
    211
    -        return menu
    
    191
    +    menu.append_submenu(_('Advanced'), make_menu(advanced_menuitems))
    
    212 192
     
    
    213
    -    return build_menu(account_menu)
    
    193
    +    admin_menuitems: MenuItemListT = [
    
    194
    +        (_('Send Server Message…'), f'app.{account}-send-server-message', val),
    
    195
    +        (_('Set MOTD…'), f'app.{account}-set-motd', val),
    
    196
    +        (_('Update MOTD…'), f'app.{account}-update-motd', val),
    
    197
    +        (_('Delete MOTD…'), f'app.{account}-delete-motd', val)
    
    198
    +    ]
    
    199
    +
    
    200
    +    menu.append_submenu(_('Admin'), make_menu(admin_menuitems))
    
    201
    +
    
    202
    +    return menu
    
    214 203
     
    
    215 204
     
    
    216 205
     def build_accounts_menu() -> None:
    
    ... ... @@ -448,7 +437,7 @@ def get_subscription_menu(account: str, jid: JID) -> Gio.Menu:
    448 437
                                      jid=jid,
    
    449 438
                                      type='contact',
    
    450 439
                                      select=True)
    
    451
    -    value = f's("{jid}")'
    
    440
    +    value = f'"{jid}"'
    
    452 441
         menuitems: MenuItemListT = [
    
    453 442
             (_('Start Chat'), 'win.add-chat', params),
    
    454 443
             (_('Information'), f'win.contact-info-{account}', value),
    

  • gajim/gtk/util.py
    ... ... @@ -919,7 +919,7 @@ def make_menu_item(label: str,
    919 919
     
    
    920 920
         item = Gio.MenuItem.new(label)
    
    921 921
         if isinstance(value, str):
    
    922
    -        item.set_detailed_action(f'{action}::value')
    
    922
    +        item.set_detailed_action(f'{action}({value})')
    
    923 923
         elif isinstance(value, VariantMixin):
    
    924 924
             item.set_action_and_target_value(action, value.to_variant())
    
    925 925
         else: