diff --git a/src/plugins/coreplugin/statusbarmanager.cpp b/src/plugins/coreplugin/statusbarmanager.cpp index 5d9116379fe..182375b264b 100644 --- a/src/plugins/coreplugin/statusbarmanager.cpp +++ b/src/plugins/coreplugin/statusbarmanager.cpp @@ -143,12 +143,11 @@ void StatusBarManager::addStatusBarWidget(QWidget *widget, void StatusBarManager::destroyStatusBarWidget(QWidget *widget) { QTC_ASSERT(widget, return); - for (const QPointer &context : m_contexts) { - if (context->widget() == widget) { - m_contexts.removeAll(context); - delete context; - break; - } + const auto it = std::find_if(m_contexts.begin(), m_contexts.end(), + [widget](const auto &context) { return context->widget() == widget; }); + if (it != m_contexts.end()) { + delete *it; + m_contexts.erase(it); } widget->setParent(nullptr); delete widget;