From ce308c10911cfe135ad4877d24d6956021e00a29 Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Thu, 6 Oct 2016 17:29:59 +0200 Subject: [PATCH] ProjectExplorer: Show kit warnings and errors as overlay Instead of having kits just a big warning or error icon Change-Id: I5b1c72c3c6ddd4cb646125c70d979431166d31f2 Reviewed-by: hjk --- src/libs/utils/images/iconoverlay_add.png | Bin 0 -> 186 bytes src/libs/utils/images/iconoverlay_add@2x.png | Bin 0 -> 210 bytes .../images/iconoverlay_add_background.png | Bin 0 -> 147 bytes .../images/iconoverlay_add_background@2x.png | Bin 0 -> 225 bytes src/libs/utils/images/iconoverlay_error.png | Bin 0 -> 157 bytes .../utils/images/iconoverlay_error@2x.png | Bin 0 -> 192 bytes .../images/iconoverlay_error_background.png | Bin 0 -> 157 bytes .../iconoverlay_error_background@2x.png | Bin 0 -> 177 bytes src/libs/utils/images/iconoverlay_warning.png | Bin 0 -> 142 bytes .../utils/images/iconoverlay_warning@2x.png | Bin 0 -> 216 bytes .../images/iconoverlay_warning_background.png | Bin 0 -> 141 bytes .../iconoverlay_warning_background@2x.png | Bin 0 -> 221 bytes src/libs/utils/utils.qrc | 12 ++ src/libs/utils/utilsicons.cpp | 12 +- src/libs/utils/utilsicons.h | 4 +- .../images/enablekitbackground.png | Bin 152 -> 0 bytes .../images/enablekitbackground@2x.png | Bin 174 -> 0 bytes .../images/enablekitforeground.png | Bin 95 -> 0 bytes .../images/enablekitforeground@2x.png | Bin 100 -> 0 bytes .../projectexplorer/projectexplorer.qrc | 4 - .../projectexplorer/targetsettingspanel.cpp | 59 +++++++--- src/tools/icons/qtcreatoricons.svg | 104 ++++++++++++++++-- 22 files changed, 161 insertions(+), 34 deletions(-) create mode 100644 src/libs/utils/images/iconoverlay_add.png create mode 100644 src/libs/utils/images/iconoverlay_add@2x.png create mode 100644 src/libs/utils/images/iconoverlay_add_background.png create mode 100644 src/libs/utils/images/iconoverlay_add_background@2x.png create mode 100644 src/libs/utils/images/iconoverlay_error.png create mode 100644 src/libs/utils/images/iconoverlay_error@2x.png create mode 100644 src/libs/utils/images/iconoverlay_error_background.png create mode 100644 src/libs/utils/images/iconoverlay_error_background@2x.png create mode 100644 src/libs/utils/images/iconoverlay_warning.png create mode 100644 src/libs/utils/images/iconoverlay_warning@2x.png create mode 100644 src/libs/utils/images/iconoverlay_warning_background.png create mode 100644 src/libs/utils/images/iconoverlay_warning_background@2x.png delete mode 100644 src/plugins/projectexplorer/images/enablekitbackground.png delete mode 100644 src/plugins/projectexplorer/images/enablekitbackground@2x.png delete mode 100644 src/plugins/projectexplorer/images/enablekitforeground.png delete mode 100644 src/plugins/projectexplorer/images/enablekitforeground@2x.png diff --git a/src/libs/utils/images/iconoverlay_add.png b/src/libs/utils/images/iconoverlay_add.png new file mode 100644 index 0000000000000000000000000000000000000000..e82b7142b95f15e9df0606b125f7a694c08d1b23 GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdmW!d_r6q7#P^t*x1?Gm6erM zR8&+|RV^$mEG;dqtgLElYwPOj>g($p8XCTS{rc_OxBvhDFM99K$iTqh>gnPb!V#VP zgP)aWiP1klu{id$nB;_ndj2GzgdYbs$R9CaF#6-j)A;|t{fomcj~shg9gbBBJho(J lW{ za8sJ)sC9|Tw{THP@QY>t)mnZk82n7MX}13%`{K3<$EM>2 z%+F-jYfjVt(DPxY$L@q}MGA4U0kWNj$7dS9C}fl1G~p3xoZ{%_z;I2r;X~tv?=319 zj9zf?@TlpnvTHt+S>$aKDlHqmbKkFbOKYBAt=ep`c#@NcX>G20`5$)`9k;^23qg+c MboFyt=akR{0JODF(*OVf literal 0 HcmV?d00001 diff --git a/src/libs/utils/images/iconoverlay_add_background.png b/src/libs/utils/images/iconoverlay_add_background.png new file mode 100644 index 0000000000000000000000000000000000000000..cbf07ec0fcd6407caab9d1b7f501249f922fc36d GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4h9AW2CEqh_A)RqM0vV6hDe03J-1u%fC3M5 zKe#ZnHpL_4+xh9!*`9^KltT!KG7#d7?BaA1+wPs1a;Cd1u y(&QYn@U{5U3T%8%#HG_tJ4+sL`^Q!$uW4ez|ei?lSP~VyZsRA+ueME<=+GMgsr#4 zUDs|=ZG5k~N4b4M^G?<&hj*|AvwE)5Wc|modW#~XZOYE%4JTx#h%xfI@Gx~T$ue1U zUE$#1%CXq+_ZjClk8iW5WlcG}R&GX^dwp8l(LU>AKbzk7C+{nI7*_YHnx!an?oKl& elevZKKMP;hX})*m(waDs+dWqtG;6M#q@Im?H4Ogz~C!G4h-_}&uaqstc zg%bN+P40UHI)l{}P2MY;urdbR-k#TJ#8jX$!=AsLX@+R*T#GdgmO^a53M+-VHdF{p s1vn(iFtYMybu=-3QtD19nLKY1L#Mapn`YBFKS56OboFyt=akR{0LSJ*^#A|> literal 0 HcmV?d00001 diff --git a/src/libs/utils/images/iconoverlay_error_background.png b/src/libs/utils/images/iconoverlay_error_background.png new file mode 100644 index 0000000000000000000000000000000000000000..d2437c32e8d87d92ec96164b06b235616fb2d5b4 GIT binary patch literal 157 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdmu-d_r6q7#J8C8HI#|L`6j{ zEG&|ek~VJKxOeZ~Lx&E%dGqG~|Np6`e18}i7|cCg978ywlOtGJd6pPW(==GoC^=bD zVn%wS1S1a*PoTpwE=C1snG+FAOC%#ENET@BNNOqD(8y5TW%c=6zu#*H1_lOCS3j3^ HP6WU-6?r@qM1l{Bv59P8jXfCd8p2vM|Dwngg9VL2A*|CQ zE{blL;~e(k`Xol?8UGxE3|bkvXEZH2z(1SGK1f7hOVa{n&Z@};4uX7HO%q$i?kYY} dkvOBm&S188`y#$co>M?>@pScbS?83{1OUU5Ho^b^ literal 0 HcmV?d00001 diff --git a/src/libs/utils/images/iconoverlay_warning.png b/src/libs/utils/images/iconoverlay_warning.png new file mode 100644 index 0000000000000000000000000000000000000000..c0ee8674dd51bab7d424894d28882497e2094562 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4h9AW2CEqh_A)RqgnGI-hDe03J-3^;L4kqc z;%$fKgSSFIPLJ5!zxl?c2A66b91q!fS zFfTTC$k{eQ^~ll(0tK8Wj+^b?Al&g#NPwSF=z%>q=eZS2n(9`qSjzv1^`EfHN#=l+ zQ<^0`HCF`cG8g~QVdPyQ+RXYPlp|_R-<9qIYL7PT_f0uqeNEfs(?S21lM?%i9ogNS zGoCfx=U}V7-pNq2!&{qs+ecf2vkmW_PFOZQuRTHhKkGEc7o4BO8Z21mecY06;Trbk TOxkZlkdr-K{an^LB{Ts55(H5h literal 0 HcmV?d00001 diff --git a/src/libs/utils/images/iconoverlay_warning_background.png b/src/libs/utils/images/iconoverlay_warning_background.png new file mode 100644 index 0000000000000000000000000000000000000000..a47e0400bdd819dffb38529b81db17d36f57b5f4 GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4h9AW2CEqh_A)Rqgm}6*hDe03J!L55U?AXd z@qS8spv4l;6FXWisip?(U^}{wV{81rpL6E_5KXe)lOTF0sEK_SlNn=7l>);9<2OvZ sBwV&66ojzpY4+Ut%H`V@m3Yn|_V%t#JKA-Gc|rDgy85}Sb4q9e0FX*AZvX%Q literal 0 HcmV?d00001 diff --git a/src/libs/utils/images/iconoverlay_warning_background@2x.png b/src/libs/utils/images/iconoverlay_warning_background@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4b22e501d78721be0e8b9ae729a620d70b869f35 GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4h9AWhA=@@4F(2=C7v#hAr`0KoaE z@Tzf%)(V9QX+QhSG%o82xqO*Z*0rRQ*XQo@B*(|sO6vb?(A}r%___BVk0$all?mKOwE7WBse9C*w{?)-av02u)li%i;?g}-X35s5^3hWM<>@tS8 zZY`KG!y%J<&W2mF7tFZjkjXr!(8}Y(oSg|J;t!gZ`!uxjpJ9FRa4qY^_cAB-g}(38 Yi4QA1bzG^xxfimages/collapse@2x.png images/expand.png images/expand@2x.png + images/iconoverlay_add.png + images/iconoverlay_add@2x.png + images/iconoverlay_add_background.png + images/iconoverlay_add_background@2x.png + images/iconoverlay_error.png + images/iconoverlay_error@2x.png + images/iconoverlay_error_background.png + images/iconoverlay_error_background@2x.png + images/iconoverlay_warning.png + images/iconoverlay_warning@2x.png + images/iconoverlay_warning_background.png + images/iconoverlay_warning_background@2x.png diff --git a/src/libs/utils/utilsicons.cpp b/src/libs/utils/utilsicons.cpp index 31ad7c8b6c3..44ce6c35e2c 100644 --- a/src/libs/utils/utilsicons.cpp +++ b/src/libs/utils/utilsicons.cpp @@ -181,9 +181,15 @@ const Icon COLLAPSE({ const Icon COLLAPSE_TOOLBAR({ {QLatin1String(":/utils/images/collapse.png"), Theme::IconsBaseColor}}); const Icon EMPTY14(":/utils/images/empty14.png"); -const Icon ENABLE_KIT_OVERLAY({ - {":/projectexplorer/images/enablekitbackground.png", Theme::IconsRunColor}, - {":/projectexplorer/images/enablekitforeground.png", Theme::BackgroundColorNormal}}, Icon::Tint); +const Icon OVERLAY_ADD({ + {":/utils/images/iconoverlay_add_background.png", Theme::BackgroundColorNormal}, + {":/utils/images/iconoverlay_add.png", Theme::IconsRunColor}}, Icon::Tint); +const Icon OVERLAY_WARNING({ + {":/utils/images/iconoverlay_warning_background.png", Theme::BackgroundColorNormal}, + {":/utils/images/iconoverlay_warning.png", Theme::IconsWarningColor}}, Icon::Tint); +const Icon OVERLAY_ERROR({ + {":/utils/images/iconoverlay_error_background.png", Theme::BackgroundColorNormal}, + {":/utils/images/iconoverlay_error.png", Theme::IconsErrorColor}}, Icon::Tint); } // namespace Icons } // namespace Utils diff --git a/src/libs/utils/utilsicons.h b/src/libs/utils/utilsicons.h index f8158b814e3..2ab02e2e422 100644 --- a/src/libs/utils/utilsicons.h +++ b/src/libs/utils/utilsicons.h @@ -107,7 +107,9 @@ QTCREATOR_UTILS_EXPORT extern const Icon EXPAND_TOOLBAR; QTCREATOR_UTILS_EXPORT extern const Icon COLLAPSE; QTCREATOR_UTILS_EXPORT extern const Icon COLLAPSE_TOOLBAR; QTCREATOR_UTILS_EXPORT extern const Icon EMPTY14; -QTCREATOR_UTILS_EXPORT extern const Icon ENABLE_KIT_OVERLAY; +QTCREATOR_UTILS_EXPORT extern const Icon OVERLAY_ADD; +QTCREATOR_UTILS_EXPORT extern const Icon OVERLAY_WARNING; +QTCREATOR_UTILS_EXPORT extern const Icon OVERLAY_ERROR; } // namespace Icons } // namespace Utils diff --git a/src/plugins/projectexplorer/images/enablekitbackground.png b/src/plugins/projectexplorer/images/enablekitbackground.png deleted file mode 100644 index d962618e71a333afe75f8cf66638baecbe00391d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd7G?$phPQVgfdo_nd_r6q7#O&@xp{baczJnE zOiWBoP0h^A)~{c`dGqEiTefW7y7mA6|Eu`&D;O9U^gUf1LpY+7Z}776grsiiI>#ox zqq(tB_RNh#2M(~M<)kGfxQX68dEfx+#@bo8vKX#=2b^AbywZk&fq}u()z4*}Q$iB} Db>=dy diff --git a/src/plugins/projectexplorer/images/enablekitbackground@2x.png b/src/plugins/projectexplorer/images/enablekitbackground@2x.png deleted file mode 100644 index 56e85c925369d1e9e56b65f0de53ba1add6bf9ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 174 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4h9AWhA=@@4F(2=QcoAh5R2Zo7p;XF6nI!J zES>fsP-NZn=MF}4JQgfwJv^7zG a>oxALN0JY0=3Bc5zu6{1-oD!M<<<1$; diff --git a/src/plugins/projectexplorer/images/enablekitforeground@2x.png b/src/plugins/projectexplorer/images/enablekitforeground@2x.png deleted file mode 100644 index ce3e306d0b0252e36b69c2550294fc6b44fd57bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;IMrH;E2G1=owlgp=um$*pxH2#>{Qv)d>CO3f z85kHOJzX3_IHHq(@U!r2QGa9D$$!RxX|_&?KEvtT<=M&hOIaB}+Fkuz);T3K0RXpH B8>RpN diff --git a/src/plugins/projectexplorer/projectexplorer.qrc b/src/plugins/projectexplorer/projectexplorer.qrc index a1cbea364b4..85e1a5a4add 100644 --- a/src/plugins/projectexplorer/projectexplorer.qrc +++ b/src/plugins/projectexplorer/projectexplorer.qrc @@ -73,9 +73,5 @@ images/fileoverlay_h@2x.png images/fileoverlay_unknown.png images/fileoverlay_unknown@2x.png - images/enablekitbackground.png - images/enablekitbackground@2x.png - images/enablekitforeground.png - images/enablekitforeground@2x.png diff --git a/src/plugins/projectexplorer/targetsettingspanel.cpp b/src/plugins/projectexplorer/targetsettingspanel.cpp index 0e14218fb79..8e7d0ced451 100644 --- a/src/plugins/projectexplorer/targetsettingspanel.cpp +++ b/src/plugins/projectexplorer/targetsettingspanel.cpp @@ -332,20 +332,6 @@ 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) { @@ -359,11 +345,11 @@ public: const Kit *k = KitManager::find(m_kitId); QTC_ASSERT(k, return QVariant()); if (!isEnabled()) - return enableKitIcon(*k); + return kitIconWithOverlay(*k, IconOverlay::Add); if (!k->isValid()) - return Utils::Icons::ERROR.icon(); + return kitIconWithOverlay(*k, IconOverlay::Error); if (k->hasWarning()) - return Utils::Icons::WARNING.icon(); + return kitIconWithOverlay(*k, IconOverlay::Warning); return k->icon(); } @@ -521,6 +507,45 @@ public: QPointer m_project; // Not owned. Id m_kitId; int m_currentChild = 1; // Use run page by default. + +private: + enum class IconOverlay { + Add, + Warning, + Error + }; + + static QIcon kitIconWithOverlay(const Kit &kit, IconOverlay overlayType) + { + QIcon overlayIcon; + switch (overlayType) { + case IconOverlay::Add: { + static const QIcon add = Utils::Icons::OVERLAY_ADD.icon(); + overlayIcon = add; + break; + } + case IconOverlay::Warning: { + static const QIcon warning = Utils::Icons::OVERLAY_WARNING.icon(); + overlayIcon = warning; + break; + } + case IconOverlay::Error: { + static const QIcon err = Utils::Icons::OVERLAY_ERROR.icon(); + overlayIcon = err; + break; + } + } + 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, + overlayType == IconOverlay::Add ? QIcon::Disabled : QIcon::Normal); + overlayIcon.paint(&p, iconRect); + return result; + } }; // diff --git a/src/tools/icons/qtcreatoricons.svg b/src/tools/icons/qtcreatoricons.svg index 467cbb45cf5..13cc2bd62b5 100644 --- a/src/tools/icons/qtcreatoricons.svg +++ b/src/tools/icons/qtcreatoricons.svg @@ -5950,7 +5950,7 @@ r="5.5" /> + cx="580.5" + cy="373.5" + r="4.5" /> + + + + + + sodipodi:nodetypes="cccccc" /> + + + + + + + + + + + + + +