| ... |
... |
@@ -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),
|