src/mainwindow.h

changeset 201
5d201ee4a9c3
parent 200
ca23936b455b
child 215
34c6e7bc4ee1
equal deleted inserted replaced
200:ca23936b455b 201:5d201ee4a9c3
24 #include "configuration.h" 24 #include "configuration.h"
25 #include "documentmanager.h" 25 #include "documentmanager.h"
26 #include "libraries.h" 26 #include "libraries.h"
27 #include "uiutilities.h" 27 #include "uiutilities.h"
28 #include "ui/canvas.h" 28 #include "ui/canvas.h"
29
30 class EditorTabWidget;
31
32 class MainWindow : public QMainWindow
33 {
34 Q_OBJECT
35 public:
36 MainWindow(QWidget *parent = nullptr);
37 ~MainWindow() override;
38 private Q_SLOTS:
39 void newModel();
40 void openModel();
41 void openModelFromPath(const QString& path);
42 void runSettingsEditor();
43 void handleDocumentSplitterChange();
44 void updateRecentlyOpenedDocumentsMenu();
45 void openRecentFile();
46 void setRenderStyle(gl::RenderStyle renderStyle);
47 Q_SLOT void setDrawAxes(bool drawAxes);
48 void actionSave();
49 void actionSaveAs();
50 void actionClose();
51 void actionDelete();
52 void actionInvert();
53 void handleTabCloseButton(int tabIndex);
54 protected:
55 void changeEvent(QEvent* event) override;
56 void closeEvent(QCloseEvent* event) override;
57 void keyReleaseEvent(QKeyEvent *event) override;
58 private:
59 std::unique_ptr<class Ui_MainWindow> ui;
60 DocumentManager documents;
61 QString currentLanguage = "en";
62 QTranslator translator;
63 Configuration settings;
64 LibraryManager libraries;
65 QByteArray documentSplitterState;
66 uiutilities::KeySequenceMap defaultKeyboardShortcuts;
67 static constexpr int maxRecentlyOpenedFiles = 10;
68 QStringList recentlyOpenedFiles;
69 ldraw::ColorTable colorTable;
70 gl::RenderPreferences renderPreferences;
71 void updateTitle();
72 void updateRenderPreferences();
73 void saveSettings();
74 void restoreStartupSettings();
75 void restoreSettings();
76 void changeLanguage(QString localeCode);
77 void addRecentlyOpenedFile(const QString& path);
78 void openModelForEditing(const ModelId modelId);
79 static QString pathToTranslation(const QString& localeCode);
80 void loadColors();
81 EditorTabWidget *currentDocument();
82 const EditorTabWidget *currentDocument() const;
83 void closeDocument(EditorTabWidget* document);
84 std::optional<ModelId> findCurrentModelId() const;
85 };

mercurial