aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmltooling/qmldbg_preview/qqmlpreviewposition.cpp
diff options
context:
space:
mode:
authorKari Oikarinen <kari.oikarinen@qt.io>2020-01-15 19:08:34 +0200
committerKari Oikarinen <kari.oikarinen@qt.io>2020-01-15 19:08:34 +0200
commit51a158929b55dffbdfb757da8bd6a2cd181906c6 (patch)
treed887ef986f357614624d65277f94d740c410be21 /src/plugins/qmltooling/qmldbg_preview/qqmlpreviewposition.cpp
parent3a06d02197179240b8ea589534dc3416c75fc0f2 (diff)
parent3f8bcced6790059c279430ff34903c16bea25a98 (diff)
Merge 5.14 into 5.14.1v5.14.1
Diffstat (limited to 'src/plugins/qmltooling/qmldbg_preview/qqmlpreviewposition.cpp')
-rw-r--r--src/plugins/qmltooling/qmldbg_preview/qqmlpreviewposition.cpp17
1 files changed, 11 insertions, 6 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");
}
}