DIE Engine
Loading...
Searching...
No Matches
mainwindow.h
Go to the documentation of this file.
1
11
12#ifndef MAINWINDOW_H
13#define MAINWINDOW_H
14
15#include "renderwindow.h"
16
17#include "editor.h"
18#include "map.h"
19
20#include <QMainWindow>
21#include <QAbstractSpinBox>
22#include <QCheckBox>
23#include <QList>
24#include <QShortcut>
25#include <QTimer>
26
27QT_BEGIN_NAMESPACE
28namespace Ui { class MainWindow; }
29QT_END_NAMESPACE
30
31class MainWindow : public QMainWindow
32{
33 Q_OBJECT
34
35public:
36 MainWindow(QWidget *parent = nullptr);
38
44
45 bool once;
46 QTimer * renderTimer;
47 QTimer * uiTimer;
49
50 void setEditMode(EDIT_MODES mode);
51 void setTexture(uint16_t texId);
52
55 void updateWallTexture();
58 void updateDoorTexture();
60 void updateLiftTexture();
73
76
77 void refreshTagCombos();
78
79 void pushUndoState();
80 void scheduleUndoPush();
81 void undo();
82 void redo();
83
85 void updateViewNormals(bool normals);
86 void updateViewMode();
87
88 void saveMap(bool submap);
89
90private:
91 void resizeUI();
92 void resizeEvent(QResizeEvent *event);
93 void closeEvent(QCloseEvent *event);
94
95 void setSpinValueSilently(QAbstractSpinBox* box, double value);
96 void setCheckboxStateSilently(QCheckBox* box, bool checked);
97
98 void createShortcuts();
99 void createContextMenu();
100
101 void createRenderWindow();
102 void createNetworkWindow();
103
104 QShortcut * shortcutEditNodes;
105 QShortcut * shortcutEditWalls;
106 QShortcut * shortcutEditSubmaps;
107 QShortcut * shortcutEditDoors;
108 QShortcut * shortcutEditLifts;
109 QShortcut * shortcutEditSprites;
110 QShortcut * shortcutEditStaircases;
111 QShortcut * shortcutEditLights;
112 QShortcut * shortcutEditSpeakers;
113 QShortcut * shortcutEditDelete;
114
115private slots:
116 void timerRender_tick();
117 void timerUI_tick();
118 void contextMenu_show(const QPoint &pos);
119
120 void on_setNodeMode();
121 void on_setWallMode();
122 void on_setSubmapMode();
123 void on_setDoorMode();
124 void on_setLiftMode();
125 void on_setSpriteMode();
126 void on_setStaircaseMode();
127 void on_setLightMode();
128 void on_setSpeakerMode();
129 void on_deleteCurrent();
130
131 void on_tabEditorModes_currentChanged(int index);
132
133 void on_checkEditorSnap_toggled(bool checked);
134 void on_comboEditorSnap_currentIndexChanged(int index);
135 void on_scrollTextures_valueChanged(int value);
136
137 void on_spinNodeX_valueChanged(double arg1);
138 void on_spinNodeY_valueChanged(double arg1);
139 void on_spinNodeZ_valueChanged(double arg1);
140 void on_spinNodeMetaA_valueChanged(double arg1);
141 void on_spinNodeMetaB_valueChanged(double arg1);
142 void on_spinNodeMetaC_valueChanged(double arg1);
143 void on_comboNodeTag_currentIndexChanged(int index);
144 void on_listNodes_itemSelectionChanged();
145 void on_pushNodeAddSubmap_clicked();
146 void on_pushNodeAddDoor_clicked();
147 void on_pushNodeAddStaircase_clicked();
148 void on_pushNodeAddLight_clicked();
149 void on_pushNodeAddSprite_clicked();
150 void on_pushNodeAddSpeaker_clicked();
151 void on_pushNodeDelete_clicked();
152
153 void on_spinWallHeight_valueChanged(double arg1);
154 void on_comboWallTexture_currentIndexChanged(int index);
155 void on_spinWallTexture_valueChanged(int arg1);
156 void on_spinWallScaleX_valueChanged(double arg1);
157 void on_spinWallScaleY_valueChanged(double arg1);
158 void on_spinWallShiftX_valueChanged(double arg1);
159 void on_spinWallShiftY_valueChanged(double arg1);
160 void on_checkWallInvisible_toggled(bool checked);
161 void on_checkWallAlpha_toggled(bool checked);
162 void on_checkWallBackculled_toggled(bool checked);
163 void on_checkWallCeilingFront_toggled(bool checked);
164 void on_checkWallCeilingBack_toggled(bool checked);
165 void on_checkWallFloorFront_toggled(bool checked);
166 void on_checkWallFloorBack_toggled(bool checked);
167 void on_pushWallSwap_clicked();
168 void on_pushWallDelete_clicked();
169
170 void on_plainSubmapName_textChanged();
171 void on_comboSubmapTag_currentIndexChanged(int index);
172 void on_spinSubmapPan_valueChanged(double arg1);
173 void on_spinSubmapScale_valueChanged(double arg1);
174 void on_pushSubmapBrowse_clicked();
175 void on_pushSubmapDelete_clicked();
176
177 void on_plainDoorName_textChanged();
178 void on_comboDoorTag_currentIndexChanged(int index);
179 void on_spinDoorWidth_valueChanged(double arg1);
180 void on_spinDoorHeight_valueChanged(double arg1);
181 void on_spinDoorThick_valueChanged(double arg1);
182 void on_comboDoorMode_currentIndexChanged(int index);
183 void on_spinDoorAngle_valueChanged(double arg1);
184 void on_spinDoorSwing_valueChanged(double arg1);
185 void on_spinDoorTime_valueChanged(double arg1);
186 void on_checkDoorAlpha_toggled(bool checked);
187 void on_checkDoorLocked_toggled(bool checked);
188 void on_comboDoorEasing_currentIndexChanged(int index);
189 void on_comboDoorTexture_currentIndexChanged(int index);
190 void on_spinDoorTexture_valueChanged(int arg1);
191 void on_spinDoorScaleX_valueChanged(double arg1);
192 void on_spinDoorScaleY_valueChanged(double arg1);
193 void on_pushDoorOpen_clicked();
194 void on_pushDoorClose_clicked();
195 void on_pushDoorShake_clicked();
196 void on_pushDoorDelete_clicked();
197
198 void on_plainLiftName_textChanged();
199 void on_comboLiftTag_currentIndexChanged(int index);
200 void on_spinLiftWidth_valueChanged(double arg1);
201 void on_spinLiftLength_valueChanged(double arg1);
202 void on_spinLiftThick_valueChanged(double arg1);
203 void on_spinLiftTravel_valueChanged(double arg1);
204 void on_spinLiftTime_valueChanged(double arg1);
205 void on_comboLiftMode_currentIndexChanged(int index);
206 void on_checkLiftAlpha_toggled(bool checked);
207 void on_checkLiftLocked_toggled(bool checked);
208 void on_checkLiftHaltable_toggled(bool checked);
209 void on_checkLiftContinuous_toggled(bool checked);
210 void on_checkLiftReturn_toggled(bool checked);
211 void on_comboLiftEasing_currentIndexChanged(int index);
212 void on_comboLiftTexture_currentIndexChanged(int index);
213 void on_spinLiftTexture_valueChanged(int arg1);
214 void on_spinLiftScaleX_valueChanged(double arg1);
215 void on_spinLiftScaleY_valueChanged(double arg1);
216 void on_pushLiftStart_clicked();
217 void on_pushLiftStop_clicked();
218 void on_pushLiftDelete_clicked();
219 void on_pushNodeAddLift_clicked();
220
221 void on_plainSpriteName_textChanged();
222 void on_comboSpriteTag_currentIndexChanged(int index);
223 void on_spinSpriteWidth_valueChanged(double arg1);
224 void on_spinSpriteHeight_valueChanged(double arg1);
225 void on_spinSpritePan_valueChanged(double arg1);
226 void on_checkSpriteInvisible_toggled(bool checked);
227 void on_checkSpriteBackculled_toggled(bool checked);
228 void on_checkSpriteShadows_toggled(bool checked);
229 void on_checkSpriteAutopan_toggled(bool checked);
230 void on_spinSpriteTexture_valueChanged(int arg1);
231 void on_pushSpriteDelete_clicked();
232
233 void on_spinStaircasePan_valueChanged(double arg1);
234 void on_spinStaircaseHeight_valueChanged(double arg1);
235 void on_spinStaircaseWidth_valueChanged(double arg1);
236 void on_spinStaircaseLength_valueChanged(double arg1);
237 void on_spinStaircaseSteps_valueChanged(int arg1);
238 void on_comboStaircaseTexture_currentIndexChanged(int index);
239 void on_spinStaircaseTexture_valueChanged(int arg1);
240 void on_spinStaircaseScaleX_valueChanged(double arg1);
241 void on_spinStaircaseScaleY_valueChanged(double arg1);
242 void on_pushStaircaseDelete_clicked();
243
244 void on_pushLightColorA_clicked();
245 void on_pushLightColorB_clicked();
246 void on_scrollLightStrength_valueChanged(int value);
247 void on_comboLightAnimation_currentIndexChanged(int index);
248 void on_scrollLightSpeed_valueChanged(int value);
249 void on_checkLightEnable_toggled(bool checked);
250 void on_comboLightTag_currentIndexChanged(int index);
251 void on_pushLightDelete_clicked();
252
253 void on_pushTagNew_clicked();
254 void on_pushTagDelete_clicked();
255 void on_comboTagsList_currentIndexChanged(int index);
256 void on_comboTagsList_lineEdit_returnPressed();
257 void on_plainTagName_textChanged();
258 void on_plainTagValue_textChanged();
259 void on_pushTagsLoad_clicked();
260 void on_pushTagsSave_clicked();
261 void on_pushTagsClear_clicked();
262
263 void on_plainSpeakerName_textChanged();
264 void on_comboSpeakerTag_currentIndexChanged(int index);
265 void on_spinSpeakerVolume_valueChanged(double arg1);
266 void on_spinSpeakerSize_valueChanged(double arg1);
267 void on_spinSpeakerPan_valueChanged(double arg1);
268 void on_checkSpeakerAuto_toggled(bool checked);
269 void on_checkSpeakerTrigger_toggled(bool checked);
270 void on_checkSpeakerToggle_toggled(bool checked);
271 void on_checkSpeakerLoop_toggled(bool checked);
272 void on_checkSpeakerOmni_toggled(bool checked);
273 void on_pushSpeakerBrowse_clicked();
274 void on_pushSpeakerDelete_clicked();
275
276 void on_comboPathsList_currentIndexChanged(int index);
277 void on_comboPathsList_lineEdit_returnPressed();
278 void on_plainPathName_textChanged();
279 void on_comboPathTag_currentIndexChanged(int index);
280 void on_pushPathNew_clicked();
281 void on_pushPathDelete_clicked();
282 void on_pushPathNodeUp_clicked();
283 void on_pushPathNodeDown_clicked();
284 void on_pushPathNodesAdd_clicked();
285 void on_pushPathNodesClear_clicked();
286 void on_listPathNodes_itemSelectionChanged();
287
288 void on_spinViewerX_valueChanged(double arg1);
289 void on_spinViewerY_valueChanged(double arg1);
290 void on_spinViewerZ_valueChanged(double arg1);
291 void on_spinViewerPan_valueChanged(double arg1);
292
293 void on_pushViewerTop_toggled(bool checked);
294 void on_pushViewerFront_toggled(bool checked);
295 void on_pushViewerSide_toggled(bool checked);
296 void on_pushViewer3D_toggled(bool checked);
297
298 void on_spinViewerMinY_valueChanged(double arg1);
299 void on_spinViewerMaxY_valueChanged(double arg1);
300
301 void on_pushSunAmbient_clicked();
302 void on_pushSunRay_clicked();
303 void on_spinSunHour_valueChanged(double arg1);
304 void on_spinSunAngle_valueChanged(double arg1);
305 void on_scrollSunAmbient_valueChanged(int value);
306 void on_scrollSunRay_valueChanged(int value);
307
308 void on_pushFogColor_clicked();
309 void on_spinFogNear_valueChanged(double arg1);
310 void on_spinFogFar_valueChanged(double arg1);
311 void on_checkFogEnable_toggled(bool checked);
312
313 void on_spinFOVAngle_valueChanged(double arg1);
314 void on_spinFOVNear_valueChanged(double arg1);
315 void on_spinFOVFar_valueChanged(double arg1);
316
317 void on_checkEditorGravity_toggled(bool checked);
318 void on_checkEditorCollisions_toggled(bool checked);
319 void on_checkEditorWallSelector_toggled(bool checked);
320
321 void on_checkRendererMultithreadingEnable_toggled(bool checked);
322 void on_checkRendererWallsEnable_toggled(bool checked);
323 void on_checkRendererSurfacesEnable_toggled(bool checked);
324 void on_checkRendererOcclusionEnable_toggled(bool checked);
325 void on_checkRendererLightsEnable_toggled(bool checked);
326 void on_checkRendererMotionblur_toggled(bool checked);
327 void on_checkRendererVignetting_toggled(bool checked);
328 void on_checkRendererAlphaFeatures_toggled(bool checked);
329 void on_checkRendererGamma_toggled(bool checked);
330 void on_spinRendererOcclusionLength_valueChanged(double arg1);
331 void on_scrollRendererOcclusionDarken_valueChanged(int value);
332 void on_scrollRendererMotionblurPercent_valueChanged(int value);
333 void on_scrollRendererVignettingInner_valueChanged(int value);
334 void on_scrollRendererVignettingOuter_valueChanged(int value);
335 void on_scrollRendererGammaKRed_valueChanged(int value);
336 void on_scrollRendererGammaKGreen_valueChanged(int value);
337 void on_scrollRendererGammaKBlue_valueChanged(int value);
338
339 void on_actionNew_triggered();
340 void on_actionLoad_map_triggered();
341 void on_actionSave_map_triggered();
342 void on_actionSave_submap_triggered();
343 void on_actionQuit_triggered();
344
345 void on_pushTextureBrowse_clicked();
346 void on_pushMapCenter_clicked();
347 void on_scrollMapH_sliderMoved(int position);
348 void on_scrollMapV_sliderMoved(int position);
349
350 void on_pushTextureSlice_clicked();
351 void on_pushTextureConcat_clicked();
352
353 void on_actionSelectAll_triggered();
354 void on_actionDeselect_triggered();
355 void on_actionCut_triggered();
356 void on_actionCopy_triggered();
357 void on_actionPaste_triggered();
358 void on_actionDelete_triggered();
359 void on_actionAlign_triggered();
360
361 void on_actionUndo_triggered();
362 void on_actionRedo_triggered();
363
364 void on_actionAbout_triggered();
365 void on_actionAboutQt_triggered();
366
367 void on_pushViewportReset_clicked();
368 void on_comboGlowmapArea_currentIndexChanged(int index);
369 void on_comboGlowmapSize_currentIndexChanged(int index);
370 void on_spinEditorFloor_valueChanged(double arg1);
371 void on_pushRendererGlowmapRebuild_clicked();
372
373private:
374 static constexpr int UNDO_MAX = 50;
375 QList<MapState> undoHistory;
376 int undoIndex;
377 QTimer * undoDebounceTimer;
378
379 void applyUndoState();
380 void updateUndoActions();
381
382private:
383 Ui::MainWindow *ui;
384};
385#endif // MAINWINDOW_H
Definition mainwindow.h:32
QTimer * renderTimer
Definition mainwindow.h:46
void updateWallTexture()
Definition mainwindow.cpp:545
void updateStaircaseTexture()
Definition mainwindow.cpp:758
void setTexture(uint16_t texId)
Definition mainwindow.cpp:417
void updateViewMode()
Definition mainwindow.cpp:407
void redo()
Definition mainwindow.cpp:211
void updateDoorTexture()
Definition mainwindow.cpp:622
void updateLiftTexture()
Definition mainwindow.cpp:677
void updateEngineProperties()
Definition mainwindow.cpp:879
void updateSpeakerProperties()
Definition mainwindow.cpp:799
EDIT_MODES uiEditMode
Definition mainwindow.h:39
void updateWallProperties()
Definition mainwindow.cpp:509
void updateSpriteTexture()
Definition mainwindow.cpp:724
void updateStaircaseProperties()
Definition mainwindow.cpp:734
bool viewEnableTop
Definition mainwindow.h:40
QTimer * uiTimer
Definition mainwindow.h:47
void updateLiftProperties()
Definition mainwindow.cpp:636
bool once
Definition mainwindow.h:45
void updateViewNormals(bool normals)
void updateTagProperties()
Definition mainwindow.cpp:2318
bool viewEnableSide
Definition mainwindow.h:41
bool viewEnable3D
Definition mainwindow.h:43
void updateSubmapProperties()
Definition mainwindow.cpp:561
void undo()
Definition mainwindow.cpp:203
bool viewEnableFront
Definition mainwindow.h:42
void updatePathProperties()
Definition mainwindow.cpp:2131
MainWindow(QWidget *parent=nullptr)
Definition mainwindow.cpp:39
void setEditMode(EDIT_MODES mode)
Definition mainwindow.cpp:382
void scheduleUndoPush()
Definition mainwindow.cpp:197
void saveMap(bool submap)
Definition mainwindow.cpp:2715
void updateAllProperties()
Refresh every per-object properties panel.
Definition mainwindow.cpp:393
void updateViewpointProperties()
Definition mainwindow.cpp:829
RenderWindow * renderWindow
Definition mainwindow.h:48
void updateSpriteProperties()
Definition mainwindow.cpp:691
void pushUndoState()
Definition mainwindow.cpp:178
void updateSunProperties()
Definition mainwindow.cpp:852
void refreshTagCombos()
Definition mainwindow.cpp:2347
void updateFogProperties()
Definition mainwindow.cpp:863
void updateDoorProperties()
Definition mainwindow.cpp:584
~MainWindow()
Definition mainwindow.cpp:106
void updateNodeProperties()
Definition mainwindow.cpp:451
void updateLightProperties()
Definition mainwindow.cpp:772
void updateEditorProperties()
Definition mainwindow.cpp:872
Definition renderwindow.h:22
EDIT_MODES
Definition editor.h:26
Definition mainwindow.h:28