src/mainwindow.h

Sun, 03 Nov 2019 18:09:47 +0200

author
Teemu Piippo <teemu@hecknology.net>
date
Sun, 03 Nov 2019 18:09:47 +0200
changeset 13
6e838748867b
parent 9
8b9780700b5e
child 16
aeb5f203b3eb
permissions
-rw-r--r--

renamings

0
f9f4d4d6f162 initial commit
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
1 #pragma once
f9f4d4d6f162 initial commit
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
2 #include <QMainWindow>
6
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
3 #include <QTranslator>
7
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
4 #include <QSettings>
3
55a55a9ec2c2 Added lots of code
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
5 #include <memory>
55a55a9ec2c2 Added lots of code
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
6 #include <vector>
5
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
7 #include "documentmanager.h"
7
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
8 #include "libraries.h"
0
f9f4d4d6f162 initial commit
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
9
f9f4d4d6f162 initial commit
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
10 class MainWindow : public QMainWindow
f9f4d4d6f162 initial commit
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
11 {
3
55a55a9ec2c2 Added lots of code
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
12 Q_OBJECT
0
f9f4d4d6f162 initial commit
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
13 public:
3
55a55a9ec2c2 Added lots of code
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
14 MainWindow(QWidget *parent = nullptr);
55a55a9ec2c2 Added lots of code
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
15 ~MainWindow();
5
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
16 private slots:
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
17 void newModel();
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
18 void openModel();
9
8b9780700b5e added saving of splitter state and recent files
Teemu Piippo <teemu@hecknology.net>
parents: 8
diff changeset
19 void openModelFromPath(const QString& path);
7
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
20 void runSettingsEditor();
9
8b9780700b5e added saving of splitter state and recent files
Teemu Piippo <teemu@hecknology.net>
parents: 8
diff changeset
21 void handleDocumentSplitterChange();
8b9780700b5e added saving of splitter state and recent files
Teemu Piippo <teemu@hecknology.net>
parents: 8
diff changeset
22 void updateRecentlyOpenedDocumentsMenu();
8b9780700b5e added saving of splitter state and recent files
Teemu Piippo <teemu@hecknology.net>
parents: 8
diff changeset
23 void openRecentFile();
6
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
24 protected:
7
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
25 void changeEvent(QEvent* event) override;
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
26 void closeEvent(QCloseEvent* event) override;
0
f9f4d4d6f162 initial commit
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
27 private:
3
55a55a9ec2c2 Added lots of code
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
28 std::unique_ptr<class Ui_MainWindow> ui;
5
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
29 DocumentManager documents;
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
30 QMap<Model*, QWidget*> modelWidgets;
7
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
31 QString currentLanguage = "en";
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
32 QTranslator translator;
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
33 QSettings settings;
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
34 LibraryManager libraries;
9
8b9780700b5e added saving of splitter state and recent files
Teemu Piippo <teemu@hecknology.net>
parents: 8
diff changeset
35 QByteArray documentSplitterState;
8b9780700b5e added saving of splitter state and recent files
Teemu Piippo <teemu@hecknology.net>
parents: 8
diff changeset
36 static constexpr int maxRecentlyOpenedFiles = 10;
8b9780700b5e added saving of splitter state and recent files
Teemu Piippo <teemu@hecknology.net>
parents: 8
diff changeset
37 QStringList recentlyOpenedFiles;
5
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
38 void updateTitle();
7
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
39 void saveSettings();
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
40 void restoreSettings();
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
41 void changeLanguage(QString localeCode);
9
8b9780700b5e added saving of splitter state and recent files
Teemu Piippo <teemu@hecknology.net>
parents: 8
diff changeset
42 void addRecentlyOpenedFile(const QString& path);
8b9780700b5e added saving of splitter state and recent files
Teemu Piippo <teemu@hecknology.net>
parents: 8
diff changeset
43 void openModelForEditing(const QString& modelName);
6
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
44 static QString pathToTranslation(const QString& localeCode);
0
f9f4d4d6f162 initial commit
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
45 };

mercurial