aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer/targetsettingspanel.cpp
diff options
context:
space:
mode:
authorAlessandro Portale <alessandro.portale@qt.io>2016-09-28 22:15:47 +0200
committerAlessandro Portale <alessandro.portale@qt.io>2016-09-29 07:25:16 +0000
commit7bbebdeb48c3081ad43f57c4b48ad1a5d270d4ec (patch)
treee6d5679e77966a9931e295e7640df3747e28ce41 /src/plugins/projectexplorer/targetsettingspanel.cpp
parent7261276d0a09233d3b57191081fbb5ae78ba4141 (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.cpp22
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())