1 /*************************************************************************** 2 menuenums.h 3 ------------------- 4 copyright : (C) 2017, 2018 by Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com> 5 6 ***************************************************************************/ 7 8 /*************************************************************************** 9 * * 10 * This program is free software; you can redistribute it and/or modify * 11 * it under the terms of the GNU General Public License as published by * 12 * the Free Software Foundation; either version 2 of the License, or * 13 * (at your option) any later version. * 14 * * 15 ***************************************************************************/ 16 17 #ifndef MENUENUMS_H 18 #define MENUENUMS_H 19 20 #include "kmm_menus_export.h" 21 #include <QHashFunctions> 22 #include <QHash> 23 24 class QAction; 25 class QMenu; 26 27 namespace eMenu { 28 enum class Action { 29 // ************* 30 // The File menu 31 // ************* 32 FileOpenDatabase, FileSaveAsDatabase, FileBackup, 33 FileImportStatement, 34 FileImportTemplate, FileExportTemplate, 35 Print, 36 #ifdef KMM_DEBUG 37 FileDump, 38 #endif 39 FilePersonalData, FileInformation, 40 // ************* 41 // The edit menu 42 // ************* 43 EditFindTransaction, 44 // ************* 45 // The view menu 46 // ************* 47 ViewTransactionDetail, ViewHideReconciled, 48 ViewHideCategories, ViewShowAll, 49 // ************* 50 // The institution menu 51 // ************* 52 NewInstitution, EditInstitution, 53 DeleteInstitution, 54 55 // ************* 56 // The account menu 57 // ************* 58 NewAccount, EditAccount, DeleteAccount, 59 OpenAccount, CloseAccount, ReopenAccount, 60 StartReconciliation, FinishReconciliation, 61 PostponeReconciliation, 62 ReportAccountTransactions, ChartAccountBalance, 63 UpdateAccountMenu, UpdateAccount, UpdateAllAccounts, 64 MapOnlineAccount, UnmapOnlineAccount, 65 AccountCreditTransfer, 66 // ************* 67 // The category menu 68 // ************* 69 NewCategory, EditCategory, DeleteCategory, 70 // ************* 71 // The transaction menu 72 // ************* 73 NewTransaction, EditTransaction, DeleteTransaction, 74 EnterTransaction, CancelTransaction, 75 DuplicateTransaction, AddReversingTransaction, 76 MatchTransaction, AcceptTransaction, 77 EditSplits, CopySplits, 78 ToggleReconciliationFlag, MarkCleared, 79 MarkReconciled, MarkNotReconciled, 80 SelectAllTransactions, 81 GoToAccount, GoToPayee, 82 NewScheduledTransaction, AssignTransactionsNumber, 83 CombineTransactions, 84 // ************* 85 // The tools menu 86 // ************* 87 ToolCurrencies, 88 ToolPrices, ToolUpdatePrices, 89 ToolConsistency, ToolPerformance, 90 ToolSQL, ToolCalculator, 91 // ************* 92 // The help menu 93 // ************* 94 SettingsAllMessages, 95 HelpShow, 96 // ************* 97 // The investment menu 98 // ************* 99 NewInvestment, EditInvestment, DeleteInvestment, 100 UpdatePriceOnline, UpdatePriceManually, 101 // ************* 102 // The schedule menu 103 // ************* 104 NewSchedule, EditSchedule, 105 DeleteSchedule, DuplicateSchedule, 106 EnterSchedule, SkipSchedule, 107 // ************* 108 // The payee menu 109 // ************* 110 NewPayee, RenamePayee, DeletePayee, 111 MergePayee, 112 // ************* 113 // The tag menu 114 // ************* 115 NewTag, RenameTag, DeleteTag, 116 // ************* 117 // The budget menu 118 // ************* 119 NewBudget, RenameBudget, DeleteBudget, 120 CopyBudget, ChangeBudgetYear, BudgetForecast, 121 // ************* 122 // The show actions 123 // ************* 124 ShowHomeView, ShowInstitutionsView, ShowAccountsView, 125 ShowSchedulesView, ShowCategoriesView, ShowTagsView, 126 ShowPayeesView, ShowLedgersView, ShowInvestmentsView, 127 ShowReportsView, ShowBudgetView, ShowForecastView, 128 ShowOnlineJobOutboxView, 129 // ************* 130 // The misc actions 131 // ************* 132 #ifdef KMM_DEBUG 133 WizardNewUser, DebugTraces, 134 #endif 135 DebugTimers, 136 DeleteOnlineJob, EditOnlineJob, LogOnlineJob 137 }; 138 qHash(const Action key,uint seed)139 inline uint qHash(const Action key, uint seed) { return ::qHash(static_cast<uint>(key), seed); } 140 141 enum class Menu { 142 Institution, 143 Account, 144 Schedule, 145 Category, 146 Tag, 147 Payee, 148 Investment, 149 Transaction, 150 MoveTransaction, 151 MarkTransaction, 152 MarkTransactionContext, 153 OnlineJob 154 }; 155 qHash(const Menu key,uint seed)156 inline uint qHash(const Menu key, uint seed) { return ::qHash(static_cast<uint>(key), seed); } 157 } 158 159 KMM_MENUS_EXPORT extern QHash<eMenu::Action, QAction *> pActions; 160 KMM_MENUS_EXPORT extern QHash<eMenu::Menu, QMenu *> pMenus; 161 162 #endif 163