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; };