diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2020-01-20 01:00:12 +0100 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2020-01-20 09:37:57 +0100 |
commit | 67ac9dead884c7558896bdd97e4d3152100dc7ec (patch) | |
tree | 000ef894b1f7d649b293cd08c2d8235f72201f19 /src/plugins/qmltooling | |
parent | e5f7c5f2712957d0e1753c629e4cce86a0e6bdbc (diff) | |
parent | 953e04346773beb5d10c3758a12aae5c82646ae1 (diff) |
Merge remote-tracking branch 'origin/5.14' into 5.15
Conflicts:
src/quick/items/qquickitemview.cpp
Change-Id: Ib9faebdbef5eebb80f4e6aeb5b15b5df7494b157
Diffstat (limited to 'src/plugins/qmltooling')
-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: |