From e6fe923392e35151c5569f548865545e5738656a Mon Sep 17 00:00:00 2001 From: hjk Date: Mon, 1 Mar 2021 08:48:25 +0100 Subject: [PATCH] Utils: Add StringAspect::{append,remove}Value{,s} convenience functions Change-Id: I3893d9512b7600328e127693da9dc07c771b305a Reviewed-by: David Schulz --- src/libs/utils/aspects.cpp | 32 ++++++++++++++++++++++++++++++++ src/libs/utils/aspects.h | 5 +++++ 2 files changed, 37 insertions(+) diff --git a/src/libs/utils/aspects.cpp b/src/libs/utils/aspects.cpp index 6c46de790be..ab6e99ba59b 100644 --- a/src/libs/utils/aspects.cpp +++ b/src/libs/utils/aspects.cpp @@ -1703,6 +1703,38 @@ void StringListAspect::setValue(const QStringList &value) BaseAspect::setValue(value); } +void StringListAspect::appendValue(const QString &s, bool allowDuplicates) +{ + QStringList val = value(); + if (allowDuplicates || !val.contains(s)) + val.append(s); + setValue(val); +} + +void StringListAspect::removeValue(const QString &s) +{ + QStringList val = value(); + val.removeAll(s); + setValue(val); +} + +void StringListAspect::appendValues(const QStringList &values, bool allowDuplicates) +{ + QStringList val = value(); + for (const QString &s : values) { + if (allowDuplicates || !val.contains(s)) + val.append(s); + } + setValue(val); +} + +void StringListAspect::removeValues(const QStringList &values) +{ + QStringList val = value(); + for (const QString &s : values) + val.removeAll(s); + setValue(val); +} /*! \class Utils::TextDisplay diff --git a/src/libs/utils/aspects.h b/src/libs/utils/aspects.h index 4e0e3b8f947..cc4304f3252 100644 --- a/src/libs/utils/aspects.h +++ b/src/libs/utils/aspects.h @@ -428,6 +428,11 @@ public: QStringList value() const; void setValue(const QStringList &val); + void appendValue(const QString &value, bool allowDuplicates = true); + void removeValue(const QString &value); + void appendValues(const QStringList &values, bool allowDuplicates = true); + void removeValues(const QStringList &values); + private: std::unique_ptr d; };