From 361a42781340e5e82181fed078dace49d0fd82b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Danielle=20For=C3=A9?= Date: Tue, 28 Jul 2026 13:29:33 -0700 Subject: [PATCH] AccountItemModel: Use GLib.Menu --- src/FolderList/AccountItemModel.vala | 18 ++++++------------ src/FolderList/FolderList.vala | 16 ++++++++++++++++ 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/src/FolderList/AccountItemModel.vala b/src/FolderList/AccountItemModel.vala index d54489ac9..c4c61a9ad 100644 --- a/src/FolderList/AccountItemModel.vala +++ b/src/FolderList/AccountItemModel.vala @@ -150,18 +150,12 @@ public class Mail.AccountItemModel : Mail.SourceList.ExpandableItem, Mail.Source } public override Gtk.Menu? get_context_menu () { - var menu = new Gtk.Menu (); + var menu = new Menu (); + menu.append ( + _("Edit Aliases…"), + Action.print_detailed_name (FolderList.ACTION_PREFIX + FolderList.ACTION_EDIT_ALIASES, account.service.uid) + ); - var alias_item = new Gtk.MenuItem.with_label (_("Edit Aliases…")); - alias_item.activate.connect (() => { - new AliasDialog (account.service.uid) { - transient_for = ((Gtk.Application) GLib.Application.get_default ()).active_window - }.present (); - }); - menu.add (alias_item); - - menu.show_all (); - - return menu; + return new Gtk.Menu.from_model (menu); } } diff --git a/src/FolderList/FolderList.vala b/src/FolderList/FolderList.vala index 4fc3a82d9..3fe6cdc1f 100644 --- a/src/FolderList/FolderList.vala +++ b/src/FolderList/FolderList.vala @@ -8,6 +8,10 @@ public class Mail.FolderList : Gtk.Box { public signal void folder_selected (Gee.Map folder_info_per_account); + public const string ACTION_GROUP_PREFIX = "folder-list"; + public const string ACTION_PREFIX = ACTION_GROUP_PREFIX + "."; + public const string ACTION_EDIT_ALIASES = "edit-alises"; + public Hdy.HeaderBar header_bar { get; private set; } private Mail.SourceList source_list; @@ -139,6 +143,18 @@ public class Mail.FolderList : Gtk.Box { dialog.present (); } }); + + var edit_aliases_action = new SimpleAction (ACTION_EDIT_ALIASES, VariantType.STRING); + edit_aliases_action.activate.connect ((param) => { + new AliasDialog (param.get_string ()) { + transient_for = (Gtk.Window) get_toplevel () + }.present (); + }); + + var action_group = new SimpleActionGroup (); + action_group.add_action (edit_aliases_action); + + insert_action_group (ACTION_GROUP_PREFIX, action_group); } private void add_account (Mail.Backend.Account account) {