File indexing completed on 2024-05-12 16:42:16
0001 /* 0002 SPDX-FileCopyrightText: 2017, 2018 Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com> 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 #ifndef MENUENUMS_H 0007 #define MENUENUMS_H 0008 0009 #include "kmm_menus_export.h" 0010 #include <QHashFunctions> 0011 #include <QHash> 0012 0013 class QAction; 0014 class QMenu; 0015 0016 namespace eMenu { 0017 // clang-format off 0018 enum class Action { 0019 // ************* 0020 // The File menu 0021 // ************* 0022 FileOpenDatabase, FileSaveAsDatabase, FileBackup, 0023 FileImportStatement, 0024 FileImportTemplate, FileExportTemplate, 0025 Print, 0026 #ifdef KMM_DEBUG 0027 FileDump, 0028 #endif 0029 FilePersonalData, FileInformation, 0030 // ************* 0031 // The edit menu 0032 // ************* 0033 EditFindTransaction, 0034 // ************* 0035 // The view menu 0036 // ************* 0037 ViewTransactionDetail, ViewHideReconciled, ViewShowReconciledBalances, 0038 ViewHideCategories, ViewShowAll, 0039 // ************* 0040 // The institution menu 0041 // ************* 0042 NewInstitution, EditInstitution, 0043 DeleteInstitution, 0044 0045 // ************* 0046 // The account menu 0047 // ************* 0048 NewAccount, EditAccount, DeleteAccount, 0049 OpenAccount, CloseAccount, ReopenAccount, 0050 StartReconciliation, FinishReconciliation, 0051 PostponeReconciliation, 0052 ReportAccountTransactions, ChartAccountBalance, 0053 UpdateAccountMenu, UpdateAccount, UpdateAllAccounts, 0054 MapOnlineAccount, UnmapOnlineAccount, 0055 AccountCreditTransfer, 0056 // ************* 0057 // The category menu 0058 // ************* 0059 NewCategory, EditCategory, DeleteCategory, 0060 // ************* 0061 // The transaction menu 0062 // ************* 0063 NewTransaction, EditTransaction, DeleteTransaction, 0064 EnterTransaction, CancelTransaction, 0065 DuplicateTransaction, AddReversingTransaction, 0066 MatchTransaction, AcceptTransaction, 0067 EditSplits, CopySplits, 0068 ToggleReconciliationFlag, MarkCleared, 0069 MarkReconciled, MarkNotReconciled, 0070 SelectAllTransactions, 0071 GoToAccount, GoToPayee, 0072 NewScheduledTransaction, AssignTransactionsNumber, 0073 CombineTransactions, 0074 // ************* 0075 // The tools menu 0076 // ************* 0077 ToolCurrencies, 0078 ToolPrices, ToolUpdatePrices, 0079 ToolConsistency, ToolPerformance, 0080 ToolSQL, ToolCalculator, 0081 // ************* 0082 // The help menu 0083 // ************* 0084 SettingsAllMessages, 0085 HelpShow, 0086 // ************* 0087 // The investment menu 0088 // ************* 0089 NewInvestment, EditInvestment, DeleteInvestment, 0090 UpdatePriceOnline, UpdatePriceManually, 0091 // ************* 0092 // The schedule menu 0093 // ************* 0094 NewSchedule, EditSchedule, 0095 DeleteSchedule, DuplicateSchedule, 0096 EnterSchedule, SkipSchedule, 0097 // ************* 0098 // The payee menu 0099 // ************* 0100 NewPayee, RenamePayee, DeletePayee, 0101 MergePayee, 0102 // ************* 0103 // The tag menu 0104 // ************* 0105 NewTag, RenameTag, DeleteTag, 0106 // ************* 0107 // The budget menu 0108 // ************* 0109 NewBudget, RenameBudget, DeleteBudget, 0110 CopyBudget, ChangeBudgetYear, BudgetForecast, 0111 // ************* 0112 // The show actions 0113 // ************* 0114 ShowHomeView, ShowInstitutionsView, ShowAccountsView, 0115 ShowSchedulesView, ShowCategoriesView, ShowTagsView, 0116 ShowPayeesView, ShowLedgersView, ShowInvestmentsView, 0117 ShowReportsView, ShowBudgetView, ShowForecastView, 0118 ShowOnlineJobOutboxView, 0119 // ************* 0120 // The misc actions 0121 // ************* 0122 #ifdef KMM_DEBUG 0123 WizardNewUser, DebugTraces, 0124 #endif 0125 DebugTimers, 0126 DeleteOnlineJob, EditOnlineJob, LogOnlineJob, 0127 }; 0128 // clang-format on 0129 0130 inline uint qHash(const Action key, uint seed) { 0131 return ::qHash(static_cast<uint>(key), seed); 0132 } 0133 0134 enum class Menu { 0135 Institution, 0136 Account, 0137 Schedule, 0138 Category, 0139 Tag, 0140 Payee, 0141 Investment, 0142 Transaction, 0143 MoveTransaction, 0144 MarkTransaction, 0145 MarkTransactionContext, 0146 OnlineJob, 0147 }; 0148 0149 inline uint qHash(const Menu key, uint seed) { 0150 return ::qHash(static_cast<uint>(key), seed); 0151 } 0152 } 0153 0154 KMM_MENUS_EXPORT extern QHash<eMenu::Action, QAction *> pActions; 0155 KMM_MENUS_EXPORT extern QHash<eMenu::Menu, QMenu *> pMenus; 0156 0157 #endif