diff options
author | Ali Kianian <[email protected]> | 2024-06-06 17:35:25 +0300 |
---|---|---|
committer | Ali Kianian <[email protected]> | 2024-06-07 09:23:29 +0000 |
commit | 1e3f8afdce3771504b1b8f2e3572fb9f8fa916b6 (patch) | |
tree | 4d64587c429d3d730166e8a41d2110ce0eadf282 /src/libs/qmlpuppetcommunication/container | |
parent | 79e6c6809b820b6b4f55f4e6d1d1bc085ba13cb5 (diff) |
QmlDesigner: Get the material image based on request id
A request id is used for comparing requests instead of image sizes
Returned image sizes was not always the same as requested ones because
of pixelRateRatio.
Fixes: QDS-12961
Change-Id: I2f0ed7ea00047f296872a02958322f3448984f09
Reviewed-by: Mahmoud Badri <[email protected]>
Reviewed-by: Miikka Heikkinen <[email protected]>
Diffstat (limited to 'src/libs/qmlpuppetcommunication/container')
-rw-r--r-- | src/libs/qmlpuppetcommunication/container/imagecontainer.cpp | 21 | ||||
-rw-r--r-- | src/libs/qmlpuppetcommunication/container/imagecontainer.h | 3 |
2 files changed, 20 insertions, 4 deletions
diff --git a/src/libs/qmlpuppetcommunication/container/imagecontainer.cpp b/src/libs/qmlpuppetcommunication/container/imagecontainer.cpp index 7747a9d1188..5cfeb2967bc 100644 --- a/src/libs/qmlpuppetcommunication/container/imagecontainer.cpp +++ b/src/libs/qmlpuppetcommunication/container/imagecontainer.cpp @@ -56,6 +56,11 @@ QRectF ImageContainer::rect() const return m_rect; } +QByteArray ImageContainer::requestId() const +{ + return m_requestId; +} + void ImageContainer::setImage(const QImage &image) { QTC_ASSERT(m_image.isNull(), /**/); @@ -68,6 +73,11 @@ void ImageContainer::setRect(const QRectF &rectangle) m_rect = rectangle; } +void ImageContainer::setRequestId(const QByteArray &newRequestId) +{ + m_requestId = newRequestId; +} + void ImageContainer::removeSharedMemorys(const QVector<qint32> &keyNumberVector) { for (qint32 keyNumber : keyNumberVector) { @@ -151,6 +161,7 @@ QDataStream &operator<<(QDataStream &out, const ImageContainer &container) out << container.instanceId(); out << container.keyNumber(); out << container.rect(); + out << container.requestId(); const QImage image = container.image(); @@ -236,6 +247,7 @@ QDataStream &operator>>(QDataStream &in, ImageContainer &container) in >> container.m_instanceId; in >> container.m_keyNumber; in >> container.m_rect; + in >> container.m_requestId; in >> sharedMemoryIsUsed; if (sharedMemoryIsUsed) { @@ -259,10 +271,11 @@ bool operator <(const ImageContainer &first, const ImageContainer &second) QDebug operator <<(QDebug debug, const ImageContainer &container) { - return debug.nospace() << "ImageContainer(" - << "instanceId: " << container.instanceId() << ", " - << "size: " << container.image().size() << ")"; + debug.nospace() << "ImageContainer(" + << "instanceId: " << container.instanceId() << ", "; + if (!container.requestId().isEmpty()) + debug << "requestId: " << container.requestId() << ", "; + return debug << "size: " << container.image().size() << ")"; } - } // namespace QmlDesigner diff --git a/src/libs/qmlpuppetcommunication/container/imagecontainer.h b/src/libs/qmlpuppetcommunication/container/imagecontainer.h index cc028d45c0f..214cf0f18f7 100644 --- a/src/libs/qmlpuppetcommunication/container/imagecontainer.h +++ b/src/libs/qmlpuppetcommunication/container/imagecontainer.h @@ -23,9 +23,11 @@ public: QImage image() const; qint32 keyNumber() const; QRectF rect() const; + QByteArray requestId() const; void setImage(const QImage &image); void setRect(const QRectF &rectangle); + void setRequestId(const QByteArray &newRequestId); static void removeSharedMemorys(const QVector<qint32> &keyNumberVector); @@ -34,6 +36,7 @@ private: qint32 m_instanceId; qint32 m_keyNumber; QRectF m_rect; + QByteArray m_requestId; }; QDataStream &operator<<(QDataStream &out, const ImageContainer &container); |