diff --git a/src/libs/utils/images/toggleprogressdetails.png b/src/libs/utils/images/toggleprogressdetails.png new file mode 100644 index 00000000000..b2353cd9d09 Binary files /dev/null and b/src/libs/utils/images/toggleprogressdetails.png differ diff --git a/src/libs/utils/images/toggleprogressdetails@2x.png b/src/libs/utils/images/toggleprogressdetails@2x.png new file mode 100644 index 00000000000..28a212491e6 Binary files /dev/null and b/src/libs/utils/images/toggleprogressdetails@2x.png differ diff --git a/src/libs/utils/utils.qrc b/src/libs/utils/utils.qrc index dc576ca8062..9aa2fbb9762 100644 --- a/src/libs/utils/utils.qrc +++ b/src/libs/utils/utils.qrc @@ -219,6 +219,8 @@ images/settings@2x.png images/sort_alphabetically.png images/sort_alphabetically@2x.png + images/toggleprogressdetails.png + images/toggleprogressdetails@2x.png images/enum.png diff --git a/src/libs/utils/utilsicons.cpp b/src/libs/utils/utilsicons.cpp index fe040c63d52..5afd3cc56ad 100644 --- a/src/libs/utils/utilsicons.cpp +++ b/src/libs/utils/utilsicons.cpp @@ -188,6 +188,8 @@ const Icon LINK_TOOLBAR({ {QLatin1String(":/utils/images/linkicon.png"), Theme::IconsBaseColor}}); const Icon SORT_ALPHABETICALLY_TOOLBAR({ {QLatin1String(":/utils/images/sort_alphabetically.png"), Theme::IconsBaseColor}}); +const Icon TOGGLE_PROGRESSDETAILS_TOOLBAR({ + {QLatin1String(":/utils/images/toggleprogressdetails.png"), Theme::IconsBaseColor}}); const Icon WARNING({ {QLatin1String(":/utils/images/warningfill.png"), Theme::BackgroundColorNormal}, diff --git a/src/libs/utils/utilsicons.h b/src/libs/utils/utilsicons.h index 8cf7b21048f..ca8ad69ff7e 100644 --- a/src/libs/utils/utilsicons.h +++ b/src/libs/utils/utilsicons.h @@ -109,6 +109,7 @@ QTCREATOR_UTILS_EXPORT extern const Icon FILTER; QTCREATOR_UTILS_EXPORT extern const Icon LINK; QTCREATOR_UTILS_EXPORT extern const Icon LINK_TOOLBAR; QTCREATOR_UTILS_EXPORT extern const Icon SORT_ALPHABETICALLY_TOOLBAR; +QTCREATOR_UTILS_EXPORT extern const Icon TOGGLE_PROGRESSDETAILS_TOOLBAR; QTCREATOR_UTILS_EXPORT extern const Icon INFO; QTCREATOR_UTILS_EXPORT extern const Icon INFO_TOOLBAR; diff --git a/src/plugins/coreplugin/progressmanager/progressmanager.cpp b/src/plugins/coreplugin/progressmanager/progressmanager.cpp index 318f84163cf..bbf0f0b8204 100644 --- a/src/plugins/coreplugin/progressmanager/progressmanager.cpp +++ b/src/plugins/coreplugin/progressmanager/progressmanager.cpp @@ -39,6 +39,7 @@ #include #include #include +#include #include #include @@ -319,7 +320,7 @@ void ProgressManagerPrivate::init() m_summaryProgressBar->setCancelEnabled(false); m_summaryProgressLayout->addWidget(m_summaryProgressBar); layout->addWidget(m_summaryProgressWidget); - auto toggleButton = new ToggleButton(m_statusBarWidget); + auto toggleButton = new QToolButton(m_statusBarWidget); layout->addWidget(toggleButton); m_statusBarWidget->installEventFilter(this); StatusBarManager::addStatusBarWidget(m_statusBarWidget, StatusBarManager::RightCorner); @@ -327,10 +328,7 @@ void ProgressManagerPrivate::init() QAction *toggleProgressView = new QAction(tr("Toggle Progress Details"), this); toggleProgressView->setCheckable(true); toggleProgressView->setChecked(m_progressViewPinned); - // we have to set an transparent icon to prevent the tool button to show text - QPixmap p(1, 1); - p.fill(Qt::transparent); - toggleProgressView->setIcon(QIcon(p)); + toggleProgressView->setIcon(Utils::Icons::TOGGLE_PROGRESSDETAILS_TOOLBAR.icon()); Command *cmd = ActionManager::registerAction(toggleProgressView, "QtCreator.ToggleProgressDetails"); @@ -712,33 +710,6 @@ void ProgressManagerPrivate::progressDetailsToggled(bool checked) settings->endGroup(); } -ToggleButton::ToggleButton(QWidget *parent) - : QToolButton(parent) -{ - setToolButtonStyle(Qt::ToolButtonIconOnly); - if (creatorTheme()->flag(Theme::FlatToolBars)) { - QPalette p = palette(); - p.setBrush(QPalette::Base, creatorTheme()->color(Theme::ToggleButtonBackgroundColor)); - setPalette(p); - } -} - -QSize ToggleButton::sizeHint() const -{ - return QSize(13, 12); // Uneven width, because the arrow's width is also uneven. -} - -void ToggleButton::paintEvent(QPaintEvent *event) -{ - QToolButton::paintEvent(event); - QPainter p(this); - QStyleOption arrowOpt; - arrowOpt.initFrom(this); - arrowOpt.rect.adjust(2, 0, -1, -2); - StyleHelper::drawArrow(QStyle::PE_IndicatorArrowUp, &p, &arrowOpt); -} - - ProgressManager::ProgressManager() = default; ProgressManager::~ProgressManager() = default; diff --git a/src/plugins/coreplugin/progressmanager/progressmanager_p.h b/src/plugins/coreplugin/progressmanager/progressmanager_p.h index c3509c1ce4b..4eabe502048 100644 --- a/src/plugins/coreplugin/progressmanager/progressmanager_p.h +++ b/src/plugins/coreplugin/progressmanager/progressmanager_p.h @@ -112,14 +112,5 @@ private: bool m_hovered = false; }; -class ToggleButton : public QToolButton -{ - Q_OBJECT -public: - ToggleButton(QWidget *parent); - QSize sizeHint() const override; - void paintEvent(QPaintEvent *event) override; -}; - } // namespace Internal } // namespace Core diff --git a/src/tools/icons/qtcreatoricons.svg b/src/tools/icons/qtcreatoricons.svg index f9abb04b4ac..cb6e4836aff 100644 --- a/src/tools/icons/qtcreatoricons.svg +++ b/src/tools/icons/qtcreatoricons.svg @@ -3607,6 +3607,45 @@ width="100%" height="100%" /> + + + + + +