From c0813a5ee7a18067bd7e5392c66d1677c6b0c7a8 Mon Sep 17 00:00:00 2001 From: Tim Jenssen Date: Mon, 1 Jul 2024 15:47:58 +0200 Subject: [PATCH] QmlDesigner: Qt 6.8 fixes Task-number: QDS-13175 Change-Id: Ic7ac18974c7e3e08758eed0ca50376737d919196 Reviewed-by: Aleksei German (cherry picked from commit 5ced40c0497a8daa7ea56124709a7b55a5b320d8) Reviewed-by: Eike Ziller --- .../container/propertyvaluecontainer.cpp | 4 ++-- .../container/propertyvaluecontainer.h | 3 ++- src/libs/utils/smallstringview.h | 11 ++++++----- src/plugins/effectcomposer/effectcomposerwidget.cpp | 3 +-- .../qmldesigner/components/debugview/debugview.cpp | 2 +- .../materialeditor/materialeditorqmlbackend.cpp | 2 +- .../propertyeditor/propertyeditorqmlbackend.cpp | 2 +- .../textureeditor/textureeditorqmlbackend.cpp | 2 +- .../designercore/instances/nodeinstanceview.cpp | 13 ++++++++----- .../designercore/metainfo/nodemetainfo.cpp | 2 +- .../qmldesigner/designercore/model/internalnode_p.h | 4 ++-- .../qmldesigner/designercore/model/model.cpp | 4 ++-- .../qmldesigner/designercore/model/model_p.h | 2 +- 13 files changed, 29 insertions(+), 25 deletions(-) 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 28f8b781501..09b2a2abaf7 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(); } 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 e05001e4774..b466a3bb658 100644 --- a/src/plugins/qmldesigner/components/debugview/debugview.cpp +++ b/src/plugins/qmldesigner/components/debugview/debugview.cpp @@ -393,7 +393,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 0e508f8f360..e8bd3a1cfb7 100644 --- a/src/plugins/qmldesigner/components/materialeditor/materialeditorqmlbackend.cpp +++ b/src/plugins/qmldesigner/components/materialeditor/materialeditorqmlbackend.cpp @@ -315,7 +315,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 c397d445b19..92c5ad642f0 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 484f18e42b6..0296af2e0e3 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 c6566342728..61d78e96a7f 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 f3fe55f2315..8d0bf8880bc 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 d4eea263785..5442e819728 100644 --- a/src/plugins/qmldesigner/designercore/model/model.cpp +++ b/src/plugins/qmldesigner/designercore/model/model.cpp @@ -109,7 +109,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; @@ -285,7 +285,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 cb082fd1d70..d666e2b820e 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,