From afb062cae2da202c7922caf55e5664ca83cada4b Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Fri, 26 Jan 2024 20:49:55 +0100 Subject: [PATCH] Wizard: Replace QMap with QSet It looks like both key and value are the same pointers. Change-Id: I38d006ada777d61df242dd0b82e9b622c0907cad Reviewed-by: Eike Ziller --- src/libs/utils/wizard.cpp | 30 +++++++++++++----------------- src/libs/utils/wizard.h | 2 +- 2 files changed, 14 insertions(+), 18 deletions(-) diff --git a/src/libs/utils/wizard.cpp b/src/libs/utils/wizard.cpp index 8592591f38f..10d801c5214 100644 --- a/src/libs/utils/wizard.cpp +++ b/src/libs/utils/wizard.cpp @@ -137,9 +137,9 @@ LinearProgressWidget::LinearProgressWidget(WizardProgress *progress, QWidget *pa connect(m_wizardProgress, &WizardProgress::currentItemChanged, this, &LinearProgressWidget::slotCurrentItemChanged); - QList items = m_wizardProgress->items(); - for (int i = 0; i < items.count(); i++) - slotItemAdded(items.at(i)); + const QSet items = m_wizardProgress->items(); + for (WizardProgressItem *item : items) + slotItemAdded(item); recreateLayout(); setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); @@ -539,7 +539,7 @@ public: void updateReachableItems(); QMap m_pageToItem; - QMap m_itemToItem; + QSet m_items; QList m_visitedItems; QList m_reachableItems; @@ -550,7 +550,7 @@ public: inline QDebug &operator<<(QDebug &debug, const WizardProgressPrivate &progress) { - debug << "items:" << progress.m_itemToItem.size() + debug << "items:" << progress.m_items.size() << "; visited:" << progress.m_visitedItems.size() << "; reachable:" << progress.m_reachableItems.size(); @@ -689,12 +689,8 @@ WizardProgress::~WizardProgress() { Q_D(WizardProgress); - auto it = d->m_itemToItem.constBegin(); - const auto itEnd = d->m_itemToItem.constEnd(); - while (it != itEnd) { - delete it.key(); - ++it; - } + for (WizardProgressItem *item : std::as_const(d->m_items)) + delete item; delete d_ptr; } @@ -703,7 +699,7 @@ WizardProgressItem *WizardProgress::addItem(const QString &title) Q_D(WizardProgress); auto item = new WizardProgressItem(this, title); - d->m_itemToItem.insert(item, item); + d->m_items.insert(item); emit itemAdded(item); return item; } @@ -712,8 +708,8 @@ void WizardProgress::removeItem(WizardProgressItem *item) { Q_D(WizardProgress); - const auto it = d->m_itemToItem.constFind(item); - if (it == d->m_itemToItem.constEnd()) { + const auto it = d->m_items.constFind(item); + if (it == d->m_items.constEnd()) { qWarning("WizardProgress::removePage: Item is not a part of the wizard"); return; } @@ -745,7 +741,7 @@ void WizardProgress::removeItem(WizardProgressItem *item) QList pages = item->pages(); for (int i = 0; i < pages.count(); i++) d->m_pageToItem.remove(pages.at(i)); - d->m_itemToItem.erase(it); + d->m_items.erase(it); delete item; } @@ -782,11 +778,11 @@ WizardProgressItem *WizardProgress::currentItem() const return d->m_currentItem; } -QList WizardProgress::items() const +QSet WizardProgress::items() const { Q_D(const WizardProgress); - return d->m_itemToItem.keys(); + return d->m_items; } WizardProgressItem *WizardProgress::startItem() const diff --git a/src/libs/utils/wizard.h b/src/libs/utils/wizard.h index 7055dbf7b5c..35abff2f6d7 100644 --- a/src/libs/utils/wizard.h +++ b/src/libs/utils/wizard.h @@ -85,7 +85,7 @@ public: WizardProgressItem *currentItem() const; - QList items() const; + QSet items() const; WizardProgressItem *startItem() const;