summaryrefslogtreecommitdiff
path: root/share/qtcreator/qml/qmlpuppet/container/propertyvaluecontainer.cpp
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@qt.io>2022-07-25 20:16:58 +0200
committerMarco Bubke <marco.bubke@qt.io>2022-08-09 17:52:03 +0000
commitc13e2b89f57350c0c634577aa24ce57464a25eed (patch)
tree8b83432693f6d7a79061ca067b19d366681d976d /share/qtcreator/qml/qmlpuppet/container/propertyvaluecontainer.cpp
parentfb7c814a3b4c29f31622f7f1df34d5d584ebb1e7 (diff)
downloadqt-creator-c13e2b89f57350c0c634577aa24ce57464a25eed.tar.gz
QmlDesigner: Add type enumeration to auxiliary data
Auxiliary data so far used naming conventions to declare the kind of the data. Now an enumeration is used. The auxiliaryData(...) is returning an optional too so that it is known if a value exists. There is now auxiliaryDataWithDefault(...) which is returning an invalid QVariant instead. The instance cache is now disabled because there is not notification for information changes. So if we get the real data from the node instances there will be no information changes because nothing changed. So the form editor is a strange state of being reset but not all data arrived. Before this patch there were still changes happen because of some side effects that auxiliary properties were sent which were never intended to be sent. If we re-enable the cache we need to send information changes or every view must expect that the information is already there. Task-number: QDS-7338 Change-Id: I0cafd149c53df552c7c8442f1e8ba87f5451dbd1 Reviewed-by: Aleksei German <aleksei.german@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'share/qtcreator/qml/qmlpuppet/container/propertyvaluecontainer.cpp')
-rw-r--r--share/qtcreator/qml/qmlpuppet/container/propertyvaluecontainer.cpp41
1 files changed, 26 insertions, 15 deletions
diff --git a/share/qtcreator/qml/qmlpuppet/container/propertyvaluecontainer.cpp b/share/qtcreator/qml/qmlpuppet/container/propertyvaluecontainer.cpp
index c460bbc712..8500617caa 100644
--- a/share/qtcreator/qml/qmlpuppet/container/propertyvaluecontainer.cpp
+++ b/share/qtcreator/qml/qmlpuppet/container/propertyvaluecontainer.cpp
@@ -34,11 +34,16 @@ PropertyValueContainer::PropertyValueContainer()
{
}
-PropertyValueContainer::PropertyValueContainer(qint32 instanceId, const PropertyName &name, const QVariant &value, const TypeName &dynamicTypeName)
- : m_instanceId(instanceId),
- m_name(name),
- m_value(value),
- m_dynamicTypeName(dynamicTypeName)
+PropertyValueContainer::PropertyValueContainer(qint32 instanceId,
+ const PropertyName &name,
+ const QVariant &value,
+ const TypeName &dynamicTypeName,
+ AuxiliaryDataType auxiliaryDataType)
+ : m_instanceId(instanceId)
+ , m_name(name)
+ , m_value(value)
+ , m_dynamicTypeName(dynamicTypeName)
+ , m_auxiliaryDataType{auxiliaryDataType}
{
}
@@ -90,13 +95,19 @@ bool PropertyValueContainer::isReflected() const
return m_isReflected;
}
+AuxiliaryDataType PropertyValueContainer::auxiliaryDataType() const
+{
+ return m_auxiliaryDataType;
+}
+
QDataStream &operator<<(QDataStream &out, const PropertyValueContainer &container)
{
- out << container.instanceId();
- out << container.name();
- out << container.value();
- out << container.dynamicTypeName();
- out << container.isReflected();
+ out << container.m_instanceId;
+ out << container.m_name;
+ out << container.m_value;
+ out << container.m_dynamicTypeName;
+ out << container.m_isReflected;
+ out << container.m_auxiliaryDataType;
return out;
}
@@ -108,17 +119,17 @@ QDataStream &operator>>(QDataStream &in, PropertyValueContainer &container)
in >> container.m_value;
in >> container.m_dynamicTypeName;
in >> container.m_isReflected;
+ in >> container.m_auxiliaryDataType;
return in;
}
bool operator ==(const PropertyValueContainer &first, const PropertyValueContainer &second)
{
- return first.m_instanceId == second.m_instanceId
- && first.m_name == second.m_name
- && first.m_value == second.m_value
- && first.m_dynamicTypeName == second.m_dynamicTypeName
- && first.m_isReflected == second.m_isReflected;
+ return first.m_instanceId == second.m_instanceId && first.m_name == second.m_name
+ && first.m_value == second.m_value && first.m_dynamicTypeName == second.m_dynamicTypeName
+ && first.m_isReflected == second.m_isReflected
+ && first.m_auxiliaryDataType == second.m_auxiliaryDataType;
}
bool operator <(const PropertyValueContainer &first, const PropertyValueContainer &second)