diff options
author | Kari Oikarinen <kari.oikarinen@qt.io> | 2020-01-15 19:08:34 +0200 |
---|---|---|
committer | Kari Oikarinen <kari.oikarinen@qt.io> | 2020-01-15 19:08:34 +0200 |
commit | 51a158929b55dffbdfb757da8bd6a2cd181906c6 (patch) | |
tree | d887ef986f357614624d65277f94d740c410be21 /src/plugins | |
parent | 3a06d02197179240b8ea589534dc3416c75fc0f2 (diff) | |
parent | 3f8bcced6790059c279430ff34903c16bea25a98 (diff) |
Merge 5.14 into 5.14.1v5.14.1
Change-Id: Iefb900b42cc0476e62342724a5f3a480c09ce354
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/qmltooling/qmldbg_preview/qqmlpreviewposition.cpp | 17 | ||||
-rw-r--r-- | src/plugins/qmltooling/qmldbg_preview/qqmlpreviewposition.h | 4 |
2 files changed, 13 insertions, 8 deletions
diff --git a/src/plugins/qmltooling/qmldbg_preview/qqmlpreviewposition.cpp b/src/plugins/qmltooling/qmldbg_preview/qqmlpreviewposition.cpp index d4acd24da5..52e197b1ed 100644 --- a/src/plugins/qmltooling/qmldbg_preview/qqmlpreviewposition.cpp +++ b/src/plugins/qmltooling/qmldbg_preview/qqmlpreviewposition.cpp @@ -51,7 +51,7 @@ static QVector<QQmlPreviewPosition::ScreenData> initScreensData() QVector<QQmlPreviewPosition::ScreenData> screensData; for (QScreen *screen : QGuiApplication::screens()) { - QQmlPreviewPosition::ScreenData sd{screen->name(), screen->size()}; + QQmlPreviewPosition::ScreenData sd{screen->name(), screen->geometry()}; screensData.append(sd); } return screensData; @@ -69,20 +69,20 @@ static QScreen *findScreen(const QString &nameOfScreen) static QDataStream &operator<<(QDataStream &out, const QQmlPreviewPosition::ScreenData &screenData) { out << screenData.name; - out << screenData.size; + out << screenData.rect; return out; } static QDataStream &operator>>(QDataStream &in, QQmlPreviewPosition::ScreenData &screenData) { in >> screenData.name; - in >> screenData.size; + in >> screenData.rect; return in; } bool QQmlPreviewPosition::ScreenData::operator==(const QQmlPreviewPosition::ScreenData &other) const { - return other.size == size && other.name == name; + return other.rect == rect && other.name == name; } QQmlPreviewPosition::QQmlPreviewPosition() @@ -211,8 +211,13 @@ void QQmlPreviewPosition::setPosition(const QQmlPreviewPosition::Position &posit return; if (QScreen *screen = findScreen(position.screenName)) { window->setScreen(screen); - window->setFramePosition(QHighDpiScaling::mapPositionFromNative(position.nativePosition, - screen->handle())); + const auto point = QHighDpiScaling::mapPositionFromNative(position.nativePosition, + screen->handle()); + const QRect geometry(point, window->size()); + if (screen->virtualGeometry().contains(geometry)) + window->setFramePosition(point); + else + qWarning("preview position is out of screen"); } } diff --git a/src/plugins/qmltooling/qmldbg_preview/qqmlpreviewposition.h b/src/plugins/qmltooling/qmldbg_preview/qqmlpreviewposition.h index f403917f8c..9d84170948 100644 --- a/src/plugins/qmltooling/qmldbg_preview/qqmlpreviewposition.h +++ b/src/plugins/qmltooling/qmldbg_preview/qqmlpreviewposition.h @@ -56,7 +56,7 @@ #include <QtCore/qurl.h> #include <QtCore/qtimer.h> #include <QtCore/qsettings.h> -#include <QtCore/qsize.h> +#include <QtCore/qrect.h> #include <QtCore/qdatastream.h> QT_BEGIN_NAMESPACE @@ -70,7 +70,7 @@ public: public: bool operator==(const QQmlPreviewPosition::ScreenData &other) const; QString name; - QSize size; + QRect rect; }; class Position { public: |