diff --git a/src/libs/qmlpuppetcommunication/container/propertyvaluecontainer.cpp b/src/libs/qmlpuppetcommunication/container/propertyvaluecontainer.cpp index 857fbb1e8c2..260988b7b51 100644 --- a/src/libs/qmlpuppetcommunication/container/propertyvaluecontainer.cpp +++ b/src/libs/qmlpuppetcommunication/container/propertyvaluecontainer.cpp @@ -13,12 +13,12 @@ PropertyValueContainer::PropertyValueContainer() } PropertyValueContainer::PropertyValueContainer(qint32 instanceId, - const PropertyName &name, + PropertyNameView name, const QVariant &value, const TypeName &dynamicTypeName, AuxiliaryDataType auxiliaryDataType) : m_instanceId(instanceId) - , m_name(name) + , m_name(name.toByteArray()) , m_value(value) , m_dynamicTypeName(dynamicTypeName) , m_auxiliaryDataType{auxiliaryDataType} diff --git a/src/libs/qmlpuppetcommunication/container/propertyvaluecontainer.h b/src/libs/qmlpuppetcommunication/container/propertyvaluecontainer.h index b82aa7db36e..5d66c12b656 100644 --- a/src/libs/qmlpuppetcommunication/container/propertyvaluecontainer.h +++ b/src/libs/qmlpuppetcommunication/container/propertyvaluecontainer.h @@ -11,13 +11,14 @@ #include "nodeinstanceglobal.h" namespace QmlDesigner { +using PropertyNameView = QByteArrayView; class PropertyValueContainer { public: PropertyValueContainer(); PropertyValueContainer(qint32 instanceId, - const PropertyName &name, + PropertyNameView name, const QVariant &value, const TypeName &dynamicTypeName, AuxiliaryDataType auxiliaryDataType = AuxiliaryDataType::None); diff --git a/src/libs/utils/smallstringview.h b/src/libs/utils/smallstringview.h index 5a272178196..09666934721 100644 --- a/src/libs/utils/smallstringview.h +++ b/src/libs/utils/smallstringview.h @@ -72,12 +72,13 @@ public: constexpr_string operator std::string() const { return std::string(data(), size()); } - explicit operator QString() const - { - return QString::fromUtf8(data(), int(size())); - } + explicit operator QString() const { return QString::fromUtf8(data(), int(size())); } - explicit operator QByteArray() const { return QByteArray(data(), int(size())); } + operator QByteArrayView() const { return QByteArrayView(data(), Utils::ssize(*this)); } + + explicit operator QByteArray() const { return QByteArrayView{*this}.toByteArray(); } + + QByteArray toByteArray() const { return QByteArrayView{*this}.toByteArray(); } #if QT_VERSION >= QT_VERSION_CHECK(6, 4, 0) explicit operator QLatin1StringView() const noexcept diff --git a/src/plugins/effectcomposer/effectcomposerwidget.cpp b/src/plugins/effectcomposer/effectcomposerwidget.cpp index dd1d5e926d2..48bb5e410e1 100644 --- a/src/plugins/effectcomposer/effectcomposerwidget.cpp +++ b/src/plugins/effectcomposer/effectcomposerwidget.cpp @@ -10,8 +10,6 @@ #include "effectutils.h" #include "propertyhandler.h" -//#include "qmldesigner/designercore/imagecache/midsizeimagecacheprovider.h" -#include "theme.h" #include #include @@ -20,6 +18,7 @@ #include #include #include +#include #include #include diff --git a/src/plugins/qmldesigner/components/debugview/debugview.cpp b/src/plugins/qmldesigner/components/debugview/debugview.cpp index b6f61c9e2d4..ab02279e3e1 100644 --- a/src/plugins/qmldesigner/components/debugview/debugview.cpp +++ b/src/plugins/qmldesigner/components/debugview/debugview.cpp @@ -396,7 +396,7 @@ void DebugView::auxiliaryDataChanged(const ModelNode &node, message << node; message << key.type; - message << QByteArray{key.name}; + message << key.name.toByteArray(); message << data.toString(); log("::auxiliaryDataChanged:", string); diff --git a/src/plugins/qmldesigner/components/materialeditor/materialeditorqmlbackend.cpp b/src/plugins/qmldesigner/components/materialeditor/materialeditorqmlbackend.cpp index 8ed07603af1..2ba6b6b5376 100644 --- a/src/plugins/qmldesigner/components/materialeditor/materialeditorqmlbackend.cpp +++ b/src/plugins/qmldesigner/components/materialeditor/materialeditorqmlbackend.cpp @@ -281,7 +281,7 @@ void MaterialEditorQmlBackend::emitSelectionChanged() void MaterialEditorQmlBackend::setValueforAuxiliaryProperties(const QmlObjectNode &qmlObjectNode, AuxiliaryDataKeyView key) { - const PropertyName propertyName = auxNamePostFix(PropertyName(key.name)); + const PropertyName propertyName = auxNamePostFix(key.name.toByteArray()); setValue(qmlObjectNode, propertyName, qmlObjectNode.modelNode().auxiliaryDataWithDefault(key)); } diff --git a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorqmlbackend.cpp b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorqmlbackend.cpp index 2631246fb57..b4f0e3ea2f3 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorqmlbackend.cpp +++ b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorqmlbackend.cpp @@ -126,7 +126,7 @@ void PropertyEditorQmlBackend::setupPropertyEditorValue(const PropertyName &name namespace { PropertyName auxNamePostFix(Utils::SmallStringView propertyName) { - return PropertyName(propertyName) + "__AUX"; + return PropertyNameView(propertyName) + "__AUX"; } QVariant properDefaultAuxiliaryProperties(const QmlObjectNode &qmlObjectNode, diff --git a/src/plugins/qmldesigner/components/textureeditor/textureeditorqmlbackend.cpp b/src/plugins/qmldesigner/components/textureeditor/textureeditorqmlbackend.cpp index 415d943723d..b13d06aa15a 100644 --- a/src/plugins/qmldesigner/components/textureeditor/textureeditorqmlbackend.cpp +++ b/src/plugins/qmldesigner/components/textureeditor/textureeditorqmlbackend.cpp @@ -276,7 +276,7 @@ void TextureEditorQmlBackend::emitSelectionChanged() void TextureEditorQmlBackend::setValueforAuxiliaryProperties(const QmlObjectNode &qmlObjectNode, AuxiliaryDataKeyView key) { - const PropertyName propertyName = auxNamePostFix(PropertyName(key.name)); + const PropertyName propertyName = auxNamePostFix(key.name.toByteArray()); setValue(qmlObjectNode, propertyName, qmlObjectNode.modelNode().auxiliaryDataWithDefault(key)); } diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp index abc821469bf..f43a725d08b 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp @@ -67,6 +67,7 @@ #include #include +#include #include @@ -93,6 +94,7 @@ #include #include #include +#include enum { debug = false @@ -634,10 +636,11 @@ void NodeInstanceView::auxiliaryDataChanged(const ModelNode &node, case AuxiliaryDataType::Document: if ((key == lockedProperty || key == invisibleProperty) && hasInstanceForModelNode(node)) { NodeInstance instance = instanceForModelNode(node); + PropertyValueContainer container{instance.instanceId(), - PropertyName{key.name}, + key.name, value, - TypeName(), + {}, key.type}; m_nodeInstanceServer->changeAuxiliaryValues({{container}}); } @@ -647,7 +650,7 @@ void NodeInstanceView::auxiliaryDataChanged(const ModelNode &node, if (hasInstanceForModelNode(node)) { NodeInstance instance = instanceForModelNode(node); PropertyValueContainer container{instance.instanceId(), - PropertyName{key.name}, + key.name, value, TypeName(), key.type}; @@ -660,13 +663,13 @@ void NodeInstanceView::auxiliaryDataChanged(const ModelNode &node, NodeInstance instance = instanceForModelNode(node); if (value.isValid()) { PropertyValueContainer container{instance.instanceId(), - PropertyName{key.name}, + key.name, value, TypeName(), key.type}; m_nodeInstanceServer->changeAuxiliaryValues({{container}}); } else { - PropertyName name{key.name}; + const PropertyName name = key.name.toByteArray(); if (node.hasVariantProperty(name)) { PropertyValueContainer container(instance.instanceId(), name, diff --git a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp index 502b2675ccc..559c917feff 100644 --- a/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp +++ b/src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp @@ -4347,7 +4347,7 @@ PropertyName PropertyMetaInfo::name() const category(), keyValue("property declaration id", m_id)}; - return PropertyName(Utils::SmallStringView(propertyData().name)); + return propertyData().name.toQByteArray(); } else { return propertyName(); } diff --git a/src/plugins/qmldesigner/designercore/model/internalnode_p.h b/src/plugins/qmldesigner/designercore/model/internalnode_p.h index 0bc0b9ce997..e2d364cb792 100644 --- a/src/plugins/qmldesigner/designercore/model/internalnode_p.h +++ b/src/plugins/qmldesigner/designercore/model/internalnode_p.h @@ -51,12 +51,12 @@ public: using Pointer = std::shared_ptr; using WeakPointer = std::weak_ptr; - explicit InternalNode(TypeName typeName, + explicit InternalNode(TypeNameView typeName, int majorVersion, int minorVersion, qint32 internalId, ModelTracing::Category::FlowTokenType flowTraceToken) - : typeName(std::move(typeName)) + : typeName(typeName.toByteArray()) , majorVersion(majorVersion) , minorVersion(minorVersion) , isValid(true) diff --git a/src/plugins/qmldesigner/designercore/model/model.cpp b/src/plugins/qmldesigner/designercore/model/model.cpp index d61a4275fa1..1adebbfee36 100644 --- a/src/plugins/qmldesigner/designercore/model/model.cpp +++ b/src/plugins/qmldesigner/designercore/model/model.cpp @@ -110,7 +110,7 @@ ModelPrivate::ModelPrivate(Model *model, changeImports(std::move(imports), {}); m_rootInternalNode = createNode( - TypeName{typeName}, -1, -1, {}, {}, {}, ModelNode::NodeWithoutSource, {}, true); + typeName, -1, -1, {}, {}, {}, ModelNode::NodeWithoutSource, {}, true); m_currentStateNode = m_rootInternalNode; m_currentTimelineNode = m_rootInternalNode; @@ -299,7 +299,7 @@ void ModelPrivate::changeNodeType(const InternalNodePointer &node, const TypeNam } } -InternalNodePointer ModelPrivate::createNode(const TypeName &typeName, +InternalNodePointer ModelPrivate::createNode(TypeNameView typeName, int majorVersion, int minorVersion, const QList> &propertyList, diff --git a/src/plugins/qmldesigner/designercore/model/model_p.h b/src/plugins/qmldesigner/designercore/model/model_p.h index 3302eda2cc3..d4ae814c45c 100644 --- a/src/plugins/qmldesigner/designercore/model/model_p.h +++ b/src/plugins/qmldesigner/designercore/model/model_p.h @@ -125,7 +125,7 @@ public: const QUrl &fileUrl() const; void setFileUrl(const QUrl &url); - InternalNodePointer createNode(const TypeName &typeName, + InternalNodePointer createNode(TypeNameView typeName, int majorVersion, int minorVersion, const QList> &propertyList,