From 398ad5a40a8d593a75f8e98df552bc49008dff88 Mon Sep 17 00:00:00 2001 From: Alexander Izmailov <yarolig@gmail.com> Date: Thu, 30 Oct 2014 19:43:48 +0300 Subject: [PATCH] Add icons for static fields and functions. Icons for static members in completion list now with S letter. Task-number: QTCREATORBUG-203 Change-Id: I6c997ad14eeb500936ffe73e2fc0ad8e552a46c9 Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com> --- src/libs/cplusplus/Icons.cpp | 37 ++++++++++++++++----- src/libs/cplusplus/Icons.h | 12 +++++++ src/libs/cplusplus/cplusplus.qrc | 8 ++++- src/libs/cplusplus/images/func_priv_st.png | Bin 0 -> 685 bytes src/libs/cplusplus/images/func_prot_st.png | Bin 0 -> 679 bytes src/libs/cplusplus/images/func_st.png | Bin 0 -> 651 bytes src/libs/cplusplus/images/static.png | Bin 0 -> 164 bytes src/libs/cplusplus/images/var_priv_st.png | Bin 0 -> 676 bytes src/libs/cplusplus/images/var_prot_st.png | Bin 0 -> 658 bytes src/libs/cplusplus/images/var_st.png | Bin 0 -> 629 bytes src/plugins/classview/classviewutils.cpp | 6 ++++ 11 files changed, 53 insertions(+), 10 deletions(-) create mode 100644 src/libs/cplusplus/images/func_priv_st.png create mode 100644 src/libs/cplusplus/images/func_prot_st.png create mode 100644 src/libs/cplusplus/images/func_st.png create mode 100644 src/libs/cplusplus/images/static.png create mode 100644 src/libs/cplusplus/images/var_priv_st.png create mode 100644 src/libs/cplusplus/images/var_prot_st.png create mode 100644 src/libs/cplusplus/images/var_st.png diff --git a/src/libs/cplusplus/Icons.cpp b/src/libs/cplusplus/Icons.cpp index 3d60574808f..1405b178e67 100644 --- a/src/libs/cplusplus/Icons.cpp +++ b/src/libs/cplusplus/Icons.cpp @@ -46,10 +46,16 @@ Icons::Icons() _funcPublicIcon(QLatin1String(":/codemodel/images/func.png")), _funcProtectedIcon(QLatin1String(":/codemodel/images/func_prot.png")), _funcPrivateIcon(QLatin1String(":/codemodel/images/func_priv.png")), + _funcPublicStaticIcon(QLatin1String(":/codemodel/images/func_st.png")), + _funcProtectedStaticIcon(QLatin1String(":/codemodel/images/func_prot_st.png")), + _funcPrivateStaticIcon(QLatin1String(":/codemodel/images/func_priv_st.png")), _namespaceIcon(QLatin1String(":/codemodel/images/namespace.png")), _varPublicIcon(QLatin1String(":/codemodel/images/var.png")), _varProtectedIcon(QLatin1String(":/codemodel/images/var_prot.png")), _varPrivateIcon(QLatin1String(":/codemodel/images/var_priv.png")), + _varPublicStaticIcon(QLatin1String(":/codemodel/images/var_st.png")), + _varProtectedStaticIcon(QLatin1String(":/codemodel/images/var_prot_st.png")), + _varPrivateStaticIcon(QLatin1String(":/codemodel/images/var_priv_st.png")), _signalIcon(QLatin1String(":/codemodel/images/signal.png")), _slotPublicIcon(QLatin1String(":/codemodel/images/slot.png")), _slotProtectedIcon(QLatin1String(":/codemodel/images/slot_prot.png")), @@ -99,21 +105,22 @@ Icons::IconType Icons::iconTypeForSymbol(const Symbol *symbol) } else if (function->isSignal()) { return SignalIconType; } else if (symbol->isPublic()) { - return FuncPublicIconType; + return symbol->isStatic() ? FuncPublicStaticIconType : FuncPublicIconType; } else if (symbol->isProtected()) { - return FuncProtectedIconType; + return symbol->isStatic() ? FuncProtectedStaticIconType : FuncProtectedIconType; } else if (symbol->isPrivate()) { - return FuncPrivateIconType; + return symbol->isStatic() ? FuncPrivateStaticIconType : FuncPrivateIconType; } } else if (symbol->enclosingScope() && symbol->enclosingScope()->isEnum()) { return EnumeratorIconType; } else if (symbol->isDeclaration() || symbol->isArgument()) { - if (symbol->isPublic()) - return VarPublicIconType; - else if (symbol->isProtected()) - return VarProtectedIconType; - else if (symbol->isPrivate()) - return VarPrivateIconType; + if (symbol->isPublic()) { + return symbol->isStatic() ? VarPublicStaticIconType : VarPublicIconType; + } else if (symbol->isProtected()) { + return symbol->isStatic() ? VarProtectedStaticIconType : VarProtectedIconType; + } else if (symbol->isPrivate()) { + return symbol->isStatic() ? VarPrivateStaticIconType : VarPrivateIconType; + } } else if (symbol->isEnum()) { return EnumIconType; } else if (symbol->isForwardClassDeclaration()) { @@ -156,6 +163,12 @@ QIcon Icons::iconForType(IconType type) const return _funcProtectedIcon; case FuncPrivateIconType: return _funcPrivateIcon; + case FuncPublicStaticIconType: + return _funcPublicStaticIcon; + case FuncProtectedStaticIconType: + return _funcProtectedStaticIcon; + case FuncPrivateStaticIconType: + return _funcPrivateStaticIcon; case NamespaceIconType: return _namespaceIcon; case VarPublicIconType: @@ -164,6 +177,12 @@ QIcon Icons::iconForType(IconType type) const return _varProtectedIcon; case VarPrivateIconType: return _varPrivateIcon; + case VarPublicStaticIconType: + return _varPublicStaticIcon; + case VarProtectedStaticIconType: + return _varProtectedStaticIcon; + case VarPrivateStaticIconType: + return _varPrivateStaticIcon; case SignalIconType: return _signalIcon; case SlotPublicIconType: diff --git a/src/libs/cplusplus/Icons.h b/src/libs/cplusplus/Icons.h index f042f901500..1e6802c7260 100644 --- a/src/libs/cplusplus/Icons.h +++ b/src/libs/cplusplus/Icons.h @@ -57,10 +57,16 @@ public: FuncPublicIconType, FuncProtectedIconType, FuncPrivateIconType, + FuncPublicStaticIconType, + FuncProtectedStaticIconType, + FuncPrivateStaticIconType, NamespaceIconType, VarPublicIconType, VarProtectedIconType, VarPrivateIconType, + VarPublicStaticIconType, + VarProtectedStaticIconType, + VarPrivateStaticIconType, SignalIconType, SlotPublicIconType, SlotProtectedIconType, @@ -81,10 +87,16 @@ private: QIcon _funcPublicIcon; QIcon _funcProtectedIcon; QIcon _funcPrivateIcon; + QIcon _funcPublicStaticIcon; + QIcon _funcProtectedStaticIcon; + QIcon _funcPrivateStaticIcon; QIcon _namespaceIcon; QIcon _varPublicIcon; QIcon _varProtectedIcon; QIcon _varPrivateIcon; + QIcon _varPublicStaticIcon; + QIcon _varProtectedStaticIcon; + QIcon _varPrivateStaticIcon; QIcon _signalIcon; QIcon _slotPublicIcon; QIcon _slotProtectedIcon; diff --git a/src/libs/cplusplus/cplusplus.qrc b/src/libs/cplusplus/cplusplus.qrc index 577d35cb45d..9b5812d83c1 100644 --- a/src/libs/cplusplus/cplusplus.qrc +++ b/src/libs/cplusplus/cplusplus.qrc @@ -1,5 +1,5 @@ <RCC> - <qresource prefix="/codemodel" > + <qresource prefix="/codemodel"> <file>images/class.png</file> <file>images/struct.png</file> <file>images/enum.png</file> @@ -17,5 +17,11 @@ <file>images/var.png</file> <file>images/var_priv.png</file> <file>images/var_prot.png</file> + <file>images/func_priv_st.png</file> + <file>images/func_prot_st.png</file> + <file>images/func_st.png</file> + <file>images/var_priv_st.png</file> + <file>images/var_prot_st.png</file> + <file>images/var_st.png</file> </qresource> </RCC> diff --git a/src/libs/cplusplus/images/func_priv_st.png b/src/libs/cplusplus/images/func_priv_st.png new file mode 100644 index 0000000000000000000000000000000000000000..1d6fa2da795a058ffad34a501f397b00a9459926 GIT binary patch literal 685 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl47z+b@LR^8|S_b77PMs!pEg%EP zMFxj5TAJ82kww@Tm=0z%H?nHL1w|Ry4yHFZu&4t?xEYvbm^ka1)qrd@2JS{q?J52# z^^B@OlX)3f1R2>HS=INYHr&~DWP4#tGpEj;_?kvG4WQlzR`mvEwK_%>e}DgaX4SyJ zz!&}NzHUGJX2!PbNnKyIo_Rfe%d<)AAM~y~8c^n<s`q*8saMlBKj~j{J$J$p*Szie zkt>zGg?Ra&Ph5XHZ}Lg!{C%bgTXn<NsQNCDa%5v>(U4P|>791oz2vBM#%|-dO<Ex< zmAn_oI=!B~{hD9RX~+CSmZ>`pqBm#+Em!b(cJ$oy_7#^r%1_$m9574TrWdhR&3}oU z+tVZGfDV(Ble<+o<$`O;F`LZ2CJ9?~!d9#JERu1aDQ>gRG;z04>_)BN6-r*y1kG0| z`z}*(pC@5IMZjc+h}9&1V^>$#e+lL_z|b)+3GxeO5PtqaEa=LQ2PywPytQMMTm0`s z&)I1~|2`;I{rWW1^!dN9QU!m${`;f-{NJZfUq5|4_37wqhW%zh?K?bO977}|O%LwX zV+mwvxcJ`NZIJ+%^1=xT+h?dMIff*0cP<Y&?|f!)%zMQO789wPzB{HCt(w~=VIRKE z*4=3GJQp#ad$BUUc2y43eA2X;YiE8{Se><dTk5A<-#Daq<(kzxn_XRab8{eD*uUyu zT`LYVZ)R72a6<X{gXgFA25-Jy*kBbA^8D47UB7L(1K2go^smg$``Pj&PUD*X-gilt zCrx2G`mbC(Gs?+Vv%XBpM0eq`DLW4*PdXmI^_bzqx4)0;0{y_?>FVdQ&MBb@0MAqo AG5`Po literal 0 HcmV?d00001 diff --git a/src/libs/cplusplus/images/func_prot_st.png b/src/libs/cplusplus/images/func_prot_st.png new file mode 100644 index 0000000000000000000000000000000000000000..d023fe1fd2111ab789b56268e3e73370f74fe85d GIT binary patch literal 679 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl47z+b@LR^8|S_b77PMs!pEg%EP zMFxj5TAJ82kww@Tm=0z%H?nHL1w|Ry4yHFZu&4t?xEYvbm^ka1)qrd@2JS{q?J52# z^^B@OlX)3f1R2@t8CCYBHZ*hU?1`^wWYah~bxE6$F;H(_Ldvf4t_Ehcheyw5$0flH zf6>40>-Mv6W^B8j)b(ZSnb*^|Je#!sLGQ|=0c9?#dY`wRdNpnHlm0c=b0-{e&D*XY zxl-9%h?oEQ#PzrHCZBZ9-)EYzRX2Q%s_z0RM>b{_4LQY`-f8FEOO9G+>^6?uq!qGK z$$Orp{p;D=uld!ScFaFynYz;;dV@yLas`js;<nG*S6uQaKWUe9z$|H-Uc_28|0Qy6 zGexa$6;8R}T5`-LbFWFl7M-yDkrj7VZhv**`aaXd-A1t+wSo^O)V{fRvnVxlm9p=4 zuPixf896z*OEXsFC#TJoR%8Qu&$J}SFPK62`3JF}D?c8j{QL0Mj#X~)zYjfUrv?4{ zpjh?m(@fLn|Gr8U{Q3It`M*!UWj_7W{q*PGy|&IEmOgHv0UJDB977}|Sr2aX3S(qw zxcL5ns8kCZXI8<*OJ@X@EIjKP@PhGHRsU~}?~yglP6Z``ts2cu)}~gLns?%D+(TKt zr(Sz-u>0@r<4Z4D-PvDr{QmEyTN-zVM}K&q=eajg`or`3TSxdFOpm;6$8cxOvk%_{ z3U<yqz3zNN_tlu2)=YDL$EH@)^X&T_IkoMt@M=fj(3KCrn)|26uhzQy;o?h^YgZyx nS^WsIUza_{E%d5-c<5Ii7GBND!0)RAL2>Kp>gTe~DWM4fMB@{E literal 0 HcmV?d00001 diff --git a/src/libs/cplusplus/images/func_st.png b/src/libs/cplusplus/images/func_st.png new file mode 100644 index 0000000000000000000000000000000000000000..05119102edc36a447a52ca8c81ea512a9a57f5f3 GIT binary patch literal 651 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl47?T2gLR^7dG*HW++`_5T#I6No zph+FdXlY{8L>4@l(cH+Y0T*FqU_6-K+`ys^5s_qI=VW9)kls|!tOgMgVPtP{i>zl< z1sc9Tt*M?-WnXGTGpEj;_?kvGjXFjZpxy>%wR&dN7yawLZa@2G#<uH8U0=4Ic|Cp0 zvq|e8^sYP_Q1*H2saMlBKj~j{J$J$p*Sziekt>zGKW#bneB%1sd6Q2%=kGI3*s2@8 zM%8zLl;el>$L{A%J?~y})H-9gaoi@Ykd;c_^CazG&)$B`ujaI4{vpfMod(exG=i2Z zc+3{Jecry}l1KSTyPN}NN!#=y)~fk0k#n0VYJID4$_3YwV>X$4O%k@~gsoQbStR2; zUD$G;Y2t39*o|7jE0nyZ37W4`_FbmnK2O4aih#)s5vxi3#(xWLOagk|xFpCgm?7xO zj|VBj&p(L0wPTf=^Y25?*=a8SJ}BlNUH$LFOjXan|30PO`Tg&!)W5I)p8xyw_0y+M z4apa^fZCUOx;TbNNX8!A=yf<iqT%BEXuV^O0^CYbEfJYqm(HF%SpK2#=)&#?FMjZc zz0R}V;=H5dpvm=<#ZTl5-_KsMtwHA2Z8d(i(|4L=R>z-Q>>c|yswKG8cGrgQJM&WC zJaaiOyXM~0Q~kF#9t~2Aye@XJRYkq`Xtwx?-s0}*dJfOFi=DS*Sh=kH)$OlJ?6wQD x-d$ZT^M*4do!{<Rg2LXcZ<Cvy*nB@c7x&t$Yq>k=!7or`d%F6$taD0e0szd&2F?Hg literal 0 HcmV?d00001 diff --git a/src/libs/cplusplus/images/static.png b/src/libs/cplusplus/images/static.png new file mode 100644 index 0000000000000000000000000000000000000000..12c244780de35d4ab03c74a147bc5890f82a2250 GIT binary patch literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`*`6+rAr`0KURcQ69Kg`>P+xIP zfM=7#CI?nyfwYXtR$&JxDMYsNPT(+ExNE9uK11B)kdL#2zpI!3>0mRy7g5+PY7?mF z+V(KRkhAh2v#MFi{WB*nCLNN9eizun8UAKtleO5MLo>Hdo?QQlaZd%`<~u>cZ-CY^ Nc)I$ztaD0e0syVKJKO*O literal 0 HcmV?d00001 diff --git a/src/libs/cplusplus/images/var_priv_st.png b/src/libs/cplusplus/images/var_priv_st.png new file mode 100644 index 0000000000000000000000000000000000000000..81ef73f3f94466e4357f94da7ba762ad0c291982 GIT binary patch literal 676 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl47&8KVLR^7dhM*Yk=v2<gWFP~? zMFRDkcCbYzAqg-ru&~r`+Rhe%B*-Vg7Lf>2!_L7ZEXop=0AfqZa7QL5b@nm>xj<t% zI2pNlStFC`Hg4N>@k-(RCFN^3u}37bh67Q8zrR02SUf{$d|+VUlBX}ve)}=^)%(b^ zSI>O?G56)WnNMF$d-%+2?@?WQ$1`8Q&w257+T$15mv36_JFc*Phs3<){6a!gpT5ex zcGvjeNtJE;<kxPKT)IwZ`T`a<HYH6>*D141kDb@pb5wcr9@*7fBo?m`nZ982yHA#< zujm{)t-kY+;>KMvD>sTQTzUA(vjs2T8lSkRz5k@@_5)JO*Ne_ye)#b-psVEM<T`KO zH9UG=bMG;gt^4HGY?WNHR(S4G!AY}JHtkm0yjynFX7NR<g=R12>6<3GV5QiCm4Y)D za`#N-n>drJd$Oym>t418CxO9YP!i-9%pm;ygILg&9}iOgeRylfD!2IGhn}<3f<7o# z{rWW1^!dN9QU!m${`;f-@6)GGr@nqY+U+s<0Z{L5PZ!4!iSW>q8@-qc8IFH^Z|=__ zBGb1)F~Hv<vtz-6g;6n89LK9Wt7m^^m0_JePhrPN*TNsp7gBU@1r!7xzI&<scWqtJ z@+d}+=&z?Qmwb<9ycBBtrA>-Y)ML%Q@5fd>T<m0Vy|Hw+`4cB!sT&e1hPlgL&u_5W zmsR#s%*HeS%JoLAKj-%D$^ZBKIMb#>8gp0e%CWuTU{V<*UiOY5u4RRN@mI-Dwg+Z9 sT<Py`tnr_Cm0|ILdWIeQST+7L{HxKsICXb^8qgaIp00i_>zopr0IbR(UH||9 literal 0 HcmV?d00001 diff --git a/src/libs/cplusplus/images/var_prot_st.png b/src/libs/cplusplus/images/var_prot_st.png new file mode 100644 index 0000000000000000000000000000000000000000..f078b2fd34058828a59edd71fda8c87d77ae8b81 GIT binary patch literal 658 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl47&8KVLR^7dhM*Yk=v2<gWFP~? zMFRDkcCbYzAqg-ru&~r`+Rhe%B*-Vg7Lf>2!_L7ZEXop=0AfqZa7QL5b@nm>xj<t% zI2pNl>o#sHU%QDtB5~@@y+Uyrtl^0XS=r@_SFnaB9KCTXE<FRJ5e$|*eR=lVkGZej zN1nZU=If8SFW=34`fA$4XI^`c>e@S=`TBj%i?`DrzsSCP(`w&wh4nim<}K$J5}Nw- zRpzz3#s^QTY}+TlcAMnVbwbk@u&}WyX==JonPqzHyvClR%A5DduHGWCc#Xi+d7IyT zvOIl7=g?{Oore@R?vh!#QEcH#fyr|gynJhX;-dEcld9VfNG)G4I)6F;#95s;?;0LG zuetY_%GP~yYqkdNI=J-K-SaPBschP<w0XDes?Cvm4qtfvHl?sga=}WcO*_xOej_ah z0#nalO3KR*XwJ(4dd;XL$S;^d`1uF1pesKfr2PBv){a$f@xKo}XQu^yP^|j(X{PD( ze_y2v{`~v*>9@?Mf4ZOk{JYoIX=`My1=PLV)5S4FLX!31MlBWwhK7g#FKad%Nk~kQ zSw8t_+9nOn&1Z}61m9U*!E`ij3eOX^SWW5f&RtJ_hlFleamnaUgyi`;@u^`Ct8-7> z{=R5S-}$YAdunxqX1`%blh5R?ZV)f#?PZiZbNB;CL4Mq{vi^_z&d#k&{m)YHdh4l# z60SU(@TCWT@MJ|zmCA|vxqIK5RUysH&o6uW&YrT0Pyf}km1>teSG_us9Qv2J?~hu6 TT>6qbpt$sO^>bP0l+XkKmZ2H2 literal 0 HcmV?d00001 diff --git a/src/libs/cplusplus/images/var_st.png b/src/libs/cplusplus/images/var_st.png new file mode 100644 index 0000000000000000000000000000000000000000..2070ca71b6b072b6afb028bb54d670a02af63ccb GIT binary patch literal 629 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl47=r_RLR^7dbPyE79i7S<namIr zgC<qKX$M<m60%_ZrtNGINFvNEY!Qi21%kqiZ0syy2@oz5pFnt3EhCT{6jQfxTlv~e z>=B8q;XstY5Ejo68o%V}%d_8p%zgDf^6b?!Uw_Pf`EKUZSJNIo^V)m#%-8R8Uc8<5 z_(k^Rn^yadE3DrkF>m>qFW;v=eU*9buJOT>D%<wSuiYlObe+)j1;;;sOTF>H^w@cg zJx7%{?~z@-MPl(9fvNL0zx!l)`ijn>)9O19DQ?^)vvQ-@!j%G(=PY>n*7(Fl?foZJ zw;zyNzFu_xa{h_4I&a=JJbGSp?=h9F`{dSam0Yq`c<xf(2{TkS?N-{nTXxlE@kOhJ zW-sRHn<lwnrPzX%f-@I#_e|xRIFqY;^6|js0YE?Nl?3?(GX!1v@gPO``3JGLcC2!9 z{(a~<JI&?a2gUrOt3S+C_5AxO_0I2qU#0&2`}FD4*RN(h=3+pdi#=T&LnI_w4{Cca zNn~ia_<V}L`wd22=0~Z=9wZ5}%syKG;Jj&u;jNz2vrCR{6Avf|=zhLp)v8rOKe7(( zx+J#8&y2smevS9-AI3A^fBLk|PxnLlK7RfG*KU2TKmJ?r!=DvXmoJSyplmvGK4YEa zES-8Lxt=W>t&V<X{O<PhiA+Iy$gH(`2YLgSrnyhwVYVvhtXO!Sy?f}&S-N#KJ*&Jz dW&2mH%HQUoZoY1Y6E7%oJzf1=);T3K0RWMP3Q_<7 literal 0 HcmV?d00001 diff --git a/src/plugins/classview/classviewutils.cpp b/src/plugins/classview/classviewutils.cpp index df84c472917..009a98d645b 100644 --- a/src/plugins/classview/classviewutils.cpp +++ b/src/plugins/classview/classviewutils.cpp @@ -54,6 +54,9 @@ const int IconSortOrder[] = { CPlusPlus::Icons::FuncPublicIconType, CPlusPlus::Icons::FuncProtectedIconType, CPlusPlus::Icons::FuncPrivateIconType, + CPlusPlus::Icons::FuncPublicStaticIconType, + CPlusPlus::Icons::FuncProtectedStaticIconType, + CPlusPlus::Icons::FuncPrivateStaticIconType, CPlusPlus::Icons::SignalIconType, CPlusPlus::Icons::SlotPublicIconType, CPlusPlus::Icons::SlotProtectedIconType, @@ -61,6 +64,9 @@ const int IconSortOrder[] = { CPlusPlus::Icons::VarPublicIconType, CPlusPlus::Icons::VarProtectedIconType, CPlusPlus::Icons::VarPrivateIconType, + CPlusPlus::Icons::VarPublicStaticIconType, + CPlusPlus::Icons::VarProtectedStaticIconType, + CPlusPlus::Icons::VarPrivateStaticIconType, CPlusPlus::Icons::EnumeratorIconType, CPlusPlus::Icons::KeywordIconType, CPlusPlus::Icons::MacroIconType, -- GitLab