QmlDesigner: VariantProperty::value() return const &

- Use const reference to prevent rvalue errors
- Add -> operator to use "->" instead of ".value()."

Change-Id: I3ddf6afa8cd8448829f885a821ae01b86aba3c8f
Reviewed-by: Ali Kianian <ali.kianian@qt.io>
This commit is contained in:
Marco Bubke
2025-04-29 14:00:52 +02:00
parent e933752899
commit 8ef11e061c
5 changed files with 20 additions and 9 deletions

View File

@@ -20,7 +20,7 @@ using EnumerationNameView = QByteArrayView;
class Enumeration class Enumeration
{ {
public: public:
Enumeration() = default; constexpr Enumeration() = default;
Enumeration(EnumerationName enumerationName) Enumeration(EnumerationName enumerationName)
: m_enumerationName{std::move(enumerationName)} : m_enumerationName{std::move(enumerationName)}
{} {}

View File

@@ -26,10 +26,14 @@ class QMLDESIGNERCORE_EXPORT VariantProperty final : public AbstractProperty
public: public:
void setValue(const QVariant &value); void setValue(const QVariant &value);
QVariant value() const; const QVariant &value() const;
const QVariant &operator->() const { return value(); }
const QVariant &operator*() const { return value(); }
void setEnumeration(const EnumerationName &enumerationName); void setEnumeration(const EnumerationName &enumerationName);
Enumeration enumeration() const; const Enumeration &enumeration() const;
bool holdsEnumeration() const; bool holdsEnumeration() const;
void setDynamicTypeNameAndValue(const TypeName &type, const QVariant &value); void setDynamicTypeNameAndValue(const TypeName &type, const QVariant &value);

View File

@@ -11,7 +11,7 @@ InternalVariantProperty::InternalVariantProperty(PropertyNameView name, const In
{ {
} }
QVariant InternalVariantProperty::value() const const QVariant &InternalVariantProperty::value() const
{ {
return m_value; return m_value;
} }

View File

@@ -18,7 +18,7 @@ public:
bool isValid() const override; bool isValid() const override;
QVariant value() const; const QVariant &value() const;
void setValue(const QVariant &value); void setValue(const QVariant &value);
void setDynamicValue(const TypeName &type, const QVariant &value); void setDynamicValue(const TypeName &type, const QVariant &value);

View File

@@ -47,7 +47,7 @@ void VariantProperty::setValue(const QVariant &value)
privateModel()->setVariantProperty(internalNodeSharedPointer(), name(), value); privateModel()->setVariantProperty(internalNodeSharedPointer(), name(), value);
} }
QVariant VariantProperty::value() const const QVariant &VariantProperty::value() const
{ {
if (isValid()) { if (isValid()) {
auto property = internalNode()->variantProperty(name()); auto property = internalNode()->variantProperty(name());
@@ -55,7 +55,9 @@ QVariant VariantProperty::value() const
return property->value(); return property->value();
} }
return QVariant(); static const QVariant nullVariant;
return nullVariant;
} }
void VariantProperty::setEnumeration(const EnumerationName &enumerationName) void VariantProperty::setEnumeration(const EnumerationName &enumerationName)
@@ -63,9 +65,14 @@ void VariantProperty::setEnumeration(const EnumerationName &enumerationName)
setValue(QVariant::fromValue(Enumeration(enumerationName))); setValue(QVariant::fromValue(Enumeration(enumerationName)));
} }
Enumeration VariantProperty::enumeration() const const Enumeration &VariantProperty::enumeration() const
{ {
return value().value<Enumeration>(); if (auto enumeration = get_if<Enumeration>(&value()))
return *enumeration;
static constinit const Enumeration nullEnumeration;
return nullEnumeration;
} }
bool VariantProperty::holdsEnumeration() const bool VariantProperty::holdsEnumeration() const