Physics Simulation & Visualization Tool 0.1
A C++ physics simulation engine with real-time 3D visualization
Loading...
Searching...
No Matches
SettingsDialog.cpp
Go to the documentation of this file.
1#include "SettingsDialog.h"
2#include <QVBoxLayout>
3#include <QTabWidget>
4#include <QDialogButtonBox>
5
6#include "ui/AppSettings.h"
10
12 : QDialog(parent) {
13 setWindowTitle("Settings");
14 resize(300, 200);
15
16 auto* mainLayout = new QVBoxLayout(this);
17 auto* tabWidget = new QTabWidget(this);
18
19 auto* cameraTab = new CameraTab(this);
20 tabWidget->addTab(cameraTab, "Camera");
21 m_tabs.push_back(cameraTab);
22
23 auto* debugTab = new DebugTab(this);
24 tabWidget->addTab(debugTab, "Debug");
25 m_tabs.push_back(debugTab);
26
27 mainLayout->addWidget(tabWidget);
28
29 auto* buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
30 mainLayout->addWidget(buttonBox);
31
32 connect(buttonBox, &QDialogButtonBox::accepted, [this]() {
33 for (auto* tab : m_tabs) {
34 tab->saveSettings();
35 }
36
37 QSettings qSettings;
38 AppSettings::getInstance().save(qSettings);
39 emit settingsSaved();
40 accept();
41 });
42 connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);
43}
static AppSettings & getInstance()
Definition AppSettings.h:11
void save(QSettings &settings) const
void settingsSaved()
SettingsDialog(QWidget *parent=nullptr)