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);