diff --git a/src/settings/settingsdialog.cpp b/src/settings/settingsdialog.cpp
index 9cdf9747a..c94b211d0 100644
--- a/src/settings/settingsdialog.cpp
+++ b/src/settings/settingsdialog.cpp
@@ -70,10 +70,10 @@
class QShowEvent;
+const char *SettingsDialog::kSettingsGroup = "SettingsDialog";
+
SettingsItemDelegate::SettingsItemDelegate(QObject *parent)
- : QStyledItemDelegate(parent)
-{
-}
+ : QStyledItemDelegate(parent) {}
QSize SettingsItemDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const {
@@ -149,12 +149,28 @@ SettingsDialog::SettingsDialog(Application *app, QWidget *parent)
ui_->buttonBox->button(QDialogButtonBox::Cancel)->setShortcut(QKeySequence::Close);
+ QSettings s;
+ s.beginGroup(kSettingsGroup);
+ if (s.contains("geometry")) {
+ restoreGeometry(s.value("geometry").toByteArray());
+ }
+ s.endGroup();
+
}
SettingsDialog::~SettingsDialog() {
delete ui_;
}
+void SettingsDialog::SaveGeometry() {
+
+ QSettings s;
+ s.beginGroup(kSettingsGroup);
+ s.setValue("geometry", saveGeometry());
+ s.endGroup();
+
+}
+
QTreeWidgetItem *SettingsDialog::AddCategory(const QString &name) {
QTreeWidgetItem *item = new QTreeWidgetItem;
@@ -216,6 +232,7 @@ void SettingsDialog::Save() {
void SettingsDialog::accept() {
Save();
+ SaveGeometry();
QDialog::accept();
}
@@ -225,6 +242,7 @@ void SettingsDialog::reject() {
for (const PageData &data : pages_.values()) {
data.page_->Cancel();
}
+ SaveGeometry();
QDialog::reject();
}
diff --git a/src/settings/settingsdialog.h b/src/settings/settingsdialog.h
index 024f62cf7..3c446a090 100644
--- a/src/settings/settingsdialog.h
+++ b/src/settings/settingsdialog.h
@@ -66,7 +66,7 @@ public:
class SettingsDialog : public QDialog {
Q_OBJECT
-public:
+ public:
SettingsDialog(Application *app, QWidget *parent = nullptr);
~SettingsDialog();
@@ -111,14 +111,14 @@ public:
void ComboBoxLoadFromSettings(QSettings &s, QComboBox *combobox, QString setting, QString default_value);
-signals:
+ signals:
void NotificationPreview(OSD::Behaviour, QString, QString);
-private slots:
+ private slots:
void CurrentItemChanged(QTreeWidgetItem *item);
void DialogButtonClicked(QAbstractButton *button);
-private:
+ private:
struct PageData {
QTreeWidgetItem *item_;
QScrollArea *scroll_area_;
@@ -130,7 +130,11 @@ private:
void Save();
-private:
+ void SaveGeometry();
+
+ private:
+ static const char *kSettingsGroup;
+
Application *app_;
Player *player_;
EngineBase *engine_;
diff --git a/src/settings/settingsdialog.ui b/src/settings/settingsdialog.ui
index f2b3913f4..b0ff9391c 100644
--- a/src/settings/settingsdialog.ui
+++ b/src/settings/settingsdialog.ui
@@ -17,7 +17,7 @@
:/icons/64x64/strawberry.png:/icons/64x64/strawberry.png
-
+
-
@@ -55,7 +55,7 @@
-
-
+
-