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
{
public:
Enumeration() = default;
constexpr Enumeration() = default;
Enumeration(EnumerationName enumerationName)
: m_enumerationName{std::move(enumerationName)}
{}

View File

@@ -26,10 +26,14 @@ class QMLDESIGNERCORE_EXPORT VariantProperty final : public AbstractProperty
public:
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);
Enumeration enumeration() const;
const Enumeration &enumeration() const;
bool holdsEnumeration() const;
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;
}

View File

@@ -18,7 +18,7 @@ public:
bool isValid() const override;
QVariant value() const;
const QVariant &value() const;
void setValue(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);
}
QVariant VariantProperty::value() const
const QVariant &VariantProperty::value() const
{
if (isValid()) {
auto property = internalNode()->variantProperty(name());
@@ -55,7 +55,9 @@ QVariant VariantProperty::value() const
return property->value();
}
return QVariant();
static const QVariant nullVariant;
return nullVariant;
}
void VariantProperty::setEnumeration(const EnumerationName &enumerationName)
@@ -63,9 +65,14 @@ void VariantProperty::setEnumeration(const EnumerationName &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