diff options
author | Alessandro Portale <alessandro.portale@qt.io> | 2016-09-28 22:15:47 +0200 |
---|---|---|
committer | Alessandro Portale <alessandro.portale@qt.io> | 2016-09-29 07:25:16 +0000 |
commit | 7bbebdeb48c3081ad43f57c4b48ad1a5d270d4ec (patch) | |
tree | e6d5679e77966a9931e295e7640df3747e28ce41 /src/plugins/projectexplorer/targetsettingspanel.cpp | |
parent | 7261276d0a09233d3b57191081fbb5ae78ba4141 (diff) |
ProjectExplorer: Icon for enabling kits in the project mode
Disabled kit icon plus small "+" overlay.
Change-Id: I58df0da662baf9977382733e8d003766bd232281
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Diffstat (limited to 'src/plugins/projectexplorer/targetsettingspanel.cpp')
-rw-r--r-- | src/plugins/projectexplorer/targetsettingspanel.cpp | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/src/plugins/projectexplorer/targetsettingspanel.cpp b/src/plugins/projectexplorer/targetsettingspanel.cpp index bdac6689fc..eec9f3fdd0 100644 --- a/src/plugins/projectexplorer/targetsettingspanel.cpp +++ b/src/plugins/projectexplorer/targetsettingspanel.cpp @@ -57,11 +57,13 @@ #include <utils/utilsicons.h> #include <QCoreApplication> +#include <QApplication> #include <QDialogButtonBox> #include <QFileDialog> #include <QLabel> #include <QMenu> #include <QMessageBox> +#include <QPainter> #include <QPushButton> #include <QTimer> #include <QToolTip> @@ -336,6 +338,20 @@ public: return Qt::ItemFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); } + static QIcon enableKitIcon(const Kit &kit) + { + static const QIcon overlay = Utils::Icons::ENABLE_KIT_OVERLAY.icon(); + const QSize iconSize(16, 16); + const QRect iconRect(QPoint(), iconSize); + QPixmap result(iconSize * qApp->devicePixelRatio()); + result.fill(Qt::transparent); + result.setDevicePixelRatio(qApp->devicePixelRatio()); + QPainter p(&result); + kit.icon().paint(&p, iconRect, Qt::AlignCenter, QIcon::Disabled); + overlay.paint(&p, iconRect); + return result; + } + QVariant data(int column, int role) const override { switch (role) { @@ -346,10 +362,10 @@ public: } case Qt::DecorationRole: { - if (!isEnabled()) - return Utils::Icons::PLUS.icon(); - Kit *k = KitManager::find(m_kitId); + const Kit *k = KitManager::find(m_kitId); QTC_ASSERT(k, return QVariant()); + if (!isEnabled()) + return enableKitIcon(*k); if (!k->isValid()) return Utils::Icons::ERROR.icon(); if (k->hasWarning()) |