gnucash stable: Multiple changes pushed
Robert Fewell
bobit at code.gnucash.org
Sun Apr 2 07:22:00 EDT 2023
Updated via https://github.com/Gnucash/gnucash/commit/cb98864f (commit)
via https://github.com/Gnucash/gnucash/commit/0dc0fcd7 (commit)
via https://github.com/Gnucash/gnucash/commit/98c11d62 (commit)
via https://github.com/Gnucash/gnucash/commit/96d28f2f (commit)
via https://github.com/Gnucash/gnucash/commit/91ee2664 (commit)
from https://github.com/Gnucash/gnucash/commit/d8a3e831 (commit)
commit cb98864f7b27fbdde175116f68793adb76cb8878
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Sun Apr 2 11:32:05 2023 +0100
Modify updating accelerators based on the accelerator map
Menu items based on actions with targets all share the same action so
add the target to the end of lines defining these menu item so that
accelerators can be added.
diff --git a/gnucash/gnome-utils/gnc-gtk-utils.c b/gnucash/gnome-utils/gnc-gtk-utils.c
index fdd2fefb61..7e01b1a85e 100644
--- a/gnucash/gnome-utils/gnc-gtk-utils.c
+++ b/gnucash/gnome-utils/gnc-gtk-utils.c
@@ -367,17 +367,22 @@ accel_map_foreach_func (gpointer user_data, const gchar* accel_path, guint accel
GMenuModel *menu_model = user_data;
gchar **accel_path_parts = NULL;
guint accel_size = 0;
+ gchar *target = NULL;
gchar *accel_name_tmp = gtk_accelerator_name (accel_key, accel_mods);
gchar *accel_name = g_strescape (accel_name_tmp, NULL);
accel_path_parts = g_strsplit (accel_path, "/", -1);
accel_size = g_strv_length (accel_path_parts);
- if (accel_size == 3)
+ if (accel_size == 4)
+ target = g_strdup (accel_path_parts[3]);
+
+ if (accel_size >=3)
gnc_menubar_model_update_item (menu_model, accel_path_parts[2],
- NULL, accel_name, NULL);
+ target, NULL, accel_name, NULL);
g_strfreev (accel_path_parts);
+ g_free (target);
g_free (accel_name_tmp);
g_free (accel_name);
}
diff --git a/gnucash/ui/accelerator-map b/gnucash/ui/accelerator-map
index a96264f49f..b609420729 100644
--- a/gnucash/ui/accelerator-map
+++ b/gnucash/ui/accelerator-map
@@ -79,8 +79,75 @@
; (gtk_accel_path "<Actions>/gnc-plugin-csv-import-actions/CsvImportPriceAction" "")
; (gtk_accel_path "<Actions>/gnc-plugin-csv-import-actions/CsvImportTransAction" "")
; (gtk_accel_path "<Actions>/gnc-plugin-customer-import-actions/customer_importAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-file-history-actions/RecentFile0Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-file-history-actions/RecentFile1Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-file-history-actions/RecentFile2Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-file-history-actions/RecentFile3Action" "")
; (gtk_accel_path "<Actions>/gnc-plugin-log-replay-actions/LogReplayAction" "")
-; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/065d5d5a77ba11e8b31e83ada73c5eeaAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/0769e242be474010b4acf264a5512e6eAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/08ae9c2e884b4f9787144f47eacd7f44Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/0b81a3bdfd504aff849ec2e8630524bcAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/0e94fd0277ba11e8825d43e27232c9d4Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/15d5b744176c4625a703720338725291Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/1d241609fd4644caad765c95be20ff4cAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/216cd0cf6931453ebcce85415aba7082Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/21d7cfc59fc74f22887596ebde7e462dAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/25455562bd234dd0b048ecc5a8af9e43Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/2e22929e5c5b4b769f615a815ef0c20fAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/2e3751edeb7544e8a20fd19e9d08bb65Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/2eff1729072e411ab124065b850dee6aAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/2fe3b9833af044abb929a88d5a59620fAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/321d940d487d4ccbb4bd0467ffbadbf2Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/3298541c236b494998b236dfad6ad752Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/3ce293441e894423a2425d7a22dd1ac6Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/3dbbc2584da64e7a8674355bc3fbfe3dAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/3fe6dce77da24c66bdc8f8efdea7f9acAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/415cd38d39054d9e9c4040455290c2b1Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/4166a20981985fd2b07ff8cb3b7d384eAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/44f81bee049b4b3ea908f8dac9a9474eAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/47f45d7d6d57b68518481c1fc8d4e4baAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/4a6b82e8678c4f3d9e85d9f09634ca89Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/4d3dcdc8890b11df99dd94cddfd72085Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/5123a759ceb9483abf2182d01c140e8dAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/5426e4d987f6444387fe70880e5b28a0Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/5518ac227e474f47a34439f2d4d049deAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/583c313fcc484efc974c4c844404f454Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/5bf27f249a0d11e7abc4cec278b6b50aAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/5c7fd8a1fe9a4cd38884ff54214aa88aAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/5e2d129f28d14df881c3e47e3053f604Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/67112f318bef4fc496bdc27d106bbda4Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/7eb3df21073d4c33920a0257da15fba5Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/80769921e87943adade887b9835a7685Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/810ed4b25ef0486ea43bbd3dddb32b11Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/8758ba23984c40dea5527f5f0ca2779eAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/9bf1892805cb4336be6320fe48ce5446Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/9cf76bed17f14401b8e3e22d0079cb98Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/ab2acc24afd14630a551f98f1a35fa81Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/ad80271c890b11dfa79f2dcedfd72085Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/af02e925d0484745afb04f16e0524e87Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/b1f15b2052c149df93e698fe85a81ea6Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/c146317be32e4948a561ec7fc89d15c1Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/c2a996c8970f43448654ca84f17dda24Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/c4173ac99b2b448289bf4d11c731af13Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/cbba1696c8c24744848062c7f1cf4a72Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/d5adcc61c62e4b8684dd8907448d7900Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/d7d1e53505ee4b1b82efad9eacedaea0Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/d8b63264186b11e19038001558291366Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/d8ba4a2e89e8479ca9f6eccdeb164588Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/dde49fed4ca940959ae7d01b72742530Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/e1bd09b8a1dd49dd85760db9d82b045cAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/e45218c6d76f11e7b5ef0800277ef320Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/e533c998186b11e1b2e2001558291366Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/e57770f2dbca46619d6dac4ac5469b50Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/e5fa5ce805e840ecbeca4dba3fa4ead9Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/e6e34fa3b6e748debde3cb3bc76d3e53Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/e9418ff64f2c11e5b61d1c7508d793edAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/e9cf815f79db44bcb637d0295093ae3dAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/ecc35ea9dbfa4e20ba389fc85d59cb69Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/f8748b813fab4220ba26e743aedf38daAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/f8921f4e5c284d7caca81e239f468a68Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/faf410e8f8da481fbc09e4763da40bccAction" "")
; (gtk_accel_path "<Actions>/gnc-plugin-ofx-actions/OfxImportAction" "")
; (gtk_accel_path "<Actions>/gnc-plugin-qif-import-actions/QIFImportAction" "")
; (gtk_accel_path "<Actions>/gnc-plugin-register-actions/ToolsGeneralJournalAction" "")
@@ -131,7 +198,12 @@
; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/RecordEntryAction" "")
; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/ReportsCompanyReportAction" "")
; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/SortOrderAction" "")
-; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/SortOrderRadioAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/SortOrderRadioAction/0" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/SortOrderRadioAction/1" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/SortOrderRadioAction/2" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/SortOrderRadioAction/3" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/SortOrderRadioAction/4" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/SortOrderRadioAction/5" "")
; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/ToolsProcessPaymentAction" "")
; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/ViewRefreshAction" "<Primary>r")
; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/ViewResetLayoutAction" "")
@@ -167,6 +239,7 @@
; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/EditEditAccountAction" "<Primary>e")
; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/EditExchangeRateAction" "")
; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/EditFindAccountAction" "<Primary>i")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/EditFindTransactionsAction" "<Primary>f")
; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/EditPasteAction" "<Primary>v")
; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/EditTaxOptionsAction" "")
; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/FilePrintAction" "<Primary>p")
@@ -190,7 +263,9 @@
; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ViewRefreshAction" "<Primary>r")
; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ViewSortByAction" "")
; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ViewStyleDoubleLineAction" "")
-; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ViewStyleRadioAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ViewStyleRadioAction/0" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ViewStyleRadioAction/1" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ViewStyleRadioAction/2" "")
; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/VoidTransactionAction" "")
; (gtk_accel_path "<Actions>/GncPluginPageReportActions/FilePrintAction" "<Primary>p")
; (gtk_accel_path "<Actions>/GncPluginPageReportActions/FilePrintPDFAction" "")
@@ -222,9 +297,12 @@
; (gtk_accel_path "<Actions>/mainwin/ScrubMenuAction" "")
; (gtk_accel_path "<Actions>/mainwin/ViewStatusbarAction" "")
; (gtk_accel_path "<Actions>/mainwin/ViewSummaryAction" "")
-; (gtk_accel_path "<Actions>/mainwin/ViewTabPositionAction" "")
+; (gtk_accel_path "<Actions>/mainwin/ViewTabPositionAction/0" "")
+; (gtk_accel_path "<Actions>/mainwin/ViewTabPositionAction/1" "")
+; (gtk_accel_path "<Actions>/mainwin/ViewTabPositionAction/2" "")
+; (gtk_accel_path "<Actions>/mainwin/ViewTabPositionAction/3" "")
; (gtk_accel_path "<Actions>/mainwin/ViewToolbarAction" "")
-; (gtk_accel_path "<Actions>/mainwin/WindowAction" "")
+; (gtk_accel_path "<Actions>/mainwin/WindowAction/0" "")
; (gtk_accel_path "<Actions>/mainwin/WindowMovePageAction" "")
; (gtk_accel_path "<Actions>/mainwin/WindowNewAction" "")
; (gtk_accel_path "<Actions>/recwin/AccountCheckRepairAction" "")
diff --git a/gnucash/ui/accelerator-map-osx b/gnucash/ui/accelerator-map-osx
index 9a0b955983..e8cc753b89 100644
--- a/gnucash/ui/accelerator-map-osx
+++ b/gnucash/ui/accelerator-map-osx
@@ -79,8 +79,75 @@
; (gtk_accel_path "<Actions>/gnc-plugin-csv-import-actions/CsvImportPriceAction" "")
; (gtk_accel_path "<Actions>/gnc-plugin-csv-import-actions/CsvImportTransAction" "")
; (gtk_accel_path "<Actions>/gnc-plugin-customer-import-actions/customer_importAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-file-history-actions/RecentFile0Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-file-history-actions/RecentFile1Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-file-history-actions/RecentFile2Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-file-history-actions/RecentFile3Action" "")
; (gtk_accel_path "<Actions>/gnc-plugin-log-replay-actions/LogReplayAction" "")
-; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/065d5d5a77ba11e8b31e83ada73c5eeaAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/0769e242be474010b4acf264a5512e6eAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/08ae9c2e884b4f9787144f47eacd7f44Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/0b81a3bdfd504aff849ec2e8630524bcAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/0e94fd0277ba11e8825d43e27232c9d4Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/15d5b744176c4625a703720338725291Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/1d241609fd4644caad765c95be20ff4cAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/216cd0cf6931453ebcce85415aba7082Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/21d7cfc59fc74f22887596ebde7e462dAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/25455562bd234dd0b048ecc5a8af9e43Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/2e22929e5c5b4b769f615a815ef0c20fAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/2e3751edeb7544e8a20fd19e9d08bb65Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/2eff1729072e411ab124065b850dee6aAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/2fe3b9833af044abb929a88d5a59620fAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/321d940d487d4ccbb4bd0467ffbadbf2Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/3298541c236b494998b236dfad6ad752Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/3ce293441e894423a2425d7a22dd1ac6Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/3dbbc2584da64e7a8674355bc3fbfe3dAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/3fe6dce77da24c66bdc8f8efdea7f9acAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/415cd38d39054d9e9c4040455290c2b1Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/4166a20981985fd2b07ff8cb3b7d384eAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/44f81bee049b4b3ea908f8dac9a9474eAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/47f45d7d6d57b68518481c1fc8d4e4baAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/4a6b82e8678c4f3d9e85d9f09634ca89Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/4d3dcdc8890b11df99dd94cddfd72085Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/5123a759ceb9483abf2182d01c140e8dAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/5426e4d987f6444387fe70880e5b28a0Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/5518ac227e474f47a34439f2d4d049deAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/583c313fcc484efc974c4c844404f454Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/5bf27f249a0d11e7abc4cec278b6b50aAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/5c7fd8a1fe9a4cd38884ff54214aa88aAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/5e2d129f28d14df881c3e47e3053f604Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/67112f318bef4fc496bdc27d106bbda4Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/7eb3df21073d4c33920a0257da15fba5Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/80769921e87943adade887b9835a7685Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/810ed4b25ef0486ea43bbd3dddb32b11Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/8758ba23984c40dea5527f5f0ca2779eAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/9bf1892805cb4336be6320fe48ce5446Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/9cf76bed17f14401b8e3e22d0079cb98Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/ab2acc24afd14630a551f98f1a35fa81Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/ad80271c890b11dfa79f2dcedfd72085Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/af02e925d0484745afb04f16e0524e87Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/b1f15b2052c149df93e698fe85a81ea6Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/c146317be32e4948a561ec7fc89d15c1Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/c2a996c8970f43448654ca84f17dda24Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/c4173ac99b2b448289bf4d11c731af13Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/cbba1696c8c24744848062c7f1cf4a72Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/d5adcc61c62e4b8684dd8907448d7900Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/d7d1e53505ee4b1b82efad9eacedaea0Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/d8b63264186b11e19038001558291366Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/d8ba4a2e89e8479ca9f6eccdeb164588Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/dde49fed4ca940959ae7d01b72742530Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/e1bd09b8a1dd49dd85760db9d82b045cAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/e45218c6d76f11e7b5ef0800277ef320Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/e533c998186b11e1b2e2001558291366Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/e57770f2dbca46619d6dac4ac5469b50Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/e5fa5ce805e840ecbeca4dba3fa4ead9Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/e6e34fa3b6e748debde3cb3bc76d3e53Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/e9418ff64f2c11e5b61d1c7508d793edAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/e9cf815f79db44bcb637d0295093ae3dAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/ecc35ea9dbfa4e20ba389fc85d59cb69Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/f8748b813fab4220ba26e743aedf38daAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/f8921f4e5c284d7caca81e239f468a68Action" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction/faf410e8f8da481fbc09e4763da40bccAction" "")
; (gtk_accel_path "<Actions>/gnc-plugin-ofx-actions/OfxImportAction" "")
; (gtk_accel_path "<Actions>/gnc-plugin-qif-import-actions/QIFImportAction" "")
; (gtk_accel_path "<Actions>/gnc-plugin-register-actions/ToolsGeneralJournalAction" "")
@@ -131,7 +198,12 @@
; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/RecordEntryAction" "")
; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/ReportsCompanyReportAction" "")
; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/SortOrderAction" "")
-; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/SortOrderRadioAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/SortOrderRadioAction/0" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/SortOrderRadioAction/1" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/SortOrderRadioAction/2" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/SortOrderRadioAction/3" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/SortOrderRadioAction/4" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/SortOrderRadioAction/5" "")
; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/ToolsProcessPaymentAction" "")
(gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/ViewRefreshAction" "<Meta>r")
; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/ViewResetLayoutAction" "")
@@ -167,6 +239,7 @@
(gtk_accel_path "<Actions>/GncPluginPageRegisterActions/EditEditAccountAction" "<Meta>e")
; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/EditExchangeRateAction" "")
; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/EditFindAccountAction" "<Primary>i")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/EditFindTransactionsAction" "<Primary>f")
(gtk_accel_path "<Actions>/GncPluginPageRegisterActions/EditPasteAction" "<Meta>v")
; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/EditTaxOptionsAction" "")
(gtk_accel_path "<Actions>/GncPluginPageRegisterActions/FilePrintAction" "<Meta>p")
@@ -190,7 +263,9 @@
(gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ViewRefreshAction" "<Meta>r")
; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ViewSortByAction" "")
; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ViewStyleDoubleLineAction" "")
-; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ViewStyleRadioAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ViewStyleRadioAction/0" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ViewStyleRadioAction/1" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ViewStyleRadioAction/2" "")
; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/VoidTransactionAction" "")
(gtk_accel_path "<Actions>/GncPluginPageReportActions/FilePrintAction" "<Meta>p")
; (gtk_accel_path "<Actions>/GncPluginPageReportActions/FilePrintPDFAction" "")
@@ -222,9 +297,12 @@
; (gtk_accel_path "<Actions>/mainwin/ScrubMenuAction" "")
; (gtk_accel_path "<Actions>/mainwin/ViewStatusbarAction" "")
; (gtk_accel_path "<Actions>/mainwin/ViewSummaryAction" "")
-; (gtk_accel_path "<Actions>/mainwin/ViewTabPositionAction" "")
+; (gtk_accel_path "<Actions>/mainwin/ViewTabPositionAction/0" "")
+; (gtk_accel_path "<Actions>/mainwin/ViewTabPositionAction/1" "")
+; (gtk_accel_path "<Actions>/mainwin/ViewTabPositionAction/2" "")
+; (gtk_accel_path "<Actions>/mainwin/ViewTabPositionAction/3" "")
; (gtk_accel_path "<Actions>/mainwin/ViewToolbarAction" "")
-; (gtk_accel_path "<Actions>/mainwin/WindowAction" "")
+; (gtk_accel_path "<Actions>/mainwin/WindowAction/0" "")
; (gtk_accel_path "<Actions>/mainwin/WindowMovePageAction" "")
; (gtk_accel_path "<Actions>/mainwin/WindowNewAction" "")
; (gtk_accel_path "<Actions>/recwin/AccountCheckRepairAction" "")
commit 0dc0fcd774421697d7ab8b58398416a29eb2f0b3
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Sun Apr 2 11:25:16 2023 +0100
Modify gnc_menubar_model_update_item
Add the action target as a parameter so that actions with a specific
target can be updated.
diff --git a/gnucash/gnome-utils/gnc-gtk-utils.c b/gnucash/gnome-utils/gnc-gtk-utils.c
index 9109995869..fdd2fefb61 100644
--- a/gnucash/gnome-utils/gnc-gtk-utils.c
+++ b/gnucash/gnome-utils/gnc-gtk-utils.c
@@ -799,6 +799,8 @@ gnc_menubar_model_find_menu_item (GMenuModel *menu_model, GtkWidget *menu, const
* @param menu_model The GMenuModel of the menu.
*
* @param action_name The action name to update.
+ *
+ * @param target The action target if required, else NULL.
*
* @param label The new menu label text.
*
@@ -810,8 +812,8 @@ gnc_menubar_model_find_menu_item (GMenuModel *menu_model, GtkWidget *menu, const
*/
gboolean
gnc_menubar_model_update_item (GMenuModel *menu_model, const gchar *action_name,
- const gchar *label, const gchar *accel_name,
- const gchar *tooltip)
+ const gchar *target, const gchar *label,
+ const gchar *accel_name, const gchar *tooltip)
{
GncMenuModelSearch *gsm;
gboolean found = FALSE;
@@ -823,6 +825,7 @@ gnc_menubar_model_update_item (GMenuModel *menu_model, const gchar *action_name,
gsm->search_action_label = NULL;
gsm->search_action_name = action_name;
+ gsm->search_action_target = target;
if (gnc_menubar_model_find_item (menu_model, gsm))
{
diff --git a/gnucash/gnome-utils/gnc-gtk-utils.h b/gnucash/gnome-utils/gnc-gtk-utils.h
index 67f4b203ba..5e16a7ad57 100644
--- a/gnucash/gnome-utils/gnc-gtk-utils.h
+++ b/gnucash/gnome-utils/gnc-gtk-utils.h
@@ -95,8 +95,8 @@ gboolean gnc_menubar_model_find_item (GMenuModel *menu_model, GncMenuModelSearch
GtkWidget *gnc_menubar_model_find_menu_item (GMenuModel *menu_model, GtkWidget *menu, const gchar *action_name);
gboolean gnc_menubar_model_update_item (GMenuModel *menu_model, const gchar *action_name,
- const gchar *label, const gchar *accel_name,
- const gchar *tooltip);
+ const gchar *target, const gchar *label,
+ const gchar *accel_name, const gchar *tooltip);
void gnc_menubar_model_remove_items_with_attrib (GMenuModel *menu_model, const gchar *attrib);
diff --git a/gnucash/gnome-utils/gnc-main-window.cpp b/gnucash/gnome-utils/gnc-main-window.cpp
index c3a7a4364e..b9a1f53a6c 100644
--- a/gnucash/gnome-utils/gnc-main-window.cpp
+++ b/gnucash/gnome-utils/gnc-main-window.cpp
@@ -3641,7 +3641,7 @@ gnc_main_window_update_menu_for_action (GncMainWindow *window,
priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
found = gnc_menubar_model_update_item (priv->menubar_model, action_name,
- _(label), nullptr, _(tooltip));
+ nullptr, _(label), nullptr, _(tooltip));
// add tooltip redirect call backs
gnc_plugin_add_menu_tooltip_callbacks (priv->menubar,
diff --git a/gnucash/gnome/gnc-plugin-page-register.c b/gnucash/gnome/gnc-plugin-page-register.c
index ef908ef483..937f7500ea 100644
--- a/gnucash/gnome/gnc-plugin-page-register.c
+++ b/gnucash/gnome/gnc-plugin-page-register.c
@@ -1073,7 +1073,7 @@ gnc_plugin_page_register_ui_update (gpointer various,
{
/* Adjust the action's label and tooltip */
found = gnc_menubar_model_update_item (gnc_window_get_menubar_model (gnc_window),
- *iter, _(*label_iter), NULL, _(*tooltip_iter));
+ *iter, NULL, _(*label_iter), NULL, _(*tooltip_iter));
PINFO("split model_item action '%s', found is %d, iter label is '%s'",
*iter, found, _(*label_iter));
@@ -1091,7 +1091,7 @@ gnc_plugin_page_register_ui_update (gpointer various,
{
/* Adjust the action's label and tooltip */
found = gnc_menubar_model_update_item (gnc_window_get_menubar_model (gnc_window),
- *iter, _(*label_iter), NULL, _(*tooltip_iter));
+ *iter, NULL, _(*label_iter), NULL, _(*tooltip_iter));
PINFO("trans model_item action '%s', found is %d, iter label is '%s'",
*iter, found, _(*label_iter));
commit 98c11d620ac2638e174ec69084d5682125cf6c94
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Sun Apr 2 11:22:58 2023 +0100
Add ability to search for menu actions with a specific target
diff --git a/gnucash/gnome-utils/gnc-gtk-utils.c b/gnucash/gnome-utils/gnc-gtk-utils.c
index 6d8f804b33..9109995869 100644
--- a/gnucash/gnome-utils/gnc-gtk-utils.c
+++ b/gnucash/gnome-utils/gnc-gtk-utils.c
@@ -633,6 +633,8 @@ extract_items_from_model (GMenuModel *model,
const gchar *action = NULL;
const gchar *label = NULL;
const gchar *tooltip = NULL;
+ const gchar *target_char = NULL;
+ gint target_int = -1;
iter = g_menu_model_iterate_item_attributes (model, item);
while (g_menu_attribute_iter_get_next (iter, &key, &value))
@@ -646,10 +648,32 @@ extract_items_from_model (GMenuModel *model,
else if (g_str_equal (key, G_MENU_ATTRIBUTE_ACTION) &&
g_variant_is_of_type (value, G_VARIANT_TYPE_STRING))
action = g_variant_get_string (value, NULL);
-
+ else if (g_str_equal (key, G_MENU_ATTRIBUTE_TARGET) &&
+ g_variant_is_of_type (value, G_VARIANT_TYPE_STRING))
+ target_char = g_variant_get_string (value, NULL);
+ else if (g_str_equal (key, G_MENU_ATTRIBUTE_TARGET) &&
+ g_variant_is_of_type (value, G_VARIANT_TYPE_INT32))
+ target_int = g_variant_get_int32 (value);
g_variant_unref (value);
}
+ if (gsm->search_action_target)
+ {
+ gboolean target_test = FALSE;
+
+ if (target_int != -1 && target_int == atoi (gsm->search_action_target))
+ target_test = TRUE;
+
+ if (target_char && g_strcmp0 (target_char, gsm->search_action_target) == 0)
+ target_test = TRUE;
+
+ if (!target_test)
+ {
+ g_object_unref (iter);
+ return;
+ }
+ }
+
if (action && gsm->search_action_name)
{
if (g_str_has_suffix (action, gsm->search_action_name))
@@ -759,6 +783,7 @@ gnc_menubar_model_find_menu_item (GMenuModel *menu_model, GtkWidget *menu, const
gsm->search_action_label = NULL;
gsm->search_action_name = action_name;
+ gsm->search_action_target = NULL;
if (gnc_menubar_model_find_item (menu_model, gsm))
menu_item = gnc_find_menu_item_by_action_label (menu, gsm->search_action_label);
diff --git a/gnucash/gnome-utils/gnc-gtk-utils.h b/gnucash/gnome-utils/gnc-gtk-utils.h
index 78e5bfc2b8..67f4b203ba 100644
--- a/gnucash/gnome-utils/gnc-gtk-utils.h
+++ b/gnucash/gnome-utils/gnc-gtk-utils.h
@@ -83,6 +83,7 @@ struct _GncMenuModelSearch
{
const gchar *search_action_name;
const gchar *search_action_label;
+ const gchar *search_action_target;
const gchar *tooltip;
GMenuModel *model;
gint index;
diff --git a/gnucash/gnome-utils/gnc-main-window.cpp b/gnucash/gnome-utils/gnc-main-window.cpp
index 1a233bdd40..c3a7a4364e 100644
--- a/gnucash/gnome-utils/gnc-main-window.cpp
+++ b/gnucash/gnome-utils/gnc-main-window.cpp
@@ -1813,6 +1813,7 @@ gnc_main_window_update_one_menu_action (GncMainWindow *window,
gsm->search_action_label = nullptr;
gsm->search_action_name = "WindowsPlaceholder1"; // placeholder
+ gsm->search_action_target = nullptr;
if (!gnc_menubar_model_find_item (priv->menubar_model, gsm))
{
@@ -3457,6 +3458,7 @@ update_menu_model (GncMainWindow *window, const gchar *ui_filename,
gsm->search_action_label = nullptr;
gsm->search_action_name = ui_updates[i];
+ gsm->search_action_target = nullptr;
if (gnc_menubar_model_find_item (priv->menubar_model, gsm))
g_menu_insert_section (G_MENU(gsm->model), gsm->index, NULL, G_MENU_MODEL(menu_model_part));
@@ -3820,6 +3822,7 @@ gnc_main_window_update_menu_and_toolbar (GncMainWindow *window,
gsm->search_action_label = nullptr;
gsm->search_action_name = ui_updates[i];
+ gsm->search_action_target = nullptr;
if (gnc_menubar_model_find_item (priv->menubar_model, gsm))
g_menu_insert_section (G_MENU(gsm->model), gsm->index,
diff --git a/gnucash/gnome-utils/gnc-plugin-menu-additions.c b/gnucash/gnome-utils/gnc-plugin-menu-additions.c
index f85c671b10..f7b091f532 100644
--- a/gnucash/gnome-utils/gnc-plugin-menu-additions.c
+++ b/gnucash/gnome-utils/gnc-plugin-menu-additions.c
@@ -520,6 +520,7 @@ gnc_plugin_menu_additions_add_to_window (GncPlugin *plugin,
// add the report menu to the window
gsm->search_action_label = NULL;
gsm->search_action_name = "ReportsPlaceholder0";
+ gsm->search_action_target = NULL;
if (gnc_menubar_model_find_item (menubar_model, gsm))
{
diff --git a/gnucash/gnome/gnc-plugin-page-register.c b/gnucash/gnome/gnc-plugin-page-register.c
index 27f0dd2334..ef908ef483 100644
--- a/gnucash/gnome/gnc-plugin-page-register.c
+++ b/gnucash/gnome/gnc-plugin-page-register.c
@@ -1047,6 +1047,7 @@ gnc_plugin_page_register_ui_update (gpointer various,
gsm->search_action_label = NULL;
gsm->search_action_name = *iter;
+ gsm->search_action_target = NULL;
found = gnc_menubar_model_find_item (gnc_window_get_menubar_model (gnc_window), gsm);
commit 96d28f2f02c77c2b722e3c0730fbc260866cb9e6
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Sun Apr 2 11:14:39 2023 +0100
Bug 798807 - Keyboard shortcuts not working
Need to readd the accelerator keys when some register transaction
actions are renamed to split actions as this is done by removing and
adding a new menu model / item. As the register is also used for the
schedule transaction editor the way the accelerator group is retrieved
needs changing.
diff --git a/gnucash/gnome-utils/gnc-embedded-window.c b/gnucash/gnome-utils/gnc-embedded-window.c
index a6e1c7769f..d952ebf505 100644
--- a/gnucash/gnome-utils/gnc-embedded-window.c
+++ b/gnucash/gnome-utils/gnc-embedded-window.c
@@ -85,11 +85,15 @@ typedef struct GncEmbeddedWindowPrivate
* the status bar. */
GtkWidget *statusbar;
- /** The group of all actions provided by the main window itself.
+ /** The group of all actions provided by the embedded window itself.
* This does not include any action provided by menu or content
* plugins. */
GSimpleActionGroup *simple_action_group;
+ /** The accelerator group of all actions provided by the embedded
+ * window. */
+ GtkAccelGroup *accel_group;
+
/** The currently selected page. */
GncPluginPage *page;
/** The parent of this embedded "window". This points to a real
@@ -331,7 +335,6 @@ gnc_embedded_window_new (const gchar *action_group_name,
gchar *ui_fullname;
GError *error = NULL;
GtkBuilder *builder;
- GtkAccelGroup *accel_group;
ENTER("group %s, first %p, num %d, ui file %s, parent %p, add accelerators %d, user data %p",
action_group_name, action_entries, n_action_entries, ui_filename,
@@ -380,9 +383,9 @@ gnc_embedded_window_new (const gchar *action_group_name,
priv->parent_window = enclosing_win;
// need to add the accelerator keys
- accel_group = gtk_accel_group_new ();
- gtk_window_add_accel_group (GTK_WINDOW(enclosing_win), accel_group);
- gnc_add_accelerator_keys_for_menu (GTK_WIDGET(priv->menubar), priv->menubar_model, accel_group);
+ priv->accel_group = gtk_accel_group_new ();
+ gtk_window_add_accel_group (GTK_WINDOW(enclosing_win), priv->accel_group);
+ gnc_add_accelerator_keys_for_menu (GTK_WIDGET(priv->menubar), priv->menubar_model, priv->accel_group);
g_free (ui_fullname);
LEAVE("window %p", window);
@@ -462,7 +465,7 @@ gnc_embedded_window_get_toolbar (GncWindow *window)
return priv->toolbar;
}
-/** Retrieve the display hash table associated with an embedded window object.
+/** Retrieve the menubar model associated with an embedded window object.
* This function is called via a vector off a generic window
* interface.
*
@@ -479,6 +482,22 @@ gnc_embedded_window_get_menubar_model (GncWindow *window)
return priv->menubar_model;
}
+/** Retrieve the accelerator group associated with an embedded window object.
+ * This function is called via a vector off a generic window
+ * interface.
+ *
+ * @param window_in A pointer to a generic window. */
+static GtkAccelGroup *
+gnc_embedded_window_get_accel_group (GncWindow *window)
+{
+ GncEmbeddedWindowPrivate *priv;
+
+ g_return_val_if_fail (GNC_IS_EMBEDDED_WINDOW(window), NULL);
+
+ priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
+
+ return priv->accel_group;
+}
/** Initialize the generic window interface for an embedded window.
*
@@ -492,4 +511,5 @@ gnc_window_embedded_window_init (GncWindowIface *iface)
iface->get_menubar = gnc_embedded_window_get_menubar;
iface->get_toolbar = gnc_embedded_window_get_toolbar;
iface->get_menubar_model = gnc_embedded_window_get_menubar_model;
+ iface->get_accel_group = gnc_embedded_window_get_accel_group;
}
diff --git a/gnucash/gnome-utils/gnc-main-window.cpp b/gnucash/gnome-utils/gnc-main-window.cpp
index 82e343364c..1a233bdd40 100644
--- a/gnucash/gnome-utils/gnc-main-window.cpp
+++ b/gnucash/gnome-utils/gnc-main-window.cpp
@@ -5436,7 +5436,7 @@ gnc_main_window_get_toolbar (GncWindow *window)
return priv->toolbar;
}
-/** Retrieve the display hash table associated with a main window object.
+/** Retrieve the menubar model associated with a main window object.
* This function is called via a vector off a generic window
* interface.
*
@@ -5453,6 +5453,22 @@ gnc_main_window_get_menubar_model (GncWindow *window)
return priv->menubar_model;
}
+/** Retrieve the accelerator group associated with a main window object.
+ * This function is called via a vector off a generic window
+ * interface.
+ *
+ * @param window_in A pointer to a generic window. */
+static GtkAccelGroup *
+gnc_main_window_get_accel_group (GncWindow *window)
+{
+ GncMainWindowPrivate *priv;
+
+ g_return_val_if_fail (GNC_IS_MAIN_WINDOW(window), nullptr);
+
+ priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
+
+ return priv->accel_group;
+}
/** Initialize the generic window interface for a main window.
*
@@ -5467,6 +5483,7 @@ gnc_window_main_window_init (GncWindowIface *iface)
iface->get_menubar = gnc_main_window_get_menubar;
iface->get_toolbar = gnc_main_window_get_toolbar;
iface->get_menubar_model = gnc_main_window_get_menubar_model;
+ iface->get_accel_group = gnc_main_window_get_accel_group;
}
diff --git a/gnucash/gnome-utils/gnc-window.c b/gnucash/gnome-utils/gnc-window.c
index 88117856bc..92568b8cd4 100644
--- a/gnucash/gnome-utils/gnc-window.c
+++ b/gnucash/gnome-utils/gnc-window.c
@@ -137,6 +137,17 @@ gnc_window_get_menubar_model (GncWindow *window)
return GNC_WINDOW_GET_IFACE(window)->get_menubar_model (window);
}
+GtkAccelGroup *
+gnc_window_get_accel_group (GncWindow *window)
+{
+ g_return_val_if_fail (GNC_WINDOW(window), NULL);
+
+ /* optional */
+ if (GNC_WINDOW_GET_IFACE(window)->get_accel_group == NULL)
+ return NULL;
+
+ return GNC_WINDOW_GET_IFACE(window)->get_accel_group (window);
+}
/************************************************************
* Auxiliary status bar functions *
************************************************************/
diff --git a/gnucash/gnome-utils/gnc-window.h b/gnucash/gnome-utils/gnc-window.h
index 6b06f3050c..01978346fa 100644
--- a/gnucash/gnome-utils/gnc-window.h
+++ b/gnucash/gnome-utils/gnc-window.h
@@ -66,6 +66,7 @@ typedef struct
GtkWidget * (* get_menubar) (GncWindow *window);
GtkWidget * (* get_toolbar) (GncWindow *window);
GMenuModel * (* get_menubar_model) (GncWindow *window);
+ GtkAccelGroup * (* get_accel_group) (GncWindow *window);
void (* ui_set_sensitive) (GncWindow *window, gboolean sensitive);
} GncWindowIface;
@@ -85,6 +86,7 @@ GtkWidget *gnc_window_get_menubar (GncWindow *window);
GtkWidget *gnc_window_get_toolbar (GncWindow *window);
GtkWidget *gnc_window_get_statusbar (GncWindow *window);
GMenuModel *gnc_window_get_menubar_model (GncWindow *window);
+GtkAccelGroup *gnc_window_get_accel_group (GncWindow *window);
G_END_DECLS
diff --git a/gnucash/gnome/gnc-plugin-page-register.c b/gnucash/gnome/gnc-plugin-page-register.c
index b4f35ff20f..27f0dd2334 100644
--- a/gnucash/gnome/gnc-plugin-page-register.c
+++ b/gnucash/gnome/gnc-plugin-page-register.c
@@ -1103,6 +1103,11 @@ gnc_plugin_page_register_ui_update (gpointer various,
gnc_plugin_add_menu_tooltip_callbacks (gnc_window_get_menubar (gnc_window),
gnc_window_get_menubar_model (gnc_window),
gnc_window_get_statusbar (gnc_window));
+
+ // need to add any accelerator keys, default or user added
+ gnc_add_accelerator_keys_for_menu (gnc_window_get_menubar (gnc_window),
+ gnc_window_get_menubar_model (gnc_window),
+ gnc_window_get_accel_group (gnc_window));
}
}
commit 91ee2664a39d05eabcb0c73a1922df1029f8ac89
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Sun Apr 2 11:00:25 2023 +0100
Bug 798808 - Saved reports shown on main menu
Missed setting '_Custom' as translatable to match entry in
report-core.scm
diff --git a/gnucash/gnome-utils/gnc-plugin-menu-additions.c b/gnucash/gnome-utils/gnc-plugin-menu-additions.c
index 114a7fc074..f85c671b10 100644
--- a/gnucash/gnome-utils/gnc-plugin-menu-additions.c
+++ b/gnucash/gnome-utils/gnc-plugin-menu-additions.c
@@ -440,7 +440,7 @@ gnc_menu_additions_menu_setup_one (ExtensionInfo *ext_info,
g_hash_table_insert (per_window->item_hash, g_strdup (ext_info->action_name), cb_data);
- if (g_str_has_suffix (ext_info->path, "_Custom"))
+ if (g_str_has_suffix (ext_info->path, _("_Custom")))
return;
full_path = g_strconcat (ext_info->path, "/", ext_info->action_label, NULL);
Summary of changes:
gnucash/gnome-utils/gnc-embedded-window.c | 32 +++++++--
gnucash/gnome-utils/gnc-gtk-utils.c | 43 ++++++++++--
gnucash/gnome-utils/gnc-gtk-utils.h | 5 +-
gnucash/gnome-utils/gnc-main-window.cpp | 24 ++++++-
gnucash/gnome-utils/gnc-plugin-menu-additions.c | 3 +-
gnucash/gnome-utils/gnc-window.c | 11 ++++
gnucash/gnome-utils/gnc-window.h | 2 +
gnucash/gnome/gnc-plugin-page-register.c | 10 ++-
gnucash/ui/accelerator-map | 88 +++++++++++++++++++++++--
gnucash/ui/accelerator-map-osx | 88 +++++++++++++++++++++++--
10 files changed, 278 insertions(+), 28 deletions(-)
More information about the gnucash-changes
mailing list