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