diff options
author | Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> | 2014-12-16 09:09:43 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> | 2014-12-16 11:53:45 +0100 |
commit | f8e26598e9d4071df74c1c5d9575e8e7e259009b (patch) | |
tree | b642b093308a665769d9a35a322bdd98391323ce | |
parent | d033d6782dcece562132af55867a265623cd0676 (diff) |
Designer: Use QWidget::save/restoreGeometry() to position resource dialogs.
Using QRect as was done before might cause the dialogs to be
restored out of screen if a screen is removed from a multimonitor
setup.
Task-number: QTBUG-43374
Change-Id: I48bb6e747da8042a8433d26e5e3bed267126ed3b
Reviewed-by: Jarek Kobus <jaroslaw.kobus@theqtcompany.com>
-rw-r--r-- | src/designer/src/lib/shared/qtresourceeditordialog.cpp | 7 | ||||
-rw-r--r-- | src/designer/src/lib/shared/qtresourceview.cpp | 7 |
2 files changed, 8 insertions, 6 deletions
diff --git a/src/designer/src/lib/shared/qtresourceeditordialog.cpp b/src/designer/src/lib/shared/qtresourceeditordialog.cpp index 6d44f3f33..a6d9a9866 100644 --- a/src/designer/src/lib/shared/qtresourceeditordialog.cpp +++ b/src/designer/src/lib/shared/qtresourceeditordialog.cpp @@ -2063,8 +2063,9 @@ QtResourceEditorDialog::QtResourceEditorDialog(QDesignerFormEditorInterface *cor settings->beginGroup(QLatin1String(QrcDialogC)); d_ptr->m_ui.splitter->restoreState(settings->value(QLatin1String(SplitterPosition)).toByteArray()); - if (settings->contains(QLatin1String(Geometry))) - setGeometry(settings->value(QLatin1String(Geometry)).toRect()); + const QVariant geometry = settings->value(QLatin1String(Geometry)); + if (geometry.type() == QVariant::ByteArray) // Used to be a QRect up until 5.4.0, QTBUG-43374 + restoreGeometry(geometry.toByteArray()); settings->endGroup(); } @@ -2075,7 +2076,7 @@ QtResourceEditorDialog::~QtResourceEditorDialog() settings->beginGroup(QLatin1String(QrcDialogC)); settings->setValue(QLatin1String(SplitterPosition), d_ptr->m_ui.splitter->saveState()); - settings->setValue(QLatin1String(Geometry), geometry()); + settings->setValue(QLatin1String(Geometry), saveGeometry()); settings->endGroup(); } diff --git a/src/designer/src/lib/shared/qtresourceview.cpp b/src/designer/src/lib/shared/qtresourceview.cpp index 277371b76..4a7159a4e 100644 --- a/src/designer/src/lib/shared/qtresourceview.cpp +++ b/src/designer/src/lib/shared/qtresourceview.cpp @@ -870,8 +870,9 @@ QtResourceViewDialog::QtResourceViewDialog(QDesignerFormEditorInterface *core, Q QDesignerSettingsInterface *settings = core->settingsManager(); settings->beginGroup(QLatin1String(ResourceViewDialogC)); - if (settings->contains(QLatin1String(Geometry))) - setGeometry(settings->value(QLatin1String(Geometry)).toRect()); + const QVariant geometry = settings->value(QLatin1String(Geometry)); + if (geometry.type() == QVariant::ByteArray) // Used to be a QRect up until 5.4.0, QTBUG-43374. + restoreGeometry(geometry.toByteArray()); settings->endGroup(); } @@ -881,7 +882,7 @@ QtResourceViewDialog::~QtResourceViewDialog() QDesignerSettingsInterface *settings = d_ptr->m_core->settingsManager(); settings->beginGroup(QLatin1String(ResourceViewDialogC)); - settings->setValue(QLatin1String(Geometry), geometry()); + settings->setValue(QLatin1String(Geometry), saveGeometry()); settings->endGroup(); } |