aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/qmlpuppetcommunication/container
diff options
context:
space:
mode:
authorAli Kianian <[email protected]>2024-06-06 17:35:25 +0300
committerAli Kianian <[email protected]>2024-06-07 09:23:29 +0000
commit1e3f8afdce3771504b1b8f2e3572fb9f8fa916b6 (patch)
tree4d64587c429d3d730166e8a41d2110ce0eadf282 /src/libs/qmlpuppetcommunication/container
parent79e6c6809b820b6b4f55f4e6d1d1bc085ba13cb5 (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.cpp21
-rw-r--r--src/libs/qmlpuppetcommunication/container/imagecontainer.h3
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);