diff --git a/src/plugins/coreplugin/infobar.cpp b/src/plugins/coreplugin/infobar.cpp index 6e3c78fdcb3643261eb6d77834fdc3b95ab57b48..2db4f3eb2d5adc283bc3af846fbbb78323d1f848 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<InfoBarEntry> 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 4bdd92438350e9d34386f7f96a6c4e1670c6e828..652bf3d431438bbedbce43dc5cfb54e87be8601e 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 918527364ba721433841654b6632027043429e0a..2b3f32362b75b9945ec4e6ff788aee78a1101de2 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();