// Copyright (C) 2020 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #pragma once #include "utils_global.h" #include "id.h" #include "infolabel.h" #include "qtcsettings.h" #include #include #include #include QT_BEGIN_NAMESPACE class QBoxLayout; class QSettings; QT_END_NAMESPACE namespace Utils { class Icon; class InfoBar; class InfoBarDisplay; class Theme; class QTCREATOR_UTILS_EXPORT InfoBarEntry { public: enum class GlobalSuppression { Disabled, Enabled }; enum class ButtonAction { None, Hide, Suppress, SuppressPersistently }; InfoBarEntry() = default; InfoBarEntry(Id _id, const QString &_infoText, GlobalSuppression _globalSuppression = GlobalSuppression::Disabled); Id id() const; QString text() const; QString title() const; GlobalSuppression globalSuppression() const; void setTitle(const QString &title); using CallBack = std::function; struct Button { QString text; CallBack callback; QString tooltip; ButtonAction action = ButtonAction::None; bool enabled = true; }; void addCustomButton(const QString &_buttonText, CallBack callBack, const QString &tooltip = {}, ButtonAction action = ButtonAction::None, bool enabled = true); void setCancelButtonInfo(CallBack callBack); void setCancelButtonInfo(const QString &_cancelButtonText, CallBack callBack); void removeCancelButton(); QList