Utils: Introduce an IntegersAspect

Change-Id: I71ed382633ec4527fcb99d3de49e81a01e9c1641
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
hjk
2021-03-01 08:49:15 +01:00
parent b7acf45c13
commit deeb845b93
2 changed files with 69 additions and 0 deletions

View File

@@ -1862,6 +1862,56 @@ void StringListAspect::removeValues(const QStringList &values)
val.removeAll(s); val.removeAll(s);
setValue(val); setValue(val);
} }
/*!
\class Utils::IntegerListAspect
\inmodule QtCreator
\brief A string list aspect represents a property of some object
that is a list of strings.
*/
IntegersAspect::IntegersAspect()
{
setDefaultValue({});
}
/*!
\reimp
*/
IntegersAspect::~IntegersAspect() = default;
/*!
\reimp
*/
void IntegersAspect::addToLayout(LayoutBuilder &builder)
{
Q_UNUSED(builder)
// TODO - when needed.
}
void IntegersAspect::emitChangedValue()
{
emit valueChanged(value());
}
QList<int> IntegersAspect::value() const
{
return Utils::transform(BaseAspect::value().toList(),
[](QVariant v) { return v.toInt(); });
}
void IntegersAspect::setValue(const QList<int> &value)
{
BaseAspect::setValue(Utils::transform(value, &QVariant::fromValue<int>));
}
void IntegersAspect::setDefaultValue(const QList<int> &value)
{
BaseAspect::setDefaultValue(Utils::transform(value, &QVariant::fromValue<int>));
}
/*! /*!
\class Utils::TextDisplay \class Utils::TextDisplay

View File

@@ -467,6 +467,25 @@ private:
std::unique_ptr<Internal::StringListAspectPrivate> d; std::unique_ptr<Internal::StringListAspectPrivate> d;
}; };
class QTCREATOR_UTILS_EXPORT IntegersAspect : public BaseAspect
{
Q_OBJECT
public:
IntegersAspect();
~IntegersAspect() override;
void addToLayout(LayoutBuilder &builder) override;
void emitChangedValue() override;
QList<int> value() const;
void setValue(const QList<int> &value);
void setDefaultValue(const QList<int> &value);
signals:
void valueChanged(const QList<int> &values);
};
class QTCREATOR_UTILS_EXPORT TextDisplay : public BaseAspect class QTCREATOR_UTILS_EXPORT TextDisplay : public BaseAspect
{ {
Q_OBJECT Q_OBJECT