From b5023bda5a1579b5e3625deb6b4893539a2fab6d Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Tue, 11 Oct 2016 13:08:00 +0200 Subject: [PATCH] Core: Add suppression call back for info bar Change-Id: I56bc10adcd101ed38c463096f1cf9396f0ff8b1e Reviewed-by: David Schulz --- src/plugins/coreplugin/infobar.cpp | 9 ++++++++- src/plugins/coreplugin/infobar.h | 2 ++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/plugins/coreplugin/infobar.cpp b/src/plugins/coreplugin/infobar.cpp index fe4e86516fa..acbccd47d39 100644 --- a/src/plugins/coreplugin/infobar.cpp +++ b/src/plugins/coreplugin/infobar.cpp @@ -68,6 +68,11 @@ void InfoBarEntry::setCancelButtonInfo(const QString &_cancelButtonText, CallBac m_cancelButtonCallBack = callBack; } +void InfoBarEntry::setSuppressionButtonInfo(InfoBarEntry::CallBack callback) +{ + m_suppressionButtonCallBack = callback; +} + void InfoBarEntry::setShowDefaultCancelButton(bool yesno) { m_showDefaultCancelButton = yesno; @@ -266,7 +271,9 @@ void InfoBarDisplay::update() if (info.globalSuppression == InfoBarEntry::GlobalSuppressionEnabled) { infoWidgetSuppressButton = new QToolButton; infoWidgetSuppressButton->setText(tr("Do Not Show Again")); - connect(infoWidgetSuppressButton, &QAbstractButton::clicked, this, [this, id] { + connect(infoWidgetSuppressButton, &QAbstractButton::clicked, this, [this, info, id] { + if (info.m_suppressionButtonCallBack) + info.m_suppressionButtonCallBack(); m_infoBar->removeInfo(id); InfoBar::globallySuppressInfo(id); }); diff --git a/src/plugins/coreplugin/infobar.h b/src/plugins/coreplugin/infobar.h index 7ba76edc383..906f74ca78b 100644 --- a/src/plugins/coreplugin/infobar.h +++ b/src/plugins/coreplugin/infobar.h @@ -58,6 +58,7 @@ public: void setCustomButtonInfo(const QString &_buttonText, CallBack callBack); void setCancelButtonInfo(CallBack callBack); void setCancelButtonInfo(const QString &_cancelButtonText, CallBack callBack); + void setSuppressionButtonInfo(CallBack callback); void setShowDefaultCancelButton(bool yesno); using DetailsWidgetCreator = std::function; @@ -70,6 +71,7 @@ private: CallBack m_buttonCallBack; QString cancelButtonText; CallBack m_cancelButtonCallBack; + CallBack m_suppressionButtonCallBack; GlobalSuppressionMode globalSuppression; DetailsWidgetCreator m_detailsWidgetCreator; bool m_showDefaultCancelButton = true;