From 44f5b9318b9e41bf932b3c86f0e72ef225a2115a Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Tue, 9 Apr 2019 17:10:22 +0200 Subject: [PATCH] Core: Turn progress detail expander into a real icon Change-Id: Ie6173cc041b96cd10879189bedce1104cdbe7a33 Reviewed-by: Eike Ziller --- .../utils/images/toggleprogressdetails.png | Bin 0 -> 167 bytes .../utils/images/toggleprogressdetails@2x.png | Bin 0 -> 216 bytes src/libs/utils/utils.qrc | 2 + src/libs/utils/utilsicons.cpp | 2 + src/libs/utils/utilsicons.h | 1 + .../progressmanager/progressmanager.cpp | 35 ++------------- .../progressmanager/progressmanager_p.h | 9 ---- src/tools/icons/qtcreatoricons.svg | 41 +++++++++++++++++- 8 files changed, 48 insertions(+), 42 deletions(-) create mode 100644 src/libs/utils/images/toggleprogressdetails.png create mode 100644 src/libs/utils/images/toggleprogressdetails@2x.png diff --git a/src/libs/utils/images/toggleprogressdetails.png b/src/libs/utils/images/toggleprogressdetails.png new file mode 100644 index 0000000000000000000000000000000000000000..b2353cd9d0909652cfbefb2d847a10f44fe556b2 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdsSyd_r6q7#P^t*x1?Gv$C=Z z3JS{0%PT4>Dl03is;cVi>kk|_@ZrOUj~_q&|Np<^*-=jh1_ldH7sn8e=;S@885n&8 zUNKGisLpii#=qT-g1)?FY==!51x`ks{uIr6V%AT40j;m|8y{M^teP%S%uuGu`%^4o SK_>$P1B0ilpUXO@geCxmwme7x literal 0 HcmV?d00001 diff --git a/src/libs/utils/images/toggleprogressdetails@2x.png b/src/libs/utils/images/toggleprogressdetails@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..28a212491e62441e367373ef099916b01560962f GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I7G?$phQ^Te;|vT81_3@Ht_%zel9G~AQc_`I zVd3H71qB7ArKM$MW##4N6%`fr_4S7jA3k#A$d4aCe*XOV|Nnnu=hHhF7#Na0T^vI+ zCMN&rXOr*{j%ZZ-(7jMTG=Y(sz3YHJ8`}aQwiH$#2UV3QZ|BBrCZ2)=5$qx!2@XsO z)46uEIWYwMl~-H9;H=@qaO9|nfPpK=AGS=J>VA`|bX{PHv QklPtNUHx3vIVCg!09BPnasU7T literal 0 HcmV?d00001 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%" /> + + + + + +