/
view.hpp
262 lines (156 loc) · 5.75 KB
/
view.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
#ifndef CSV_DOC_VIEW_H
#define CSV_DOC_VIEW_H
#include <vector>
#include <map>
#include <QMainWindow>
#include "subviewfactory.hpp"
class QAction;
class QDockWidget;
class QScrollArea;
namespace CSMDoc
{
class Document;
}
namespace CSMWorld
{
class UniversalId;
}
namespace CSMPrefs
{
class Setting;
}
namespace CSVDoc
{
class ViewManager;
class Operations;
class GlobalDebugProfileMenu;
class View : public QMainWindow
{
Q_OBJECT
ViewManager& mViewManager;
CSMDoc::Document *mDocument;
int mViewIndex;
int mViewTotal;
QList<SubView *> mSubViews;
QAction *mUndo;
QAction *mRedo;
QAction *mSave;
QAction *mVerify;
QAction *mShowStatusBar;
QAction *mStopDebug;
QAction *mMerge;
std::vector<QAction *> mEditingActions;
Operations *mOperations;
SubViewFactoryManager mSubViewFactory;
QMainWindow mSubViewWindow;
GlobalDebugProfileMenu *mGlobalDebugProfileMenu;
QScrollArea *mScroll;
bool mScrollbarOnly;
// not implemented
View (const View&);
View& operator= (const View&);
private:
void closeEvent (QCloseEvent *event);
QAction* createMenuEntry(CSMWorld::UniversalId::Type type, QMenu* menu, const char* shortcutName);
QAction* createMenuEntry(const std::string& title, const std::string& iconName, QMenu* menu, const char* shortcutName);
void setupFileMenu();
void setupEditMenu();
void setupViewMenu();
void setupWorldMenu();
void setupMechanicsMenu();
void setupCharacterMenu();
void setupAssetsMenu();
void setupDebugMenu();
void setupUi();
void setupShortcut(const char* name, QAction* action);
void updateActions();
void exitApplication();
/// User preference function
void resizeViewWidth (int width);
/// User preference function
void resizeViewHeight (int height);
void updateScrollbar();
void updateWidth(bool isGrowLimit, int minSubViewWidth);
void createScrollArea();
public:
View (ViewManager& viewManager, CSMDoc::Document *document, int totalViews);
///< The ownership of \a document is not transferred to *this.
virtual ~View();
const CSMDoc::Document *getDocument() const;
CSMDoc::Document *getDocument();
void setIndex (int viewIndex, int totalViews);
void updateDocumentState();
void updateProgress (int current, int max, int type, int threads);
void toggleStatusBar(bool checked);
Operations *getOperations() const;
signals:
void newGameRequest();
void newAddonRequest();
void loadDocumentRequest();
void exitApplicationRequest (CSVDoc::View *view);
void editSettingsRequest();
void mergeDocument (CSMDoc::Document *document);
public slots:
void addSubView (const CSMWorld::UniversalId& id, const std::string& hint = "");
///< \param hint Suggested view point (e.g. coordinates in a 3D scene or a line number
/// in a script).
void abortOperation (int type);
void updateTitle();
// called when subviews are added or removed
void updateSubViewIndices (SubView *view = NULL);
private slots:
void settingChanged (const CSMPrefs::Setting *setting);
void undoActionChanged();
void redoActionChanged();
void newView();
void save();
void exit();
void verify();
void addGlobalsSubView();
void addGmstsSubView();
void addSkillsSubView();
void addClassesSubView();
void addFactionsSubView();
void addRacesSubView();
void addSoundsSubView();
void addScriptsSubView();
void addRegionsSubView();
void addBirthsignsSubView();
void addSpellsSubView();
void addCellsSubView();
void addReferenceablesSubView();
void addReferencesSubView();
void addRegionMapSubView();
void addFiltersSubView();
void addTopicsSubView();
void addJournalsSubView();
void addTopicInfosSubView();
void addJournalInfosSubView();
void addEnchantmentsSubView();
void addBodyPartsSubView();
void addSoundGensSubView();
void addMagicEffectsSubView();
void addMeshesSubView();
void addIconsSubView();
void addMusicsSubView();
void addSoundsResSubView();
void addTexturesSubView();
void addVideosSubView();
void addDebugProfilesSubView();
void addRunLogSubView();
void addLandsSubView();
void addLandTexturesSubView();
void addPathgridSubView();
void addStartScriptsSubView();
void addSearchSubView();
void addMetaDataSubView();
void toggleShowStatusBar (bool show);
void loadErrorLog();
void run (const std::string& profile, const std::string& startupInstruction = "");
void stop();
void closeRequest (SubView *subView);
void moveScrollBarToEnd(int min, int max);
void merge();
};
}
#endif