From 4d63206d95b637855382148c43c902d6e0228d7d Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Fri, 16 Apr 2021 10:18:58 +0200 Subject: [PATCH] Utils: Add helper methods for SelectionAspect Change-Id: Idda6ac0846549f37e934d3e856c453ed314c7880 Reviewed-by: hjk --- src/libs/utils/aspects.cpp | 15 +++++++++++++++ src/libs/utils/aspects.h | 2 ++ 2 files changed, 17 insertions(+) diff --git a/src/libs/utils/aspects.cpp b/src/libs/utils/aspects.cpp index 8fdc99b3972..3207497f4a1 100644 --- a/src/libs/utils/aspects.cpp +++ b/src/libs/utils/aspects.cpp @@ -1563,6 +1563,21 @@ QString SelectionAspect::displayForIndex(int index) const return d->m_options.at(index).displayName; } +int SelectionAspect::indexForItemValue(const QVariant &value) const +{ + for (int i = 0, n = d->m_options.size(); i < n; ++i) { + if (d->m_options.at(i).itemData == value) + return i; + } + return -1; +} + +QVariant SelectionAspect::itemValueForIndex(int index) const +{ + QTC_ASSERT(index >= 0 && index < d->m_options.size(), return {}); + return d->m_options.at(index).itemData; +} + /*! \class Utils::MultiSelectionAspect \inmodule QtCreator diff --git a/src/libs/utils/aspects.h b/src/libs/utils/aspects.h index bb7f3c5e100..799aadaac2f 100644 --- a/src/libs/utils/aspects.h +++ b/src/libs/utils/aspects.h @@ -238,6 +238,8 @@ public: void addOption(const Option &option); int indexForDisplay(const QString &displayName) const; QString displayForIndex(int index) const; + int indexForItemValue(const QVariant &value) const; + QVariant itemValueForIndex(int index) const; signals: void volatileValueChanged(int newValue);