source: s10k/Vago/mainwindow.h@ 1098

Last change on this file since 1098 was 1093, checked in by s10k, 7 years ago

Vago 1.4

File size: 9.1 KB
Line 
1#ifndef MAINWINDOW_H
2#define MAINWINDOW_H
3
4#include "utilvago.h"
5#include "preferences.h"
6#include "manualcommands.h"
7#include "about.h"
8#include "packagewizard.h"
9#include "soundwizard.h"
10#include "bgimagewizard.h"
11#include "wmwizard.h"
12#include "converter.h"
13#include "xmltoolsinterface.h"
14#include "wizardfactory.h"
15#include "xmlParsers/projectfilevago.h"
16
17#include <QMainWindow>
18#include <QMessageBox>
19#include <QProcess>
20#include <QColor>
21#include <QPalette>
22#include <QFileDialog>
23#include <QUrl>
24#include <QDesktopServices>
25#include <QErrorMessage>
26#include <QTextCodec>
27#include <QProgressBar>
28#include <QComboBox>
29#include <QtNetwork/QNetworkAccessManager>
30#include <QtNetwork/QNetworkRequest>
31#include <QtNetwork/QNetworkReply>
32#include <QCloseEvent>
33#include <QScriptEngine>
34#include <QScriptValueIterator>
35#include <droptablewidget.h>
36#include <pugixml/pugixml.hpp>
37#ifdef Q_OS_WIN
38#include <QWinTaskbarProgress>
39#include <QWinTaskbarButton>
40#endif
41
42namespace Ui {
43class MainWindow;
44}
45
46class MainWindow : public QMainWindow
47{
48 Q_OBJECT
49
50public:
51 explicit MainWindow(QWidget *parent = 0);
52
53 ~MainWindow();
54
55protected:
56 void closeEvent(QCloseEvent *event);
57
58private slots:
59 void applicationWasLoaded();
60
61 void on_actionExit_triggered();
62
63 void on_actionAbout_triggered();
64
65 void on_tbOni_clicked();
66
67 void on_tbAE_clicked();
68
69 void on_tbOpenFolder_clicked();
70
71 void on_cbEnvMap_toggled(bool checked);
72
73 void on_cbTexture_toggled(bool checked);
74
75 void on_actionCheck_For_Updates_triggered();
76
77 void on_pbAddSourceXML_clicked();
78
79 void on_pbConvert_clicked();
80
81 void TsetupProgressBar(int max);
82
83 void TupdateProgressBar();
84
85 void TresultConversion(QString result, int numErrors);
86
87 void TconversionAborted();
88
89 void on_actionWindows_triggered();
90
91 void on_actionMac_Windows_demo_triggered();
92
93 void on_pbClearSourcesXML_clicked();
94
95 void on_pbRemoveSourceXML_clicked();
96
97 void on_pbAddSourceTextures_clicked();
98
99 void on_pbRemoveSourceTextures_clicked();
100
101 void on_pbClearSourcesTextures_clicked();
102
103 void on_cbFromTextures_currentIndexChanged(const QString &arg1);
104
105 void on_cbFromObjects_currentIndexChanged(const QString &arg1);
106
107 void on_cbFromLevels_currentIndexChanged(const QString &arg1);
108
109 void on_cbFromMisc_currentIndexChanged(const QString &arg1);
110
111 void on_pbAddSourceObjects_clicked();
112
113 void on_pbAddSourceLevels_clicked();
114
115 void on_pbAddSourceMisc_clicked();
116
117 void on_pbRemoveSourceObjects_clicked();
118
119 void on_pbRemoveSourceLevels_clicked();
120
121 void on_pbRemoveSourceMisc_clicked();
122
123 void on_pbClearSourcesObjects_clicked();
124
125 void on_pbClearSourcesLevels_clicked();
126
127 void on_pbClearSourcesMisc_clicked();
128
129 void on_actionPreferences_triggered();
130
131 void on_cbToLevels_currentIndexChanged(const QString &arg1);
132
133 void on_cbDatLevels_toggled(bool checked);
134
135 void on_actionCheck_OniSplit_version_triggered();
136
137 void addFilesSource(DropTableWidget *myTable, QStringList files); //for drag 'n drop
138
139 void dtContextMenu(DropTableWidget* myTable, QContextMenuEvent *event); //Context menu options for table widgets
140
141 void checkVagoLastVersion(QNetworkReply *result); //check vago last version
142
143 void on_cbBnvLevels_toggled(bool checked);
144
145 void on_cbAdditionalSourcesLevels_toggled(bool checked);
146
147 void on_tbCommand_clicked();
148
149 void on_actionWorkspace_triggered();
150
151 void on_actionOther_triggered();
152
153 void on_actionView_log_triggered();
154
155 void on_actionAE_Package_Creator_triggered();
156
157 void on_cbFromCharacters_currentIndexChanged(const QString &arg1);
158
159 void on_pbAddSourceCharacters_clicked();
160
161 void on_pbRemoveSourceCharacters_clicked();
162
163 void on_pbClearSourcesCharacters_clicked();
164
165 void on_actionSound_Wizard_triggered();
166
167 void on_actionCheck_xmlTools_version_triggered();
168
169 void on_actionOpen_AE_folder_triggered();
170
171 void on_cbWithTRBS_ONCC_toggled(bool checked);
172
173 void on_cbFromXML_currentIndexChanged(const QString &arg1);
174
175 void on_cbSpecificFilesLevels_toggled(bool checked);
176
177 void on_tbAbortConversion_clicked();
178
179 void on_tabWidget_currentChanged(int);
180
181 void on_actionSave_Project_triggered();
182
183 void on_actionSave_triggered();
184
185 void on_actionLoad_Project_triggered();
186
187 void on_actionProject1_triggered();
188
189 void on_actionProject2_triggered();
190
191 void on_actionProject3_triggered();
192
193 void on_actionProject4_triggered();
194
195 void on_actionProject5_triggered();
196
197 void on_actionBackground_Image_Wizard_triggered();
198
199 void on_actionNew_Project_triggered();
200
201 void on_tbXmlToolsInterface_clicked();
202
203 void on_actionWindow_Messages_Wizard_triggered();
204
205 void on_cbWithAnimation_toggled(bool checked);
206
207private:
208 Ui::MainWindow *ui;
209 QString workspaceLocation; //Workspace location
210 QString workspaceWizardsLocation; //Workspace wizard location
211 QString outputFolder; //Output folder
212 QString AeLocation; //Workspace location
213 QString lastProjectFilePath;
214 int startedWindowWidth;
215 int startedWindowHeight;
216#ifdef Q_OS_MAC
217 bool useYesAsDefaultWhenRemovingItems;
218#endif
219 QLabel *itemsLoaded;
220 QProgressBar *myBar; //Progress Bar
221 QHash<QString, QString> commandMap; //Map the commands for fast retreive
222 QStringList listToProccess; //items to proccess
223 Converter *myConverter = nullptr;
224 QSettings *vagoSettings;
225 static const QString VagoSettingsName;
226 static constexpr int recentProjectsMaxSize=5;
227 QList<QString> recentProjectsList;
228#ifdef Q_OS_WIN
229 // These are deleted automatically by the window (since button is attached to it)
230 QWinTaskbarProgress *win7TaskBarProgress;
231 QWinTaskbarButton *win7TaskBarButton;
232#endif
233 bool unsavedChangesExist = false;
234 // Indicates that the application is fully loaded which includes painting the main window
235 bool applicationIsFullyLoaded = false;
236 // This variable indicates that we have a project being loaded. It should only be set by MainWindow thread.
237 // It allow us to ignore certain gui slots like when checking checkbox that ask the user for input
238 bool projectIsLoading = false;
239
240 // anonymous enum
241 enum {XMLTabIndex, TexturesTabIndex, CharactersTabIndex, ObjectsTabIndex, LevelsTabIndex, MiscTabIndex};
242
243private:
244 void connectSlots();
245 void mapCommands();
246 void addRowTable(DropTableWidget *myTable, QString file, QString fromTo, QString command, bool isToDisabled=false);
247 void clearTableContents(DropTableWidget *myTable);
248 void clearTableNoPrompt(DropTableWidget *myTable);
249 void removeTableContents(DropTableWidget *myTable);
250 void updateComboBox(const QString &arg1, QComboBox *comboBox);
251 void startConversion();
252 void updateItemsLoaded(DropTableWidget *currentTable);
253 void changeToCurrentSettings(QList<int> rows, DropTableWidget* myTable); //change some rows to the current settings
254 void changeItemsOutput(DropTableWidget* myTable, QList<int> rows, QString newOutput);
255 void setConverterButtonsSize();
256 void saveProjectState(const QString &filePath);
257 void loadProjectState(const QString &filePath);
258 void setVagoWindowTitle();
259 void saveRecentProjects();
260 void loadRecentProjects();
261 void addNewRecentProject(const QString &filePath);
262 void reloadRecentProjectsMenu();
263 void showEvent(QShowEvent *e);
264 void rowsWereChangedInDropTableWidget();
265 QString getFileOutputFolder(QString fromTo, QString myOutputFolder="");
266 QString fileParsingXML(QString tabTitle, QString myOutputFolder, QString from, QString to , QString file);
267 QString fileParsingTextures(QString tabTitle, QString myOutputFolder, QString from, QString to , QString file);
268 QString fileParsingObjects(QString tabTitle, QString myOutputFolder, QString from, QString to , QString file);
269 QString fileParsingCharacters(QString tabTitle, QString myOutputFolder, QString from, QString to , QString file);
270 QString fileParsingLevels(QString tabTitle, QString myOutputFolder, QString from, QString to , QString file);
271 QString fileParsingMisc(QString myOutputFolder, QString from, QString to , QString file);
272 QString getCommand(DropTableWidget* myTable, QString myOutputFolder, QString from, QString to , QString file);
273 QString getTypeConversion(DropTableWidget *myTable); //get the current type for a table
274 QString getOSIndependentAppPath();
275 QString getTabNameByTableWidget(DropTableWidget* table);
276 QString getCurrentTabName();
277 QRadioButton* getTextureRBCheckedTypeTexture();
278 QRadioButton *getTextureRBTypeTextureByName(const QString &texType);
279 DropTableWidget *getCurrentTableWidget();
280 DropTableWidget* getTableWidgetByTabName(const QString &tabName);
281 QList<DropTableWidget*> getAllTableWidgets();
282 QMessageBox::StandardButton askToSaveCurrentProject();
283 ProjectFileVago::ProjectData fetchCurrentProjectData();
284
285signals:
286 void terminateCurrProcess();
287 void signalAppIsLoaded();
288};
289
290#endif // MAINWINDOW_H
Note: See TracBrowser for help on using the repository browser.