diff options
| author | isanae <14251494+isanae@users.noreply.github.com> | 2019-08-04 07:32:12 -0400 |
|---|---|---|
| committer | isanae <14251494+isanae@users.noreply.github.com> | 2019-08-04 07:32:12 -0400 |
| commit | 89415ca5c3903ced870d3bf5698dfa0e53122520 (patch) | |
| tree | ab74f363a8ef8f7cedd9c63a9b0699d4fce75af1 /src | |
| parent | 4c6ccb38459152089d2d964f842c349b19fdb56a (diff) | |
moved geometry handling to PreviewDialog
fixed dialogs not having a parent
Diffstat (limited to 'src')
| -rw-r--r-- | src/mainwindow.h | 1 | ||||
| -rw-r--r-- | src/organizercore.cpp | 23 | ||||
| -rw-r--r-- | src/previewdialog.cpp | 16 | ||||
| -rw-r--r-- | src/previewdialog.h | 4 | ||||
| -rw-r--r-- | src/settings.cpp | 10 | ||||
| -rw-r--r-- | src/settings.h | 3 |
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; |
