diff --git a/src/plugins/coreplugin/infobar.cpp b/src/plugins/coreplugin/infobar.cpp index 6e3c78fdcb3..2db4f3eb2d5 100644 --- a/src/plugins/coreplugin/infobar.cpp +++ b/src/plugins/coreplugin/infobar.cpp @@ -91,6 +91,16 @@ void InfoBar::removeInfo(const QString &id) } } +bool InfoBar::containsInfo(const QString &id) const +{ + QListIterator it(m_infoBarEntries); + while (it.hasNext()) + if (it.next().id == id) + return true; + + return false; +} + void InfoBar::clear() { if (!m_infoBarEntries.isEmpty()) { diff --git a/src/plugins/coreplugin/infobar.h b/src/plugins/coreplugin/infobar.h index 4bdd9243835..652bf3d4314 100644 --- a/src/plugins/coreplugin/infobar.h +++ b/src/plugins/coreplugin/infobar.h @@ -75,6 +75,7 @@ class CORE_EXPORT InfoBar : public QObject public: void addInfo(const InfoBarEntry &info); void removeInfo(const QString &id); + bool containsInfo(const QString &id) const; void clear(); signals: diff --git a/src/plugins/find/searchresultwidget.cpp b/src/plugins/find/searchresultwidget.cpp index 918527364ba..2b3f32362b7 100644 --- a/src/plugins/find/searchresultwidget.cpp +++ b/src/plugins/find/searchresultwidget.cpp @@ -463,7 +463,7 @@ void SearchResultWidget::searchAgain() bool SearchResultWidget::showWarningMessage() const { - if (m_dontAskAgainGroup.isEmpty()) + if (m_dontAskAgainGroup.isEmpty() || m_infoBar.containsInfo(QLatin1String(UNDO_WARNING_ID))) return false; // read settings QSettings *settings = Core::ICore::settings();