Add "Apply transformations" feature (no connectors or frames done yet)
[wmit:wmit.git] / src / ui / MainWindow.hpp
1 /*
2         Copyright 2010 Warzone 2100 Project
3
4         This file is part of WMIT.
5
6         WMIT is free software: you can redistribute it and/or modify
7         it under the terms of the GNU General Public License as published by
8         the Free Software Foundation, either version 3 of the License, or
9         (at your option) any later version.
10
11         WMIT is distributed in the hope that it will be useful,
12         but WITHOUT ANY WARRANTY; without even the implied warranty of
13         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14         GNU General Public License for more details.
15
16         You should have received a copy of the GNU General Public License
17         along with WMIT.  If not, see <http://www.gnu.org/licenses/>.
18 */
19 #ifndef MAINWINDOW_HPP
20 #define MAINWINDOW_HPP
21
22 #include <QMainWindow>
23
24 #include <QString>
25 #include <QList>
26 #include <QSet>
27 #include <QPair>
28
29 #include "QWZM.hpp"
30
31 class TransformDock;
32 class ConfigDialog;
33 class ImportDialog;
34 class ExportDialog;
35 class UVEditor;
36
37 namespace Ui {
38         class MainWindow;
39 }
40
41 class MainWindow : public QMainWindow {
42     Q_OBJECT
43 public:
44     MainWindow(QWidget *parent = 0);
45         ~MainWindow();
46
47 protected:
48     void changeEvent(QEvent *e);
49
50 signals:
51         void textureSearchDirsChanged(QStringList);
52
53 private slots:
54         void on_actionShaders_toggled(bool );
55  void on_actionFixed_Pipeline_toggled(bool );
56  void on_actionSave_As_triggered();
57         void on_actionSave_triggered();
58         void s_fileOpen();
59         void s_updateTexSearchDirs(const QList<QPair<bool,QString> >&);
60         void on_actionUVEditor_toggled(bool );
61         void on_actionOpen_triggered();
62         void on_actionConfig_triggered();
63         void on_actionTransformWidget_toggled(bool );
64
65         void _on_viewerInitialized();
66
67         // transformations
68         void _on_scaleXYZChanged(double);
69         void _on_scaleXChanged(double);
70         void _on_scaleYChanged(double);
71         void _on_scaleZChanged(double);
72         void _on_reverseWindings();
73         void _on_applyTransformations();
74
75 private:
76         Ui::MainWindow* ui;
77         ConfigDialog* configDialog;
78         ImportDialog* importDialog;
79         ExportDialog* exportDialog;
80         TransformDock* transformDock;
81         UVEditor* m_UVEditor;
82
83         QSet<QString> textureSearchDirs;
84
85         QWZM model;
86 };
87
88 #endif // MAINWINDOW_HPP