src/mainwindow.cpp

Sun, 03 Nov 2019 12:17:41 +0200

author
Teemu Piippo <teemu@hecknology.net>
date
Sun, 03 Nov 2019 12:17:41 +0200
changeset 8
44679e468ba9
parent 7
68443f5be176
child 9
8b9780700b5e
permissions
-rw-r--r--

major update with many things

7
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
1 #include <QLabel>
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
2 #include <QVBoxLayout>
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
3 #include <QCloseEvent>
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
4 #include <QFileDialog>
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
5 #include <QMessageBox>
0
f9f4d4d6f162 initial commit
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
6 #include "mainwindow.h"
f9f4d4d6f162 initial commit
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
7 #include "ui_mainwindow.h"
7
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
8 #include "settingseditor/settingseditor.h"
1
51d14b0c68c0 add version
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
9 #include "version.h"
8
44679e468ba9 major update with many things
Teemu Piippo <teemu@hecknology.net>
parents: 7
diff changeset
10 #include "document.h"
0
f9f4d4d6f162 initial commit
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
11
f9f4d4d6f162 initial commit
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
12 MainWindow::MainWindow(QWidget *parent) :
3
55a55a9ec2c2 Added lots of code
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
13 QMainWindow{parent},
5
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
14 ui{std::make_unique<Ui_MainWindow>()},
7
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
15 documents{this},
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
16 settings{},
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
17 libraries{this}
0
f9f4d4d6f162 initial commit
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
18 {
6
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
19 this->ui->setupUi(this);
5
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
20 connect(ui->actionNew, &QAction::triggered, this, &MainWindow::newModel);
6
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
21 connect(ui->actionOpen, &QAction::triggered, this, &MainWindow::openModel);
3
55a55a9ec2c2 Added lots of code
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
22 connect(ui->actionQuit, &QAction::triggered, this, &QMainWindow::close);
7
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
23 connect(ui->actionSettingsEditor, &QAction::triggered, this, &MainWindow::runSettingsEditor);
6
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
24 this->updateTitle();
7
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
25 this->restoreSettings();
5
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
26 }
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
27
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
28 MainWindow::~MainWindow()
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
29 {
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
30 }
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
31
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
32 void MainWindow::newModel()
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
33 {
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
34 documents.newModel();
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
35 this->updateTabs();
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
36 }
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
37
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
38 void MainWindow::openModel()
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
39 {
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
40 const QString path = QFileDialog::getOpenFileName(
7
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
41 this,
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
42 tr("Open model"),
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
43 "",
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
44 tr("LDraw models (*.ldr *.dat)"));
5
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
45 if (not path.isEmpty())
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
46 {
8
44679e468ba9 major update with many things
Teemu Piippo <teemu@hecknology.net>
parents: 7
diff changeset
47 QString errorString;
44679e468ba9 major update with many things
Teemu Piippo <teemu@hecknology.net>
parents: 7
diff changeset
48 QTextStream errorStream{&errorString};
44679e468ba9 major update with many things
Teemu Piippo <teemu@hecknology.net>
parents: 7
diff changeset
49 QString modelName = this->documents.openModel(path, errorStream);
44679e468ba9 major update with many things
Teemu Piippo <teemu@hecknology.net>
parents: 7
diff changeset
50 if (not modelName.isEmpty())
5
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
51 {
8
44679e468ba9 major update with many things
Teemu Piippo <teemu@hecknology.net>
parents: 7
diff changeset
52 Document* document = new Document{this->documents.findModelByName(modelName)};
44679e468ba9 major update with many things
Teemu Piippo <teemu@hecknology.net>
parents: 7
diff changeset
53 this->ui->tabs->addTab(document, modelName);
5
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
54 }
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
55 else
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
56 {
8
44679e468ba9 major update with many things
Teemu Piippo <teemu@hecknology.net>
parents: 7
diff changeset
57 const QString errorMessage = utility::format(
7
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
58 tr("Could not open %1: %2"),
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
59 path,
8
44679e468ba9 major update with many things
Teemu Piippo <teemu@hecknology.net>
parents: 7
diff changeset
60 errorString);
44679e468ba9 major update with many things
Teemu Piippo <teemu@hecknology.net>
parents: 7
diff changeset
61 QMessageBox::critical(this, tr("Problem opening file"), errorMessage);
5
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
62 }
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
63 }
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
64 }
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
65
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
66 /**
6
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
67 * @brief Changes the application language to the specified language
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
68 * @param localeCode Code of the locale to translate to
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
69 */
7
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
70 void MainWindow::changeLanguage(QString localeCode)
6
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
71 {
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
72 if (not localeCode.isEmpty() and localeCode != this->currentLanguage)
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
73 {
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
74 this->currentLanguage = localeCode;
7
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
75 if (localeCode == "system")
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
76 {
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
77 localeCode = QLocale::system().name();
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
78 }
6
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
79 QLocale::setDefault({localeCode});
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
80 qApp->removeTranslator(&this->translator);
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
81 const bool loadSuccessful = this->translator.load(pathToTranslation(localeCode));
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
82 if (loadSuccessful)
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
83 {
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
84 qApp->installTranslator(&this->translator);
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
85 }
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
86 }
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
87 }
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
88
7
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
89 void MainWindow::runSettingsEditor()
6
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
90 {
7
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
91 SettingsEditor settingsEditor{&this->settings, this};
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
92 const int result = settingsEditor.exec();
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
93 if (result == QDialog::Accepted)
6
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
94 {
7
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
95 this->restoreSettings();
6
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
96 }
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
97 }
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
98
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
99 void MainWindow::changeEvent(QEvent* event)
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
100 {
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
101 if (event != nullptr)
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
102 {
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
103 switch (event->type())
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
104 {
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
105 case QEvent::LanguageChange:
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
106 this->ui->retranslateUi(this);
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
107 break;
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
108 default:
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
109 break;
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
110 }
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
111 }
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
112 QMainWindow::changeEvent(event);
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
113 }
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
114
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
115 /**
7
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
116 * @brief Handles closing the main window
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
117 * @param event Event information
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
118 */
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
119 void MainWindow::closeEvent(QCloseEvent* event)
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
120 {
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
121 saveSettings();
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
122 event->accept();
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
123 }
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
124
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
125 /**
5
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
126 * @brief Creates a new tab widget for the specified model.
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
127 * @param model Model to get a new tab widget for
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
128 * @return widget
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
129 */
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
130 QWidget* MainWindow::createWidgetForModel(Model* model)
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
131 {
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
132 Q_UNUSED(model);
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
133 QWidget* widget = new QWidget(ui->tabs);
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
134 QLabel* label = new QLabel("asdf", widget);
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
135 QVBoxLayout* layout = new QVBoxLayout;
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
136 layout->addWidget(label);
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
137 widget->setLayout(layout);
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
138 return widget;
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
139 }
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
140
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
141 /**
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
142 * @brief Gets a tab widget for the specified model. If it does not exist,
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
143 * it will be created.
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
144 * @param model Model to get a tab widget for
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
145 * @return widget
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
146 */
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
147 QWidget* MainWindow::getWidgetForModel(Model* model)
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
148 {
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
149 QWidget* widget = this->modelWidgets.value(model);
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
150 if (widget == nullptr)
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
151 {
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
152 QWidget* const new_widget = createWidgetForModel(model);
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
153 this->modelWidgets[model] = new_widget;
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
154 return new_widget;
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
155 }
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
156 else
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
157 {
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
158 return widget;
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
159 }
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
160 }
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
161
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
162 /**
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
163 * @brief Updates the tab widget
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
164 */
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
165 void MainWindow::updateTabs()
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
166 {
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
167
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
168 }
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
169
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
170 /**
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
171 * @brief Updates the title of the main window so to contain the app's name
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
172 * and version as well as the open document name.
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
173 */
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
174 void MainWindow::updateTitle()
Teemu Piippo <teemu@hecknology.net>
parents: 3
diff changeset
175 {
1
51d14b0c68c0 add version
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
176 QString title = ::appName;
51d14b0c68c0 add version
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
177 title += " ";
51d14b0c68c0 add version
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
178 title += fullVersionString();
51d14b0c68c0 add version
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
179 setWindowTitle(title);
0
f9f4d4d6f162 initial commit
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
180 }
6
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
181
7
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
182 /**
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
183 * @brief Stores the settings of the main window, storing geometry, etc
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
184 */
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
185 void MainWindow::saveSettings()
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
186 {
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
187 this->settings.setValue("mainwindow/geometry", this->saveGeometry());
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
188 this->libraries.storeToSettings(&this->settings);
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
189 }
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
190
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
191 /**
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
192 * @brief Restores saved settings relating to the main window
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
193 */
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
194 void MainWindow::restoreSettings()
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
195 {
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
196 this->restoreGeometry(this->settings.value("mainwindow/geometry").toByteArray());
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
197 const QString systemLocale = QLocale::system().name();
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
198 const QVariant defaultLocale = this->settings.value("locale", systemLocale);
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
199 changeLanguage(defaultLocale.toString());
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
200 this->libraries.restoreFromSettings(&this->settings);
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
201 }
68443f5be176 added the settings editor
Teemu Piippo <teemu@hecknology.net>
parents: 6
diff changeset
202
6
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
203 QString MainWindow::pathToTranslation(const QString& localeCode)
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
204 {
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
205 QDir dir {":/locale"};
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
206 return dir.filePath(localeCode + ".qm");
73e448b2943d language support
Teemu Piippo <teemu@hecknology.net>
parents: 5
diff changeset
207 }

mercurial