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