forked from qt-creator/qt-creator
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:
@@ -20,7 +20,7 @@ using EnumerationNameView = QByteArrayView;
|
||||
class Enumeration
|
||||
{
|
||||
public:
|
||||
Enumeration() = default;
|
||||
constexpr Enumeration() = default;
|
||||
Enumeration(EnumerationName enumerationName)
|
||||
: m_enumerationName{std::move(enumerationName)}
|
||||
{}
|
||||
|
@@ -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);
|
||||
|
@@ -11,7 +11,7 @@ InternalVariantProperty::InternalVariantProperty(PropertyNameView name, const In
|
||||
{
|
||||
}
|
||||
|
||||
QVariant InternalVariantProperty::value() const
|
||||
const QVariant &InternalVariantProperty::value() const
|
||||
{
|
||||
return m_value;
|
||||
}
|
||||
|
@@ -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);
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user