gnucash master: Multiple changes pushed
Robert Fewell
bobit at code.gnucash.org
Sat Mar 18 07:22:40 EDT 2023
Updated via https://github.com/Gnucash/gnucash/commit/a143f8b5 (commit)
via https://github.com/Gnucash/gnucash/commit/55cdb6fe (commit)
via https://github.com/Gnucash/gnucash/commit/cc5029bb (commit)
via https://github.com/Gnucash/gnucash/commit/6a301304 (commit)
via https://github.com/Gnucash/gnucash/commit/e8b0d4dd (commit)
via https://github.com/Gnucash/gnucash/commit/0098b047 (commit)
via https://github.com/Gnucash/gnucash/commit/85f462fe (commit)
from https://github.com/Gnucash/gnucash/commit/b4b84319 (commit)
commit a143f8b5edd3118aedff975d3a1b5b47867e2027
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Sat Mar 11 11:30:03 2023 +0000
Make changes to load and save default accelerator map file
When the gui is loaded, check for the accelerator-map file being
located in the user data directory, if not present copy the default one
to the location and open it.
diff --git a/gnucash/gnome-utils/gnc-gnome-utils.c b/gnucash/gnome-utils/gnc-gnome-utils.c
index 6da3f03ab0..bba47c5deb 100644
--- a/gnucash/gnome-utils/gnc-gnome-utils.c
+++ b/gnucash/gnome-utils/gnc-gnome-utils.c
@@ -600,9 +600,6 @@ gnc_gui_init(void)
{
static GncMainWindow *main_window;
gchar *map;
-#ifdef MAC_INTEGRATION
- gchar *data_dir;
-#endif
ENTER ("");
@@ -651,18 +648,30 @@ gnc_gui_init(void)
// gtk_widget_show (GTK_WIDGET (main_window));
gnc_window_set_progressbar_window (GNC_WINDOW(main_window));
-#ifdef MAC_INTEGRATION
+
map = gnc_build_userdata_path(ACCEL_MAP_NAME);
if (!g_file_test (map, G_FILE_TEST_EXISTS))
{
- g_free (map);
- data_dir = gnc_path_get_pkgdatadir();
- map = g_build_filename(data_dir, "ui", "osx_accel_map", NULL);
- g_free(data_dir);
- }
+ gchar *text = NULL;
+ gsize length;
+ gchar *map_source;
+ gchar *data_dir = gnc_path_get_pkgdatadir();
+#ifdef MAC_INTEGRATION
+ map_source = g_build_filename (data_dir, "ui", "accelerator-map-osx", NULL);
#else
- map = gnc_build_userdata_path(ACCEL_MAP_NAME);
+ map_source = g_build_filename (data_dir, "ui", "accelerator-map", NULL);
#endif /* MAC_INTEGRATION */
+
+ if (map_source && g_file_get_contents (map_source, &text, &length, NULL))
+ {
+ if (length)
+ g_file_set_contents (map, text, length, NULL);
+ g_free (text);
+ }
+ g_free (map_source);
+ g_free(data_dir);
+ }
+
gtk_accel_map_load(map);
g_free(map);
diff --git a/gnucash/ui/CMakeLists.txt b/gnucash/ui/CMakeLists.txt
index 233e778e69..143d5f6b07 100644
--- a/gnucash/ui/CMakeLists.txt
+++ b/gnucash/ui/CMakeLists.txt
@@ -1,5 +1,7 @@
set (ui_SOURCES
- osx_accel_map)
+ osx_accel_map
+ accelerator-map
+ accelerator-map-osx)
foreach (ui_file ${ui_SOURCES})
configure_file (${ui_file} ${DATADIR_BUILD}/gnucash/ui/${ui_file} COPYONLY)
commit 55cdb6fe3485c7a89fc5e47e692b13e6d359481e
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Fri Mar 10 14:09:39 2023 +0000
Default accelerator-map files
diff --git a/gnucash/ui/accelerator-map b/gnucash/ui/accelerator-map
new file mode 100644
index 0000000000..a96264f49f
--- /dev/null
+++ b/gnucash/ui/accelerator-map
@@ -0,0 +1,243 @@
+; gnucash GtkAccelMap rc-file -*- scheme -*-
+; this file is an automated accelerator map dump
+;
+; (gtk_accel_path "<Actions>/gnc-plugin-account-tree-actions/ViewAccountTreeAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-aqbanking-actions/ABGetBalanceAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-aqbanking-actions/ABGetTransAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-aqbanking-actions/ABIssueIntTransAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-aqbanking-actions/ABIssueSepaDirectDebitAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-aqbanking-actions/ABIssueSepaIntTransAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-aqbanking-actions/ABIssueSepaTransAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-aqbanking-actions/ABSetupAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-aqbanking-actions/ABViewLogwindowAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-aqbanking-actions/AQBankingImportAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-aqbanking-actions/OnlineActionsAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/ActionsMortgageLoanAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/ActionsScheduledTransactionEditorAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/ActionsScheduledTransactionsAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/ActionsSinceLastRunAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/EditFindTransactionsAction" "<Primary>f")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/EditTaxOptionsAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/FileExportAccountsAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/FileNewAction" "<Primary>n")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/FileOpenAction" "<Primary>o")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/FileRevertAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/FileSaveAction" "<Primary>s")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/FileSaveAsAction" "<Primary><Shift>s")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/HelpTipsOfTheDayAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/ToolsBookCloseAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/ToolsCommodityEditorAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/ToolsFinancialCalculatorAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/ToolsImapEditorAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/ToolsPriceEditorAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/ToolsTransLinkedDocsAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-bi-import-actions/bi_importAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-budget-actions/ActionsBudgetAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-budget-actions/CopyBudgetAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-budget-actions/DeleteBudgetAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-budget-actions/NewBudgetAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-budget-actions/OpenBudgetAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/BillingTermsOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/BillsDueReminderOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/BusinessLinkedDocsAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/BusinessTestAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/BusinessTestInitDataAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/BusinessTestSearchAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/CustomerFindCustomerOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/CustomerFindInvoiceOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/CustomerFindJobOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/CustomerMenuAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/CustomerNewCustomerOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/CustomerNewInvoiceOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/CustomerNewJobOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/CustomerOverviewPageAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/CustomerProcessPaymentAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/EmployeeFindEmployeeOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/EmployeeFindExpenseVoucherOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/EmployeeMenuAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/EmployeeNewEmployeeOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/EmployeeNewExpenseVoucherOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/EmployeeOverviewPageAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/EmployeeProcessPaymentAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/InvoicesDueReminderOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/RegisterAssignPayment" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/RegisterEditPayment" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/TaxTablesOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/VendorFindBillOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/VendorFindJobOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/VendorFindVendorOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/VendorMenuAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/VendorNewBillOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/VendorNewJobOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/VendorNewVendorOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/VendorOverviewPageAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/VendorProcessPaymentAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-csv-export-actions/CsvExportRegisterAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-csv-export-actions/CsvExportTransAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-csv-export-actions/CsvExportTreeAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-csv-import-actions/CsvImportAccountAction" "")
+; (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-log-replay-actions/LogReplayAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction" "")
+; (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" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-report-system-actions/EditStyleSheetsAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/ActionsAutoClearAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/ActionsLotsAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/ActionsReconcileAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/ActionsStockAssistantAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/ActionsStockSplitAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/ActionsTransferAction" "<Primary>t")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/EditCascadeAccountAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/EditDeleteAccountAction" "Delete")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/EditEditAccountAction" "<Primary>e")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/EditFindAccountAction" "<Primary>i")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/EditOpenAccountAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/EditOpenSubaccountsAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/EditRenumberSubaccountsAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/EditTaxOptionsAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/FileAddAccountHierarchyAssistantAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/FileNewAccountAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/ScrubAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/ScrubAllAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/ScrubSubAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/ViewFilterByAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/ViewRefreshAction" "<Primary>r")
+; (gtk_accel_path "<Actions>/GncPluginPageBudgetActions/AllPeriodsBudgetAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageBudgetActions/BudgetNoteAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageBudgetActions/BudgetReportAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageBudgetActions/DeleteBudgetAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageBudgetActions/EditTaxOptionsAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageBudgetActions/EstimateBudgetAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageBudgetActions/OptionsBudgetAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageBudgetActions/ViewFilterByAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageBudgetActions/ViewRefreshAction" "<Primary>r")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/BlankEntryAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/BusinessLinkAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/BusinessLinkOpenAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/CancelEntryAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/DeleteEntryAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/DuplicateEntryAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/EditDuplicateInvoiceAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/EditEditInvoiceAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/EditPostInvoiceAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/EditUnpostInvoiceAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/EntryDownAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/EntryUpAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/FilePrintAction" "<Primary>p")
+; (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/ToolsProcessPaymentAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/ViewRefreshAction" "<Primary>r")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/ViewResetLayoutAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/ViewSaveLayoutAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageOwnerTreeActions/EditTaxOptionsAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageOwnerTreeActions/OTCustomerListingReportAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageOwnerTreeActions/OTCustomerReportAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageOwnerTreeActions/OTEditCustomerAction" "<Primary>e")
+; (gtk_accel_path "<Actions>/GncPluginPageOwnerTreeActions/OTEditEmployeeAction" "<Primary>e")
+; (gtk_accel_path "<Actions>/GncPluginPageOwnerTreeActions/OTEditVendorAction" "<Primary>e")
+; (gtk_accel_path "<Actions>/GncPluginPageOwnerTreeActions/OTEmployeeReportAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageOwnerTreeActions/OTNewCustomerAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageOwnerTreeActions/OTNewEmployeeAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageOwnerTreeActions/OTNewVendorAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageOwnerTreeActions/OTVendorListingReportAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageOwnerTreeActions/OTVendorReportAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageOwnerTreeActions/ViewFilterByAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageOwnerTreeActions/ViewRefreshAction" "<Primary>r")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ActionsAutoClearAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ActionsLotsAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ActionsReconcileAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ActionsStockAssistantAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ActionsStockSplitAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ActionsTransferAction" "<Primary>t")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/BlankTransactionAction" "<Primary>b")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/CancelTransactionAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/CopyTransactionAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/CutTransactionAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/DeleteTransactionAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/DuplicateTransactionAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/EditCopyAction" "<Primary>c")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/EditCutAction" "<Primary>x")
+; (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/EditPasteAction" "<Primary>v")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/EditTaxOptionsAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/FilePrintAction" "<Primary>p")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/GotoDateAction" "<Primary>g")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/JumpLinkedInvoiceAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/JumpTransactionAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/LinkedTransactionOpenAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/LinkTransactionAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/PasteTransactionAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/RecordTransactionAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/RemoveTransactionSplitsAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ReportsAccountReportAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ReportsAcctTransReportAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ReverseTransactionAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ScheduleTransactionAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ScrubAllAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ScrubCurrentAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/SplitTransactionAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/UnvoidTransactionAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ViewFilterByAction" "")
+; (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/VoidTransactionAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageReportActions/FilePrintAction" "<Primary>p")
+; (gtk_accel_path "<Actions>/GncPluginPageReportActions/FilePrintPDFAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageReportActions/ReportExportAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageReportActions/ReportOptionsAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageReportActions/ReportSaveAction" "<Primary><Alt>s")
+; (gtk_accel_path "<Actions>/GncPluginPageReportActions/ReportSaveAsAction" "<Primary><Alt><Shift>s")
+; (gtk_accel_path "<Actions>/GncPluginPageSxListActions/EditTaxOptionsAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageSxListActions/SxListDeleteAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageSxListActions/SxListEditAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageSxListActions/SxListNewAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageSxListActions/ViewRefreshAction" "<Primary>r")
+; (gtk_accel_path "<Actions>/mainwin/ActionsForgetWarningsAction" "")
+; (gtk_accel_path "<Actions>/mainwin/ActionsRenamePageAction" "")
+; (gtk_accel_path "<Actions>/mainwin/EditCopyAction" "<Primary>c")
+; (gtk_accel_path "<Actions>/mainwin/EditCutAction" "<Primary>x")
+; (gtk_accel_path "<Actions>/mainwin/EditPasteAction" "<Primary>v")
+; (gtk_accel_path "<Actions>/mainwin/EditPreferencesAction" "")
+; (gtk_accel_path "<Actions>/mainwin/FileCloseAction" "<Primary>w")
+; (gtk_accel_path "<Actions>/mainwin/FileExportAction" "")
+; (gtk_accel_path "<Actions>/mainwin/FileImportAction" "")
+; (gtk_accel_path "<Actions>/mainwin/FilePageSetupAction" "<Primary><Shift>p")
+; (gtk_accel_path "<Actions>/mainwin/FilePrintAction" "<Primary>p")
+; (gtk_accel_path "<Actions>/mainwin/FilePropertiesAction" "<Alt>Return")
+; (gtk_accel_path "<Actions>/mainwin/FileQuitAction" "<Primary>q")
+; (gtk_accel_path "<Actions>/mainwin/HelpAboutAction" "")
+; (gtk_accel_path "<Actions>/mainwin/HelpContentsAction" "F1")
+; (gtk_accel_path "<Actions>/mainwin/HelpTutorialAction" "<Primary>h")
+; (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/ViewToolbarAction" "")
+; (gtk_accel_path "<Actions>/mainwin/WindowAction" "")
+; (gtk_accel_path "<Actions>/mainwin/WindowMovePageAction" "")
+; (gtk_accel_path "<Actions>/mainwin/WindowNewAction" "")
+; (gtk_accel_path "<Actions>/recwin/AccountCheckRepairAction" "")
+; (gtk_accel_path "<Actions>/recwin/AccountEditAccountAction" "")
+; (gtk_accel_path "<Actions>/recwin/AccountOpenAccountAction" "")
+; (gtk_accel_path "<Actions>/recwin/AccountTransferAction" "")
+; (gtk_accel_path "<Actions>/recwin/HelpHelpAction" "")
+; (gtk_accel_path "<Actions>/recwin/RecnCancelAction" "")
+; (gtk_accel_path "<Actions>/recwin/RecnChangeInfoAction" "")
+; (gtk_accel_path "<Actions>/recwin/RecnFinishAction" "<Primary>w")
+; (gtk_accel_path "<Actions>/recwin/RecnPostponeAction" "<Primary>p")
+; (gtk_accel_path "<Actions>/recwin/TransBalanceAction" "<Primary>b")
+; (gtk_accel_path "<Actions>/recwin/TransDeleteAction" "<Primary>d")
+; (gtk_accel_path "<Actions>/recwin/TransEditAction" "<Primary>e")
+; (gtk_accel_path "<Actions>/recwin/TransRecAction" "<Primary>r")
+; (gtk_accel_path "<Actions>/recwin/TransUnRecAction" "<Primary>u")
diff --git a/gnucash/ui/accelerator-map-osx b/gnucash/ui/accelerator-map-osx
new file mode 100644
index 0000000000..9a0b955983
--- /dev/null
+++ b/gnucash/ui/accelerator-map-osx
@@ -0,0 +1,243 @@
+; gnucash GtkAccelMap rc-file -*- scheme -*-
+; this file is an automated accelerator map dump
+;
+; (gtk_accel_path "<Actions>/gnc-plugin-account-tree-actions/ViewAccountTreeAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-aqbanking-actions/ABGetBalanceAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-aqbanking-actions/ABGetTransAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-aqbanking-actions/ABIssueIntTransAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-aqbanking-actions/ABIssueSepaDirectDebitAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-aqbanking-actions/ABIssueSepaIntTransAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-aqbanking-actions/ABIssueSepaTransAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-aqbanking-actions/ABSetupAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-aqbanking-actions/ABViewLogwindowAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-aqbanking-actions/AQBankingImportAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-aqbanking-actions/OnlineActionsAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/ActionsMortgageLoanAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/ActionsScheduledTransactionEditorAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/ActionsScheduledTransactionsAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/ActionsSinceLastRunAction" "")
+ (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/EditFindTransactionsAction" "<Meta>f")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/EditTaxOptionsAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/FileExportAccountsAction" "")
+ (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/FileNewAction" "<Meta>n")
+ (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/FileOpenAction" "<Meta>o")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/FileRevertAction" "")
+ (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/FileSaveAction" "<Meta>s")
+ (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/FileSaveAsAction" "<Shift><Meta>s")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/HelpTipsOfTheDayAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/ToolsBookCloseAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/ToolsCommodityEditorAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/ToolsFinancialCalculatorAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/ToolsImapEditorAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/ToolsPriceEditorAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-basic-commands-actions/ToolsTransLinkedDocsAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-bi-import-actions/bi_importAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-budget-actions/ActionsBudgetAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-budget-actions/CopyBudgetAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-budget-actions/DeleteBudgetAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-budget-actions/NewBudgetAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-budget-actions/OpenBudgetAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/BillingTermsOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/BillsDueReminderOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/BusinessLinkedDocsAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/BusinessTestAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/BusinessTestInitDataAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/BusinessTestSearchAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/CustomerFindCustomerOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/CustomerFindInvoiceOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/CustomerFindJobOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/CustomerMenuAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/CustomerNewCustomerOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/CustomerNewInvoiceOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/CustomerNewJobOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/CustomerOverviewPageAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/CustomerProcessPaymentAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/EmployeeFindEmployeeOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/EmployeeFindExpenseVoucherOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/EmployeeMenuAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/EmployeeNewEmployeeOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/EmployeeNewExpenseVoucherOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/EmployeeOverviewPageAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/EmployeeProcessPaymentAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/InvoicesDueReminderOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/RegisterAssignPayment" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/RegisterEditPayment" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/TaxTablesOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/VendorFindBillOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/VendorFindJobOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/VendorFindVendorOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/VendorMenuAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/VendorNewBillOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/VendorNewJobOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/VendorNewVendorOpenAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/VendorOverviewPageAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-business-actions/VendorProcessPaymentAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-csv-export-actions/CsvExportRegisterAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-csv-export-actions/CsvExportTransAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-csv-export-actions/CsvExportTreeAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-csv-import-actions/CsvImportAccountAction" "")
+; (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-log-replay-actions/LogReplayAction" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-menu-additions-actions/AdditionsAction" "")
+; (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" "")
+; (gtk_accel_path "<Actions>/gnc-plugin-report-system-actions/EditStyleSheetsAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/ActionsAutoClearAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/ActionsLotsAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/ActionsReconcileAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/ActionsStockAssistantAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/ActionsStockSplitAction" "")
+ (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/ActionsTransferAction" "<Meta>t")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/EditCascadeAccountAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/EditDeleteAccountAction" "Delete")
+ (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/EditEditAccountAction" "<Meta>e")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/EditFindAccountAction" "<Primary>i")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/EditOpenAccountAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/EditOpenSubaccountsAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/EditRenumberSubaccountsAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/EditTaxOptionsAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/FileAddAccountHierarchyAssistantAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/FileNewAccountAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/ScrubAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/ScrubAllAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/ScrubSubAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/ViewFilterByAction" "")
+ (gtk_accel_path "<Actions>/GncPluginPageAccountTreeActions/ViewRefreshAction" "<Meta>r")
+; (gtk_accel_path "<Actions>/GncPluginPageBudgetActions/AllPeriodsBudgetAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageBudgetActions/BudgetNoteAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageBudgetActions/BudgetReportAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageBudgetActions/DeleteBudgetAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageBudgetActions/EditTaxOptionsAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageBudgetActions/EstimateBudgetAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageBudgetActions/OptionsBudgetAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageBudgetActions/ViewFilterByAction" "")
+ (gtk_accel_path "<Actions>/GncPluginPageBudgetActions/ViewRefreshAction" "<Meta>r")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/BlankEntryAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/BusinessLinkAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/BusinessLinkOpenAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/CancelEntryAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/DeleteEntryAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/DuplicateEntryAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/EditDuplicateInvoiceAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/EditEditInvoiceAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/EditPostInvoiceAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/EditUnpostInvoiceAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/EntryDownAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/EntryUpAction" "")
+ (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/FilePrintAction" "<Meta>p")
+; (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/ToolsProcessPaymentAction" "")
+ (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/ViewRefreshAction" "<Meta>r")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/ViewResetLayoutAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageInvoiceActions/ViewSaveLayoutAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageOwnerTreeActions/EditTaxOptionsAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageOwnerTreeActions/OTCustomerListingReportAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageOwnerTreeActions/OTCustomerReportAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageOwnerTreeActions/OTEditCustomerAction" "<Primary>e")
+; (gtk_accel_path "<Actions>/GncPluginPageOwnerTreeActions/OTEditEmployeeAction" "<Primary>e")
+; (gtk_accel_path "<Actions>/GncPluginPageOwnerTreeActions/OTEditVendorAction" "<Primary>e")
+; (gtk_accel_path "<Actions>/GncPluginPageOwnerTreeActions/OTEmployeeReportAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageOwnerTreeActions/OTNewCustomerAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageOwnerTreeActions/OTNewEmployeeAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageOwnerTreeActions/OTNewVendorAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageOwnerTreeActions/OTVendorListingReportAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageOwnerTreeActions/OTVendorReportAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageOwnerTreeActions/ViewFilterByAction" "")
+ (gtk_accel_path "<Actions>/GncPluginPageOwnerTreeActions/ViewRefreshAction" "<Meta>r")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ActionsAutoClearAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ActionsLotsAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ActionsReconcileAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ActionsStockAssistantAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ActionsStockSplitAction" "")
+ (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ActionsTransferAction" "<Meta>t")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/BlankTransactionAction" "<Primary>b")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/CancelTransactionAction" "")
+ (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/CopyTransactionAction" "<Control><Meta>c")
+ (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/CutTransactionAction" "<Control><Meta>x")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/DeleteTransactionAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/DuplicateTransactionAction" "")
+ (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/EditCopyAction" "<Meta>c")
+ (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/EditCutAction" "<Meta>x")
+ (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/EditPasteAction" "<Meta>v")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/EditTaxOptionsAction" "")
+ (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/FilePrintAction" "<Meta>p")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/GotoDateAction" "<Primary>g")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/JumpLinkedInvoiceAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/JumpTransactionAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/LinkedTransactionOpenAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/LinkTransactionAction" "")
+ (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/PasteTransactionAction" "<Control><Meta>v")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/RecordTransactionAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/RemoveTransactionSplitsAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ReportsAccountReportAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ReportsAcctTransReportAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ReverseTransactionAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ScheduleTransactionAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ScrubAllAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ScrubCurrentAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/SplitTransactionAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/UnvoidTransactionAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageRegisterActions/ViewFilterByAction" "")
+ (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/VoidTransactionAction" "")
+ (gtk_accel_path "<Actions>/GncPluginPageReportActions/FilePrintAction" "<Meta>p")
+; (gtk_accel_path "<Actions>/GncPluginPageReportActions/FilePrintPDFAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageReportActions/ReportExportAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageReportActions/ReportOptionsAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageReportActions/ReportSaveAction" "<Primary><Alt>s")
+; (gtk_accel_path "<Actions>/GncPluginPageReportActions/ReportSaveAsAction" "<Primary><Alt><Shift>s")
+; (gtk_accel_path "<Actions>/GncPluginPageSxListActions/EditTaxOptionsAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageSxListActions/SxListDeleteAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageSxListActions/SxListEditAction" "")
+; (gtk_accel_path "<Actions>/GncPluginPageSxListActions/SxListNewAction" "")
+ (gtk_accel_path "<Actions>/GncPluginPageSxListActions/ViewRefreshAction" "<Meta>r")
+; (gtk_accel_path "<Actions>/mainwin/ActionsForgetWarningsAction" "")
+; (gtk_accel_path "<Actions>/mainwin/ActionsRenamePageAction" "")
+ (gtk_accel_path "<Actions>/mainwin/EditCopyAction" "<Meta>c")
+ (gtk_accel_path "<Actions>/mainwin/EditCutAction" "<Meta>x")
+ (gtk_accel_path "<Actions>/mainwin/EditPasteAction" "<Meta>v")
+; (gtk_accel_path "<Actions>/mainwin/EditPreferencesAction" "")
+ (gtk_accel_path "<Actions>/mainwin/FileCloseAction" "<Meta>w")
+; (gtk_accel_path "<Actions>/mainwin/FileExportAction" "")
+; (gtk_accel_path "<Actions>/mainwin/FileImportAction" "")
+ (gtk_accel_path "<Actions>/mainwin/FilePageSetupAction" "<Shift><Meta>p")
+ (gtk_accel_path "<Actions>/mainwin/FilePrintAction" "<Meta>p")
+; (gtk_accel_path "<Actions>/mainwin/FilePropertiesAction" "<Alt>Return")
+ (gtk_accel_path "<Actions>/mainwin/FileQuitAction" "<Meta>q")
+; (gtk_accel_path "<Actions>/mainwin/HelpAboutAction" "")
+; (gtk_accel_path "<Actions>/mainwin/HelpContentsAction" "F1")
+ (gtk_accel_path "<Actions>/mainwin/HelpTutorialAction" "<Control><Meta>h")
+; (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/ViewToolbarAction" "")
+; (gtk_accel_path "<Actions>/mainwin/WindowAction" "")
+; (gtk_accel_path "<Actions>/mainwin/WindowMovePageAction" "")
+; (gtk_accel_path "<Actions>/mainwin/WindowNewAction" "")
+; (gtk_accel_path "<Actions>/recwin/AccountCheckRepairAction" "")
+; (gtk_accel_path "<Actions>/recwin/AccountEditAccountAction" "")
+; (gtk_accel_path "<Actions>/recwin/AccountOpenAccountAction" "")
+; (gtk_accel_path "<Actions>/recwin/AccountTransferAction" "")
+; (gtk_accel_path "<Actions>/recwin/HelpHelpAction" "")
+; (gtk_accel_path "<Actions>/recwin/RecnCancelAction" "")
+; (gtk_accel_path "<Actions>/recwin/RecnChangeInfoAction" "")
+; (gtk_accel_path "<Actions>/recwin/RecnFinishAction" "<Primary>w")
+; (gtk_accel_path "<Actions>/recwin/RecnPostponeAction" "<Primary>p")
+; (gtk_accel_path "<Actions>/recwin/TransBalanceAction" "<Primary>b")
+; (gtk_accel_path "<Actions>/recwin/TransDeleteAction" "<Primary>d")
+; (gtk_accel_path "<Actions>/recwin/TransEditAction" "<Primary>e")
+; (gtk_accel_path "<Actions>/recwin/TransRecAction" "<Primary>r")
+; (gtk_accel_path "<Actions>/recwin/TransUnRecAction" "<Primary>u")
commit cc5029bb4d1964baea9784900e8e0ab94dc892ba
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Fri Mar 10 11:42:35 2023 +0000
Disable saving the gtk_accel_map
It seems that it only saves the loaded map entries and if the original
accelelerator-map file has commented out entries they are lost.
diff --git a/gnucash/gnome-utils/gnc-gnome-utils.c b/gnucash/gnome-utils/gnc-gnome-utils.c
index 2cf7829cbd..6da3f03ab0 100644
--- a/gnucash/gnome-utils/gnc-gnome-utils.c
+++ b/gnucash/gnome-utils/gnc-gnome-utils.c
@@ -718,14 +718,14 @@ gnc_gui_destroy (void)
static void
gnc_gui_shutdown (void)
{
- gchar *map;
+// gchar *map;
if (gnome_is_running && !gnome_is_terminating)
{
gnome_is_terminating = TRUE;
- map = gnc_build_userdata_path(ACCEL_MAP_NAME);
- gtk_accel_map_save(map);
- g_free(map);
+// map = gnc_build_userdata_path(ACCEL_MAP_NAME);
+// gtk_accel_map_save(map);
+// g_free(map);
gnc_component_manager_shutdown ();
gtk_main_quit();
}
commit 6a3013046f808b9636fa369bb668bbd6876e881f
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Fri Mar 10 11:36:17 2023 +0000
Change gnc_add_accelerator_keys_for_menu
To allow the menu short cuts to be changed by the use of an
accelerator-map file, this function adds scanning the gtk accelerator
map and if any changes are found updates the GMenuModel, GMenuItem
diff --git a/gnucash/gnome-utils/gnc-embedded-window.c b/gnucash/gnome-utils/gnc-embedded-window.c
index 644f07f1db..a6e1c7769f 100644
--- a/gnucash/gnome-utils/gnc-embedded-window.c
+++ b/gnucash/gnome-utils/gnc-embedded-window.c
@@ -382,7 +382,7 @@ gnc_embedded_window_new (const gchar *action_group_name,
// 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), accel_group);
+ gnc_add_accelerator_keys_for_menu (GTK_WIDGET(priv->menubar), priv->menubar_model, accel_group);
g_free (ui_fullname);
LEAVE("window %p", window);
diff --git a/gnucash/gnome-utils/gnc-gtk-utils.c b/gnucash/gnome-utils/gnc-gtk-utils.c
index f71fc205f0..6d8f804b33 100644
--- a/gnucash/gnome-utils/gnc-gtk-utils.c
+++ b/gnucash/gnome-utils/gnc-gtk-utils.c
@@ -360,6 +360,28 @@ gnc_disable_all_actions_in_group (GSimpleActionGroup *action_group)
}
+static void
+accel_map_foreach_func (gpointer user_data, const gchar* accel_path, guint accel_key,
+ GdkModifierType accel_mods, gboolean changed)
+{
+ GMenuModel *menu_model = user_data;
+ gchar **accel_path_parts = NULL;
+ guint accel_size = 0;
+ 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)
+ gnc_menubar_model_update_item (menu_model, accel_path_parts[2],
+ NULL, accel_name, NULL);
+
+ g_strfreev (accel_path_parts);
+ g_free (accel_name_tmp);
+ g_free (accel_name);
+}
+
static void
add_accel_for_menu_lookup (GtkWidget *widget, gpointer user_data)
{
@@ -396,14 +418,20 @@ add_accel_for_menu_lookup (GtkWidget *widget, gpointer user_data)
*
* @param menu The menu widget.
*
+ * @param model The menu bar model.
+ *
* @param accel_group The accelerator group to use.
*/
void
-gnc_add_accelerator_keys_for_menu (GtkWidget *menu, GtkAccelGroup *accel_group)
+gnc_add_accelerator_keys_for_menu (GtkWidget *menu, GMenuModel *model, GtkAccelGroup *accel_group)
{
g_return_if_fail (GTK_IS_WIDGET(menu));
+ g_return_if_fail (model != NULL);
g_return_if_fail (accel_group != NULL);
+ // this updates the menu accelerators based on accelerator-map
+ gtk_accel_map_foreach (model, (GtkAccelMapForeach)accel_map_foreach_func);
+
gtk_container_foreach (GTK_CONTAINER(menu), add_accel_for_menu_lookup, accel_group);
}
diff --git a/gnucash/gnome-utils/gnc-gtk-utils.h b/gnucash/gnome-utils/gnc-gtk-utils.h
index e7309f4b05..78e5bfc2b8 100644
--- a/gnucash/gnome-utils/gnc-gtk-utils.h
+++ b/gnucash/gnome-utils/gnc-gtk-utils.h
@@ -65,7 +65,7 @@ GtkWidget *gnc_get_dialog_widget_from_id (GtkDialog *dialog, const gchar *id);
void gnc_disable_all_actions_in_group (GSimpleActionGroup *action_group);
-void gnc_add_accelerator_keys_for_menu (GtkWidget *menu, GtkAccelGroup *accel_group);
+void gnc_add_accelerator_keys_for_menu (GtkWidget *menu, GMenuModel *model, GtkAccelGroup *accel_group);
GtkWidget *gnc_find_menu_item_by_action_name (GtkWidget *menu, const gchar *action_name);
GtkWidget *gnc_find_menu_item_by_action_label (GtkWidget *menu, const gchar *action_label);
diff --git a/gnucash/gnome-utils/gnc-main-window.cpp b/gnucash/gnome-utils/gnc-main-window.cpp
index b1711450e1..18c18d9edf 100644
--- a/gnucash/gnome-utils/gnc-main-window.cpp
+++ b/gnucash/gnome-utils/gnc-main-window.cpp
@@ -723,7 +723,7 @@ gnc_main_window_restore_window (GncMainWindow *window, GncMainWindowSaveData *da
priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
// need to add the accelerator keys
- gnc_add_accelerator_keys_for_menu (GTK_WIDGET(priv->menubar), priv->accel_group);
+ gnc_add_accelerator_keys_for_menu (GTK_WIDGET(priv->menubar), priv->menubar_model, priv->accel_group);
/* Common view menu items */
action = gnc_main_window_find_action (window, "ViewToolbarAction");
@@ -3619,7 +3619,7 @@ gnc_main_window_menu_add_accelerator_keys (GncMainWindow *window)
priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- gnc_add_accelerator_keys_for_menu (priv->menubar, priv->accel_group);
+ gnc_add_accelerator_keys_for_menu (priv->menubar, priv->menubar_model, priv->accel_group);
}
@@ -3834,7 +3834,7 @@ gnc_main_window_update_menu_and_toolbar (GncMainWindow *window,
gnc_plugin_add_menu_tooltip_callbacks (priv->menubar, priv->menubar_model, priv->statusbar);
// need to add the accelerator keys
- gnc_add_accelerator_keys_for_menu (priv->menubar, priv->accel_group);
+ gnc_add_accelerator_keys_for_menu (priv->menubar, priv->menubar_model, priv->accel_group);
#ifdef MAC_INTEGRATION
gtkosx_application_sync_menubar (theApp);
g_object_unref (theApp);
@@ -4059,7 +4059,7 @@ main_window_realize_cb (GtkWidget *widget, gpointer user_data)
GncMainWindow *window = (GncMainWindow*)user_data;
GncMainWindowPrivate *priv = GNC_MAIN_WINDOW_GET_PRIVATE(window);
- gnc_add_accelerator_keys_for_menu (GTK_WIDGET(priv->menubar), priv->accel_group);
+ gnc_add_accelerator_keys_for_menu (GTK_WIDGET(priv->menubar), priv->menubar_model, priv->accel_group);
/* need to signal menu has been changed, this will call the
business function 'bind_extra_toolbuttons_visibility' */
diff --git a/gnucash/gnome/window-reconcile.c b/gnucash/gnome/window-reconcile.c
index 691730955e..fd17025778 100644
--- a/gnucash/gnome/window-reconcile.c
+++ b/gnucash/gnome/window-reconcile.c
@@ -1897,7 +1897,7 @@ recnWindowWithBalance (GtkWidget *parent, Account *account, gnc_numeric new_endi
gtk_window_add_accel_group (GTK_WINDOW(recnData->window), accel_group);
// need to add the accelerator keys
- gnc_add_accelerator_keys_for_menu (menu_bar, accel_group);
+ gnc_add_accelerator_keys_for_menu (menu_bar, menu_model, accel_group);
#ifdef MAC_INTEGRATION
gtkosx_application_sync_menubar (theApp);
commit e8b0d4dd874164fd129c81394ad79b998e6038fd
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Fri Mar 10 11:33:33 2023 +0000
Change gnc_menubar_model_update_item to also update accelerator keys
diff --git a/gnucash/gnome-utils/gnc-gtk-utils.c b/gnucash/gnome-utils/gnc-gtk-utils.c
index d9bed92799..f71fc205f0 100644
--- a/gnucash/gnome-utils/gnc-gtk-utils.c
+++ b/gnucash/gnome-utils/gnc-gtk-utils.c
@@ -749,20 +749,22 @@ gnc_menubar_model_find_menu_item (GMenuModel *menu_model, GtkWidget *menu, const
*
* @param label The new menu label text.
*
+ * @param accel_name The accelerator string
+ *
* @param tooltip The new tooltip text if any.
*
* @return TRUE if item found and updated or FALSE if not.
*/
gboolean
gnc_menubar_model_update_item (GMenuModel *menu_model, const gchar *action_name,
- const gchar *label, const gchar *tooltip)
+ const gchar *label, const gchar *accel_name,
+ const gchar *tooltip)
{
GncMenuModelSearch *gsm;
gboolean found = FALSE;
g_return_val_if_fail (menu_model != NULL, FALSE);
g_return_val_if_fail (action_name != NULL, FALSE);
- g_return_val_if_fail (label != NULL, FALSE);
gsm = g_new0 (GncMenuModelSearch, 1);
@@ -778,7 +780,7 @@ gnc_menubar_model_update_item (GMenuModel *menu_model, const gchar *action_name,
const gchar *old_action = NULL;
const gchar *old_temp = NULL;
const gchar *old_accel = NULL;
- GMenuItem *item;
+ const gchar *old_tooltip = NULL;
iter = g_menu_model_iterate_item_attributes (gsm->model, gsm->index);
while (g_menu_attribute_iter_get_next (iter, &key, &value))
@@ -792,31 +794,61 @@ gnc_menubar_model_update_item (GMenuModel *menu_model, const gchar *action_name,
else if (g_str_equal (key, GNC_MENU_ATTRIBUTE_ACCELERATOR) &&
g_variant_is_of_type (value, G_VARIANT_TYPE_STRING))
old_accel = g_variant_get_string (value, NULL);
+ else if (g_str_equal (key, GNC_MENU_ATTRIBUTE_TOOLTIP) &&
+ g_variant_is_of_type (value, G_VARIANT_TYPE_STRING))
+ old_tooltip = g_variant_get_string (value, NULL);
else if (g_str_equal (key, G_MENU_ATTRIBUTE_TARGET))
old_target = g_variant_ref (value);
g_variant_unref (value);
}
- item = g_menu_item_new (label, old_action);
+ if (!label && !gsm->search_action_label)
+ {
+ if (old_target)
+ g_variant_unref (old_target);
+
+ g_free (gsm);
+ return found;
+ }
+
+ if ((accel_name && g_strcmp0 (old_accel, accel_name) != 0) ||
+ (tooltip && g_strcmp0 (old_tooltip, tooltip) != 0) ||
+ (label && g_strcmp0 (gsm->search_action_label, label) != 0))
+ {
+ GMenuItem *item = NULL;
- if (tooltip)
- g_menu_item_set_attribute (item, GNC_MENU_ATTRIBUTE_TOOLTIP, "s", tooltip);
+ if (label)
+ item = g_menu_item_new (label, old_action);
+ else
+ item = g_menu_item_new (gsm->search_action_label, old_action);
- if (old_temp)
- g_menu_item_set_attribute (item, GNC_MENU_ATTRIBUTE_TEMPORARY, "s", old_temp);
+ if (tooltip)
+ g_menu_item_set_attribute (item, GNC_MENU_ATTRIBUTE_TOOLTIP, "s", tooltip);
+ else
+ {
+ if (old_tooltip)
+ g_menu_item_set_attribute (item, GNC_MENU_ATTRIBUTE_TOOLTIP, "s", old_tooltip);
+ }
+ if (accel_name)
+ g_menu_item_set_attribute (item, GNC_MENU_ATTRIBUTE_ACCELERATOR, "s", accel_name);
+ else
+ {
+ if (old_accel)
+ g_menu_item_set_attribute (item, GNC_MENU_ATTRIBUTE_ACCELERATOR, "s", old_accel);
+ }
+ if (old_temp)
+ g_menu_item_set_attribute (item, GNC_MENU_ATTRIBUTE_TEMPORARY, "s", old_temp);
- if (old_accel)
- g_menu_item_set_attribute (item, GNC_MENU_ATTRIBUTE_ACCELERATOR, "s", old_accel);
+ if (old_target)
+ g_menu_item_set_attribute_value (item, G_MENU_ATTRIBUTE_TARGET, old_target);
+ g_menu_remove (G_MENU(gsm->model), gsm->index);
+ g_menu_insert_item (G_MENU(gsm->model), gsm->index, item);
+ found = TRUE;
+ }
if (old_target)
- {
- g_menu_item_set_attribute_value (item, G_MENU_ATTRIBUTE_TARGET, old_target);
g_variant_unref (old_target);
- }
- g_menu_remove (G_MENU(gsm->model), gsm->index);
- g_menu_insert_item (G_MENU(gsm->model), gsm->index, item);
- found = TRUE;
}
g_free (gsm);
return found;
diff --git a/gnucash/gnome-utils/gnc-gtk-utils.h b/gnucash/gnome-utils/gnc-gtk-utils.h
index bc77574fdf..e7309f4b05 100644
--- a/gnucash/gnome-utils/gnc-gtk-utils.h
+++ b/gnucash/gnome-utils/gnc-gtk-utils.h
@@ -94,7 +94,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 *tooltip);
+ 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 cde480ebd2..b1711450e1 100644
--- a/gnucash/gnome-utils/gnc-main-window.cpp
+++ b/gnucash/gnome-utils/gnc-main-window.cpp
@@ -3639,7 +3639,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), _(tooltip));
+ _(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 4c83d5fb66..f622817856 100644
--- a/gnucash/gnome/gnc-plugin-page-register.c
+++ b/gnucash/gnome/gnc-plugin-page-register.c
@@ -1057,7 +1057,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), _(*tooltip_iter));
+ *iter, _(*label_iter), NULL, _(*tooltip_iter));
PINFO("split model_item action '%s', found is %d, iter label is '%s'",
*iter, found, _(*label_iter));
@@ -1075,7 +1075,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), _(*tooltip_iter));
+ *iter, _(*label_iter), NULL, _(*tooltip_iter));
PINFO("trans model_item action '%s', found is %d, iter label is '%s'",
*iter, found, _(*label_iter));
commit 0098b047d5fb67df39fda92f578bad358b4d1418
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Wed Mar 8 15:52:03 2023 +0000
Only add the accelerator key to the menu item once
diff --git a/gnucash/gnome-utils/gnc-gtk-utils.c b/gnucash/gnome-utils/gnc-gtk-utils.c
index ef264b0c56..d9bed92799 100644
--- a/gnucash/gnome-utils/gnc-gtk-utils.c
+++ b/gnucash/gnome-utils/gnc-gtk-utils.c
@@ -371,15 +371,20 @@ add_accel_for_menu_lookup (GtkWidget *widget, gpointer user_data)
if (accel_label)
{
+ gboolean added = GPOINTER_TO_INT(g_object_get_data (G_OBJECT(menuItem),
+ "accel-added"));
guint key;
GdkModifierType mods;
gtk_accel_label_get_accel (GTK_ACCEL_LABEL(accel_label), &key, &mods);
- if (key > 0)
+ if (key > 0 && !added)
+ {
+ g_object_set_data (G_OBJECT(menuItem), "accel-added", GINT_TO_POINTER(1));
gtk_widget_add_accelerator (GTK_WIDGET(widget), "activate",
GTK_ACCEL_GROUP(user_data),
key, mods, GTK_ACCEL_VISIBLE);
+ }
}
if (GTK_IS_CONTAINER(subMenu))
gtk_container_foreach (GTK_CONTAINER(subMenu),
commit 85f462feb589839376adbde18c3543eaa9a93fdb
Author: Robert Fewell <14uBobIT at gmail.com>
Date: Tue Mar 7 12:58:27 2023 +0000
On a Mac, some keyboard short cuts are missing
Sync the menu bar after the menus have been updated.
diff --git a/gnucash/gnome-utils/gnc-main-window.cpp b/gnucash/gnome-utils/gnc-main-window.cpp
index a2701328b9..cde480ebd2 100644
--- a/gnucash/gnome-utils/gnc-main-window.cpp
+++ b/gnucash/gnome-utils/gnc-main-window.cpp
@@ -3764,7 +3764,9 @@ gnc_main_window_update_menu_and_toolbar (GncMainWindow *window,
GMenuModel *menu_model_part;
GncMenuModelSearch *gsm = g_new0 (GncMenuModelSearch, 1);
-
+#ifdef MAC_INTEGRATION
+ auto theApp{static_cast<GtkosxApplication *>(g_object_new(GTKOSX_TYPE_APPLICATION, nullptr))};
+#endif
g_return_if_fail (GNC_IS_MAIN_WINDOW(window));
g_return_if_fail (page != nullptr);
g_return_if_fail (ui_updates != nullptr);
@@ -3833,7 +3835,10 @@ gnc_main_window_update_menu_and_toolbar (GncMainWindow *window,
// need to add the accelerator keys
gnc_add_accelerator_keys_for_menu (priv->menubar, priv->accel_group);
-
+#ifdef MAC_INTEGRATION
+ gtkosx_application_sync_menubar (theApp);
+ g_object_unref (theApp);
+#endif
// need to signal menu has been changed
g_signal_emit_by_name (window, "menu_changed", page);
diff --git a/gnucash/gnome/window-reconcile.c b/gnucash/gnome/window-reconcile.c
index b43f4208cb..691730955e 100644
--- a/gnucash/gnome/window-reconcile.c
+++ b/gnucash/gnome/window-reconcile.c
@@ -1778,6 +1778,15 @@ static GActionEntry recWindow_actions_entries [] =
/** The number of actions provided by the reconcile window. */
static guint recnWindow_n_actions_entries = G_N_ELEMENTS(recWindow_actions_entries);
+#ifdef MAC_INTEGRATION
+/* Enable GtkMenuItem accelerators */
+static gboolean
+can_activate_cb(GtkWidget *widget, guint signal_id, gpointer data)
+{
+ //return gtk_widget_is_sensitive (widget);
+ return TRUE;
+}
+#endif
/********************************************************************\
* recnWindowWithBalance
@@ -1849,10 +1858,7 @@ recnWindowWithBalance (GtkWidget *parent, Account *account, gnc_numeric new_endi
GtkAccelGroup *accel_group = gtk_accel_group_new ();
const gchar *ui = GNUCASH_RESOURCE_PREFIX "/gnc-reconcile-window.ui";
GError *error = NULL;
-#ifdef MAC_INTEGRATION
- GtkosxApplication *theApp = g_object_new (GTKOSX_TYPE_APPLICATION,
- NULL);
-#endif
+
recnData->builder = gtk_builder_new ();
gtk_builder_add_from_resource (recnData->builder, ui, &error);
@@ -1871,15 +1877,14 @@ recnWindowWithBalance (GtkWidget *parent, Account *account, gnc_numeric new_endi
menu_model = (GMenuModel *)gtk_builder_get_object (recnData->builder, "recwin-menu");
menu_bar = gtk_menu_bar_new_from_model (menu_model);
gtk_container_add (GTK_CONTAINER(vbox), menu_bar);
-#if MAC_INTEGRATION
+#ifdef MAC_INTEGRATION
+ GtkosxApplication *theApp = g_object_new (GTKOSX_TYPE_APPLICATION, NULL);
gtk_widget_hide (menu_bar);
gtk_widget_set_no_show_all (menu_bar, TRUE);
if (GTK_IS_MENU_ITEM (menu_bar))
menu_bar = gtk_menu_item_get_submenu (GTK_MENU_ITEM (menu_bar));
gtkosx_application_set_menu_bar (theApp, GTK_MENU_SHELL (menu_bar));
- g_object_unref (theApp);
- theApp = NULL;
#endif
tool_bar = (GtkToolbar *)gtk_builder_get_object (recnData->builder, "recwin-toolbar");
@@ -1894,6 +1899,14 @@ recnWindowWithBalance (GtkWidget *parent, Account *account, gnc_numeric new_endi
// need to add the accelerator keys
gnc_add_accelerator_keys_for_menu (menu_bar, accel_group);
+#ifdef MAC_INTEGRATION
+ gtkosx_application_sync_menubar (theApp);
+ g_signal_connect (menu_bar, "can-activate-accel",
+ G_CALLBACK(can_activate_cb), NULL);
+ g_object_unref (theApp);
+ theApp = NULL;
+#endif
+
recnData->simple_action_group = g_simple_action_group_new ();
g_action_map_add_action_entries (G_ACTION_MAP(recnData->simple_action_group),
Summary of changes:
gnucash/gnome-utils/gnc-embedded-window.c | 2 +-
gnucash/gnome-utils/gnc-gnome-utils.c | 37 +++--
gnucash/gnome-utils/gnc-gtk-utils.c | 101 ++++++++++---
gnucash/gnome-utils/gnc-gtk-utils.h | 5 +-
gnucash/gnome-utils/gnc-main-window.cpp | 19 ++-
gnucash/gnome/gnc-plugin-page-register.c | 4 +-
gnucash/gnome/window-reconcile.c | 29 +++-
gnucash/ui/CMakeLists.txt | 4 +-
gnucash/ui/accelerator-map | 243 ++++++++++++++++++++++++++++++
gnucash/ui/accelerator-map-osx | 243 ++++++++++++++++++++++++++++++
10 files changed, 634 insertions(+), 53 deletions(-)
create mode 100644 gnucash/ui/accelerator-map
create mode 100644 gnucash/ui/accelerator-map-osx
More information about the gnucash-changes
mailing list