WSF
ActionManager.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2018 Infoscitex, a DCS Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef ACTIONMANAGER_HPP
13#define ACTIONMANAGER_HPP
14
15#include <memory>
16
17#include <QObject>
18
19#include "UtCallbackHolder.hpp"
20#include "ViExport.hpp"
21
22class QAction;
23class QMenu;
24class QString;
25class UtTextDocumentRange;
26
27namespace wkf
28{
29class Action;
30}
31
32namespace wizard
33{
34class ContextDocumentationControl;
35class Editor;
36class FindInFilesDialog;
37class FindResultsControl;
38class RenameFileDialog;
39class ReplaceInFilesDialog;
40class TextSource;
41
42class VI_EXPORT ActionManager : public QObject
43{
44public:
46 ~ActionManager() override;
47
48 void BuildUpProjectContextMenu(QMenu& aMenu);
49 void BuildUpTitleBarMenu(QMenu& aMenu, Editor* aEditorPtr);
50 void AppendEditActions(QMenu* aMenuPtr);
51 void BuildUpTextSourceContextMenu(QMenu& aMenu, TextSource* aSource, int aMainFile);
52
53 void UpdateFocusActions();
54 void NewProject();
55
56private:
57 void BuildUpEditMenu();
58 void BuildUpFileMenu();
59 void BuildUpViewMenu();
60 void BuildUpProjectMenu();
61 void BuildUpHelpMenu();
62
63 enum MenuPlace
64 {
65 cFRONT,
66 cBACK
67 };
68 void AddActions(QMenu* aMenu, QList<QAction*> aActions, MenuPlace aPlace, bool aPostSeparator);
69 void UpdateActions();
70
71 void AddDirectory();
72 void Autocomplete();
73 void ChangeHistory();
74 void CloseProject();
75 void CommentSelection();
76 void CommentToggle();
77 void Copy();
78 void CloseAll();
79 void CloseAllBut(Editor* aEditor);
80 void CloseAllButStartup();
81 void CloseAllButIncluded();
82 void CloseAllTabsLeft(Editor* aEditor);
83 void CloseAllTabsRight(Editor* aEditor);
84 void CloseCurrentTab();
85 void CloseInactive();
86 void Cut();
87 void DeleteCurrentLine();
88 void ExportProject();
89 void Find();
90 void FindInFiles();
91 void FindNext();
92 void FindPrevious();
93 void FindReferences();
94 void FormatSelection();
95 void GoToDefinition();
96 void GoToLine();
97 void MoveTabBackward();
98 void MoveTabForward();
99 void NewFile();
100 void OpenCommandDocumentation(TextSource* aSourcePtr, UtTextDocumentRange aRange);
101 void OpenFile();
102 void OpenProjectStartup();
103 void Paste();
104 void PrintCurrentFile();
105 void ProjectSettings();
106 void Redo();
107 void Rename(Editor* aEditorPtr);
108 void Rename(TextSource* aSourcePtr);
109 void Reparse();
110 void Replace();
111 void SaveProject();
112 void SaveCurrent();
113 void SaveAll();
114 void SaveCurrentAs();
115 void SelectAll();
116 void ShowCommandDocumentation();
117 void UncommentSelection();
118 void Undo();
119
120 wkf::Action* mCloseProject;
121 wkf::Action* mSaveProject;
122 wkf::Action* mExportProject;
123
124 wkf::Action* mFileSave;
125 wkf::Action* mFileSaveAs;
126 wkf::Action* mFileSaveAll;
127 wkf::Action* mFilePrint;
128
129 wkf::Action* mGoToDefinition;
130 wkf::Action* mFindReferences;
131 wkf::Action* mUndo;
132 wkf::Action* mRedo;
133 wkf::Action* mCut;
134 wkf::Action* mCopy;
135 wkf::Action* mPaste;
136 wkf::Action* mSelectAll;
137 wkf::Action* mFind;
138 wkf::Action* mFindNext;
139 wkf::Action* mFindPrevious;
140 wkf::Action* mFindInFiles;
141 wkf::Action* mReplace;
142 wkf::Action* mGoToLine;
143 wkf::Action* mAutoComplete;
144 wkf::Action* mCommentSelection;
145 wkf::Action* mUncommentSelection;
146 wkf::Action* mToggleComment;
147 wkf::Action* mFormatSelection;
148 wkf::Action* mTabForward;
149 wkf::Action* mTabBackward;
150 wkf::Action* mCloseCurrent;
151 wkf::Action* mDelCurrentLine;
152
153 wkf::Action* mCloseAll;
154 wkf::Action* mCloseNonStartup;
155 wkf::Action* mCloseNonIncluded;
156 wkf::Action* mCloseInactive;
157
158 wkf::Action* mAddDirectory;
159 wkf::Action* mChangeHistory;
160 wkf::Action* mReparse;
161 wkf::Action* mProjectSettings;
162
163 wkf::Action* mHelpCommandDocumentation;
164
165 wkf::Action* mNewFile;
166
167 QList<QAction*> mProjectRequiredActions;
168 QList<QAction*> mWsfRequiredActions;
169 QList<QAction*> mFileRequiredActions;
170 QList<QAction*> mFocusRequiredActions;
171 FindResultsControl* mFindResultsControlPtr;
172 FindInFilesDialog* mFindInFilesDialogPtr;
173 RenameFileDialog* mRenameFileDialogPtr;
174 ReplaceInFilesDialog* mReplaceInFilesDialogPtr;
175 ContextDocumentationControl* mContextDocumentationControlPtr;
176
177 UtCallbackHolder mCallbacks;
178};
179} // namespace wizard
180
181#endif
#define VI_EXPORT
Definition ViExport.hpp:38
void UpdateFocusActions()
Definition ActionManager.cpp:589
void NewProject()
Definition ActionManager.cpp:848
ActionManager()
Definition ActionManager.cpp:43
void BuildUpProjectContextMenu(QMenu &aMenu)
Definition ActionManager.cpp:448
void BuildUpTitleBarMenu(QMenu &aMenu, Editor *aEditorPtr)
Definition ActionManager.cpp:393
void AppendEditActions(QMenu *aMenuPtr)
Definition ActionManager.cpp:383
void BuildUpTextSourceContextMenu(QMenu &aMenu, TextSource *aSource, int aMainFile)
Definition ActionManager.cpp:462
Definition ContextDocumentationControl.hpp:21
Definition Editor.hpp:57
Definition FindInFilesDialog.hpp:27
Definition FindResultsControl.hpp:31
Definition RenameFileDialog.hpp:30
Definition ReplaceInFilesDialog.hpp:26
Definition TextSource.hpp:48
Definition Runner.hpp:22
Definition ActionManager.hpp:28
Copyrights Multiple, All Rights Reserved