// 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 #include #include #include QT_BEGIN_NAMESPACE class QBoxLayout; class QSettings; QT_END_NAMESPACE namespace Utils { class InfoBar; class InfoBarDisplay; class Theme; class QTCREATOR_UTILS_EXPORT InfoBarEntry { public: enum class GlobalSuppression { Disabled, Enabled }; InfoBarEntry() = default; InfoBarEntry(Id _id, const QString &_infoText, GlobalSuppression _globalSuppression = GlobalSuppression::Disabled); Id id() const; QString text() const; using CallBack = std::function; void addCustomButton(const QString &_buttonText, CallBack callBack, const QString &tooltip = {}); void setCancelButtonInfo(CallBack callBack); void setCancelButtonInfo(const QString &_cancelButtonText, CallBack callBack); struct ComboInfo { QString displayText; QVariant data; }; using ComboCallBack = std::function; void setComboInfo(const QStringList &list, ComboCallBack callBack, const QString &tooltip = {}, int currentIndex = -1); void setComboInfo(const QList &infos, ComboCallBack callBack, const QString &tooltip = {}, int currentIndex = -1); void removeCancelButton(); using DetailsWidgetCreator = std::function; void setDetailsWidgetCreator(const DetailsWidgetCreator &creator); private: struct Button { QString text; CallBack callback; QString tooltip; }; struct Combo { ComboCallBack callback; QList entries; QString tooltip; int currentIndex = -1; }; Id m_id; QString m_infoText; QList