diff options
author | Marco Bubke <marco.bubke@qt.io> | 2022-07-25 20:16:58 +0200 |
---|---|---|
committer | Marco Bubke <marco.bubke@qt.io> | 2022-08-09 17:52:03 +0000 |
commit | c13e2b89f57350c0c634577aa24ce57464a25eed (patch) | |
tree | 8b83432693f6d7a79061ca067b19d366681d976d /share/qtcreator/qml/qmlpuppet/container/propertyvaluecontainer.cpp | |
parent | fb7c814a3b4c29f31622f7f1df34d5d584ebb1e7 (diff) | |
download | qt-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.cpp | 41 |
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) |