]> Shamusworld >> Repos - architektonas/blob - src/applicationwindow.h
00c79178601c974c66075d9e1082fa06af97ee59
[architektonas] / src / applicationwindow.h
1 #ifndef __APPLICATIONWINDOW_H__
2 #define __APPLICATIONWINDOW_H__
3
4 #include <QtWidgets>
5 #include <QPrinter>
6
7 // Forward declarations
8
9 class AboutWindow;
10 class DrawingView;
11 class QLabel;
12
13 class ApplicationWindow: public QMainWindow
14 {
15         // All Qt apps require this macro
16         Q_OBJECT
17
18         public:
19                 ApplicationWindow();
20
21         protected:
22                 void closeEvent(QCloseEvent * event);
23                 void contextMenuEvent(QContextMenuEvent * event);
24
25         private slots:
26                 void FileNew(void);
27                 void FileOpen(void);
28                 void FileSave(void);
29                 void FileSaveAs(void);
30                 void PrintPreview(void);
31                 void HandlePrintRequest(QPrinter *);
32                 void SnapToGridTool(void);
33                 void FixAngle(void);
34                 void FixLength(void);
35                 void DeleteTool(void);
36                 void DimensionTool(void);
37                 void RotateTool(void);
38                 void MirrorTool(void);
39                 void TrimTool(void);
40                 void TriangulateTool(void);
41                 void AddLineTool(void);
42                 void AddCircleTool(void);
43                 void AddArcTool(void);
44                 void AddPolygonTool(void);
45                 void AddSplineTool(void);
46                 void ZoomInTool(void);
47                 void ZoomOutTool(void);
48                 void HelpAbout(void);
49                 void Settings(void);
50                 void HandleGrouping(void);
51                 void HandleConnection(void);
52                 void HandleDisconnection(void);
53                 void HandleGridSizeInPixels(int);
54                 void HandleGridSizeInBaseUnits(QString);
55                 void HandleDimensionSize(QString);
56                 void EditCut(void);
57                 void EditCopy(void);
58                 void EditPaste(void);
59                 void SelectAllObjects(void);
60                 void UpdateZoom(void);
61
62         signals:
63                 void ReloadLayers(void);
64
65         private:
66                 void ClearUIToolStatesExcept(QAction *);
67                 void SetInternalToolStates(void);
68                 void CreateActions(void);
69                 QAction * CreateAction(QString name, QString tooltip, QString statustip,
70                         QIcon icon, QKeySequence key, bool checkable = false);
71                 QAction * CreateAction(QString name, QString tooltip, QString statustip,
72                         QIcon icon, QKeySequence key1, QKeySequence key2, bool checkable = false);
73                 void CreateMenus(void);
74                 void CreateToolbars(void);
75                 void ReadSettings(void);
76                 void WriteSettings(void);
77
78                 AboutWindow * aboutWin;
79                 QLabel * zoomIndicator;
80                 QString documentName;
81                 QLineEdit * baseUnitInput;
82                 QLineEdit * dimensionSizeInput;
83
84                 QSettings settings;
85
86                 QAction * fileNewAct;
87                 QAction * fileOpenAct;
88                 QAction * fileSaveAct;
89                 QAction * fileSaveAsAct;
90                 QAction * fileCloseAct;
91                 QAction * exitAct;
92                 QAction * settingsAct;
93                 QAction * fixAngleAct;
94                 QAction * fixLengthAct;
95                 QAction * deleteAct;
96                 QAction * addDimensionAct;
97                 QAction * addLineAct;
98                 QAction * addCircleAct;
99                 QAction * addArcAct;
100                 QAction * addPolygonAct;
101                 QAction * addSplineAct;
102                 QAction * aboutAct;
103                 QAction * rotateAct;
104                 QAction * zoomInAct;
105                 QAction * zoomOutAct;
106                 QAction * snapToGridAct;
107                 QAction * groupAct;
108                 QAction * connectAct;
109                 QAction * disconnectAct;
110                 QAction * mirrorAct;
111                 QAction * trimAct;
112                 QAction * triangulateAct;
113                 QAction * editCutAct;
114                 QAction * editCopyAct;
115                 QAction * editPasteAct;
116                 QAction * selectAllAct;
117                 QAction * printPreviewAct;
118
119                 std::vector<void *> clipboard;
120
121         // Class variables
122         public:
123                 static DrawingView * drawing;
124 };
125
126 #endif  // __APPLICATIONWINDOW_H__
127