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