summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-08-04 07:32:12 -0400
committerisanae <14251494+isanae@users.noreply.github.com>2019-08-04 07:32:12 -0400
commit89415ca5c3903ced870d3bf5698dfa0e53122520 (patch)
treeab74f363a8ef8f7cedd9c63a9b0699d4fce75af1 /src
parent4c6ccb38459152089d2d964f842c349b19fdb56a (diff)
moved geometry handling to PreviewDialog
fixed dialogs not having a parent
Diffstat (limited to 'src')
-rw-r--r--src/mainwindow.h1
-rw-r--r--src/organizercore.cpp23
-rw-r--r--src/previewdialog.cpp16
-rw-r--r--src/previewdialog.h4
-rw-r--r--src/settings.cpp10
-rw-r--r--src/settings.h3
6 files changed, 36 insertions, 21 deletions
diff --git a/src/mainwindow.h b/src/mainwindow.h
index 46f04784..7460019d 100644
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -83,7 +83,6 @@ class QProgressDialog;
class QTranslator;
class QTreeWidgetItem;
class QUrl;
-class QSettings;
class QWidget;
#ifndef Q_MOC_RUN
diff --git a/src/organizercore.cpp b/src/organizercore.cpp
index a64d93b4..2d11dafd 100644
--- a/src/organizercore.cpp
+++ b/src/organizercore.cpp
@@ -1297,7 +1297,8 @@ bool OrganizerCore::previewFileWithAlternatives(
}
// set up preview dialog
- PreviewDialog preview(fileName);
+ PreviewDialog preview(fileName, parent);
+
auto addFunc = [&](int originId) {
FilesOrigin &origin = directoryStructure()->getOriginByID(originId);
QString filePath = QDir::fromNativeSeparators(ToQString(origin.getPath())) + "/" + fileName;
@@ -1352,16 +1353,7 @@ bool OrganizerCore::previewFileWithAlternatives(
}
if (preview.numVariants() > 0) {
- QSettings &s = settings().directInterface();
- QString key = QString("geometry/%1").arg(preview.objectName());
- if (s.contains(key)) {
- preview.restoreGeometry(s.value(key).toByteArray());
- }
-
preview.exec();
-
- s.setValue(key, preview.saveGeometry());
-
return true;
}
else {
@@ -1381,7 +1373,7 @@ bool OrganizerCore::previewFile(
return false;
}
- PreviewDialog preview(path);
+ PreviewDialog preview(path, parent);
QWidget *wid = m_PluginContainer->previewGenerator().genPreview(path);
if (wid == nullptr) {
@@ -1390,17 +1382,8 @@ bool OrganizerCore::previewFile(
}
preview.addVariant(originName, wid);
-
- QSettings &s = settings().directInterface();
- QString key = QString("geometry/%1").arg(preview.objectName());
- if (s.contains(key)) {
- preview.restoreGeometry(s.value(key).toByteArray());
- }
-
preview.exec();
- s.setValue(key, preview.saveGeometry());
-
return true;
}
diff --git a/src/previewdialog.cpp b/src/previewdialog.cpp
index de33cdd0..06dcd674 100644
--- a/src/previewdialog.cpp
+++ b/src/previewdialog.cpp
@@ -1,5 +1,6 @@
#include "previewdialog.h"
#include "ui_previewdialog.h"
+#include "settings.h"
#include <QFileInfo>
PreviewDialog::PreviewDialog(const QString &fileName, QWidget *parent) :
@@ -17,6 +18,21 @@ PreviewDialog::~PreviewDialog()
delete ui;
}
+int PreviewDialog::exec()
+{
+ auto& settings = Settings::instance();
+
+ if (auto v=settings.geometry().getPreviewDialog()) {
+ restoreGeometry(*v);
+ }
+
+ const int r = QDialog::exec();
+
+ settings.geometry().setPreviewDialog(saveGeometry());
+
+ return r;
+}
+
void PreviewDialog::addVariant(const QString &modName, QWidget *widget)
{
widget->setProperty("modName", modName);
diff --git a/src/previewdialog.h b/src/previewdialog.h
index 0011bc50..9525f127 100644
--- a/src/previewdialog.h
+++ b/src/previewdialog.h
@@ -15,6 +15,10 @@ public:
explicit PreviewDialog(const QString &fileName, QWidget *parent = 0);
~PreviewDialog();
+ // also saves and restores geometry
+ //
+ int exec() override;
+
void addVariant(const QString &modName, QWidget *widget);
int numVariants() const;
diff --git a/src/settings.cpp b/src/settings.cpp
index d9440aa4..44aa56ba 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -957,6 +957,16 @@ void GeometrySettings::setCategoriesDialog(const QByteArray& v)
m_Settings.setValue("geometry/CategoriesDialog", v);
}
+std::optional<QByteArray> GeometrySettings::getPreviewDialog() const
+{
+ return getOptional<QByteArray>(m_Settings, "geometry/PreviewDialog");
+}
+
+void GeometrySettings::setPreviewDialog(const QByteArray& v)
+{
+ m_Settings.setValue("geometry/PreviewDialog", v);
+}
+
std::optional<QByteArray> GeometrySettings::getPluginListHeader() const
{
return getOptional<QByteArray>(m_Settings, "geometry/espList");
diff --git a/src/settings.h b/src/settings.h
index 110cfa76..615cdcbe 100644
--- a/src/settings.h
+++ b/src/settings.h
@@ -70,6 +70,9 @@ public:
std::optional<QByteArray> getCategoriesDialog() const;
void setCategoriesDialog(const QByteArray& v);
+ std::optional<QByteArray> getPreviewDialog() const;
+ void setPreviewDialog(const QByteArray& v);
+
std::optional<QByteArray> getPluginListHeader() const;
void setPluginListHeader(const QByteArray& v) const;