From 1cece95f9ac297feeeb1e3eb0a98fc563ece9000 Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Tue, 11 Oct 2016 10:49:25 +0200 Subject: [PATCH] Core: Allow disabling default cancel button in info bar Change-Id: I83f7903854823bb156f57f0fe45eb041a5f35044 Reviewed-by: David Schulz --- src/plugins/coreplugin/infobar.cpp | 18 ++++++++++++++---- src/plugins/coreplugin/infobar.h | 2 ++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/plugins/coreplugin/infobar.cpp b/src/plugins/coreplugin/infobar.cpp index 86c12ec44f5..fe4e86516fa 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::setShowDefaultCancelButton(bool yesno) +{ + m_showDefaultCancelButton = yesno; +} + void InfoBarEntry::setDetailsWidgetCreator(const InfoBarEntry::DetailsWidgetCreator &creator) { m_detailsWidgetCreator = creator; @@ -277,12 +282,17 @@ void InfoBarDisplay::update() }); if (info.cancelButtonText.isEmpty()) { - infoWidgetCloseButton->setAutoRaise(true); - infoWidgetCloseButton->setIcon(Utils::Icons::CLOSE_FOREGROUND.icon()); - infoWidgetCloseButton->setToolTip(tr("Close")); + if (info.m_showDefaultCancelButton) { + infoWidgetCloseButton->setAutoRaise(true); + infoWidgetCloseButton->setIcon(Utils::Icons::CLOSE_FOREGROUND.icon()); + infoWidgetCloseButton->setToolTip(tr("Close")); + } + if (infoWidgetSuppressButton) hbox->addWidget(infoWidgetSuppressButton); - hbox->addWidget(infoWidgetCloseButton); + + if (info.m_showDefaultCancelButton) + hbox->addWidget(infoWidgetCloseButton); } else { infoWidgetCloseButton->setText(info.cancelButtonText); hbox->addWidget(infoWidgetCloseButton); diff --git a/src/plugins/coreplugin/infobar.h b/src/plugins/coreplugin/infobar.h index da0f8596447..7ba76edc383 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 setShowDefaultCancelButton(bool yesno); using DetailsWidgetCreator = std::function; void setDetailsWidgetCreator(const DetailsWidgetCreator &creator); @@ -71,6 +72,7 @@ private: CallBack m_cancelButtonCallBack; GlobalSuppressionMode globalSuppression; DetailsWidgetCreator m_detailsWidgetCreator; + bool m_showDefaultCancelButton = true; friend class InfoBar; friend class InfoBarDisplay; };