summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/editexecutablesdialog.cpp14
-rw-r--r--src/editexecutablesdialog.h4
-rw-r--r--src/mainwindow.cpp9
-rw-r--r--src/settings.cpp10
-rw-r--r--src/settings.h2
5 files changed, 31 insertions, 8 deletions
diff --git a/src/editexecutablesdialog.cpp b/src/editexecutablesdialog.cpp
index 3ec3d64f..9c5ae44a 100644
--- a/src/editexecutablesdialog.cpp
+++ b/src/editexecutablesdialog.cpp
@@ -65,6 +65,20 @@ EditExecutablesDialog::EditExecutablesDialog(OrganizerCore& oc, QWidget* parent)
EditExecutablesDialog::~EditExecutablesDialog() = default;
+int EditExecutablesDialog::exec()
+{
+ auto& settings = m_organizerCore.settings();
+
+ if (auto v=settings.geometry().getExecutablesDialog()) {
+ restoreGeometry(*v);
+ }
+
+ const int r = QDialog::exec();
+
+ settings.geometry().setExecutablesDialog(saveGeometry());
+
+ return r;
+}
void EditExecutablesDialog::loadCustomOverwrites()
{
diff --git a/src/editexecutablesdialog.h b/src/editexecutablesdialog.h
index 9715489e..494f0651 100644
--- a/src/editexecutablesdialog.h
+++ b/src/editexecutablesdialog.h
@@ -151,6 +151,10 @@ public:
~EditExecutablesDialog();
+ // also saves and restores geometry
+ //
+ int exec() override;
+
ExecutablesList getExecutablesList() const;
const CustomOverwrites& getCustomOverwrites() const;
const ForcedLibraries& getForcedLibraries() const;
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 0618f949..7ef0c9b9 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -2480,21 +2480,14 @@ bool MainWindow::modifyExecutablesDialog()
EditExecutablesDialog dialog(m_OrganizerCore, this);
- QSettings &settings = m_OrganizerCore.settings().directInterface();
- QString key = QString("geometry/%1").arg(dialog.objectName());
-
- if (settings.contains(key)) {
- dialog.restoreGeometry(settings.value(key).toByteArray());
- }
-
result = (dialog.exec() == QDialog::Accepted);
- settings.setValue(key, dialog.saveGeometry());
refreshExecutablesList();
updatePinnedExecutables();
} catch (const std::exception &e) {
reportError(e.what());
}
+
return result;
}
diff --git a/src/settings.cpp b/src/settings.cpp
index 35be1298..834bd1d8 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -856,6 +856,16 @@ std::optional<bool> GeometrySettings::getFiltersVisible() const
return getOptional<bool>(m_Settings, "filters_visible");
}
+std::optional<QByteArray> GeometrySettings::getExecutablesDialog() const
+{
+ return getOptional<QByteArray>(m_Settings, "geometry/EditExecutablesDialog");
+}
+
+void GeometrySettings::setExecutablesDialog(const QByteArray& v)
+{
+ m_Settings.setValue("geometry/EditExecutablesDialog", v);
+}
+
std::optional<int> GeometrySettings::getMainWindowMonitor() const
{
return getOptional<int>(m_Settings, "window_monitor");
diff --git a/src/settings.h b/src/settings.h
index bf66c0dd..0cdccd87 100644
--- a/src/settings.h
+++ b/src/settings.h
@@ -45,6 +45,8 @@ public:
std::optional<bool> getStatusbarVisible() const;
std::optional<QByteArray> getMainSplitterState() const;
std::optional<bool> getFiltersVisible() const;
+ std::optional<QByteArray> getExecutablesDialog() const;
+ void setExecutablesDialog(const QByteArray& v);
std::optional<int> getMainWindowMonitor() const;
void setDockSize(const QString& name, int size);