forked from qt-creator/qt-creator
QmlDesigner: Extend captured data
Change-Id: I780815e6f42be4f3aceb1d784a685cc330572832 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
@@ -29,11 +29,41 @@
|
||||
|
||||
#include "imagecontainer.h"
|
||||
|
||||
#include <utils/smallstringio.h>
|
||||
|
||||
namespace QmlDesigner {
|
||||
|
||||
class CapturedDataCommand
|
||||
{
|
||||
public:
|
||||
struct Property
|
||||
{
|
||||
Property() = default;
|
||||
Property(QString key, QVariant value)
|
||||
: key(std::move(key))
|
||||
, value(std::move(value))
|
||||
{}
|
||||
|
||||
friend QDataStream &operator<<(QDataStream &out, const Property &property)
|
||||
{
|
||||
out << property.key;
|
||||
out << property.value;
|
||||
|
||||
return out;
|
||||
}
|
||||
|
||||
friend QDataStream &operator>>(QDataStream &in, Property &property)
|
||||
{
|
||||
in >> property.key;
|
||||
in >> property.value;
|
||||
|
||||
return in;
|
||||
}
|
||||
|
||||
QString key;
|
||||
QVariant value;
|
||||
};
|
||||
|
||||
struct NodeData
|
||||
{
|
||||
friend QDataStream &operator<<(QDataStream &out, const NodeData &data)
|
||||
@@ -41,7 +71,7 @@ public:
|
||||
out << data.nodeId;
|
||||
out << data.contentRect;
|
||||
out << data.sceneTransform;
|
||||
out << data.text;
|
||||
out << data.properties;
|
||||
|
||||
return out;
|
||||
}
|
||||
@@ -51,7 +81,7 @@ public:
|
||||
in >> data.nodeId;
|
||||
in >> data.contentRect;
|
||||
in >> data.sceneTransform;
|
||||
in >> data.text;
|
||||
in >> data.properties;
|
||||
|
||||
return in;
|
||||
}
|
||||
@@ -59,7 +89,7 @@ public:
|
||||
qint32 nodeId = -1;
|
||||
QRectF contentRect;
|
||||
QTransform sceneTransform;
|
||||
QString text;
|
||||
std::vector<Property> properties;
|
||||
};
|
||||
|
||||
struct StateData
|
||||
@@ -81,7 +111,8 @@ public:
|
||||
}
|
||||
|
||||
ImageContainer image;
|
||||
QVector<NodeData> nodeData;
|
||||
std::vector<NodeData> nodeData;
|
||||
qint32 nodeId = -1;
|
||||
};
|
||||
|
||||
friend QDataStream &operator<<(QDataStream &out, const CapturedDataCommand &command)
|
||||
|
||||
+10
-8
@@ -56,17 +56,19 @@ CapturedDataCommand::StateData collectStateData(ServerNodeInstance rootNodeInsta
|
||||
stateData.image = ImageContainer(stateInstanceId,
|
||||
QmlDesigner::renderPreviewImage(rootNodeInstance),
|
||||
stateInstanceId);
|
||||
stateData.nodeId = stateInstanceId;
|
||||
|
||||
for (const ServerNodeInstance &instance : nodeInstances) {
|
||||
CapturedDataCommand::NodeData nodeData;
|
||||
|
||||
nodeData.nodeId = instance.instanceId();
|
||||
nodeData.contentRect = instance.contentItemBoundingRect();
|
||||
nodeData.sceneTransform = instance.sceneTransform();
|
||||
auto textProperty = instance.property("text");
|
||||
if (!textProperty.isNull() && instance.holdsGraphical()) {
|
||||
CapturedDataCommand::NodeData nodeData;
|
||||
nodeData.nodeId = instance.instanceId();
|
||||
nodeData.contentRect = instance.contentItemBoundingRect();
|
||||
nodeData.sceneTransform = instance.sceneTransform();
|
||||
nodeData.text = textProperty.toString();
|
||||
stateData.nodeData.push_back(std::move(nodeData));
|
||||
}
|
||||
if (!textProperty.isNull() && instance.holdsGraphical())
|
||||
nodeData.properties.emplace_back(QString{"text"}, textProperty.toString());
|
||||
|
||||
stateData.nodeData.push_back(std::move(nodeData));
|
||||
}
|
||||
|
||||
return stateData;
|
||||
|
||||
Reference in New Issue
Block a user