From acdef6669f8e179ac14ff1be1d974e1230879c51 Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Wed, 1 Nov 2023 12:12:26 +0100 Subject: [PATCH] FusionStyle: re-add icons for dockwidget titlebar Re-add the icon for dockwidget titlebars as png images in different resolutions to avoid a blurry icon on high-dpi displays. Also add the source svg. Task-number: QTBUG-118122 Task-number: QTBUG-118643 Change-Id: I24f710e3c7390762c7079c0e153f015475347591 Reviewed-by: Axel Spoerl --- src/widgets/CMakeLists.txt | 30 ++++++ .../styles/images/fusion_closedock-10.png | Bin 0 -> 349 bytes .../styles/images/fusion_closedock-16.png | Bin 0 -> 432 bytes .../styles/images/fusion_closedock-20.png | Bin 0 -> 540 bytes .../styles/images/fusion_closedock-32.png | Bin 0 -> 530 bytes .../styles/images/fusion_closedock-48.png | Bin 0 -> 869 bytes .../styles/images/fusion_closedock-64.png | Bin 0 -> 910 bytes .../styles/images/fusion_closedock.svg | 93 ++++++++++++++++++ .../images/fusion_normalizedockup-16.png | Bin 0 -> 395 bytes .../images/fusion_normalizedockup-32.png | Bin 0 -> 570 bytes .../styles/images/fusion_normalizedockup.svg | 84 ++++++++++++++++ .../images/fusion_normalizedockup_10.png | Bin 0 -> 310 bytes .../images/fusion_normalizedockup_20.png | Bin 0 -> 456 bytes .../images/fusion_normalizedockup_48.png | Bin 0 -> 749 bytes .../images/fusion_normalizedockup_64.png | Bin 0 -> 887 bytes .../styles/images/fusion_titlebar-min-10.png | Bin 0 -> 191 bytes .../styles/images/fusion_titlebar-min-16.png | Bin 0 -> 153 bytes .../styles/images/fusion_titlebar-min-20.png | Bin 0 -> 210 bytes .../styles/images/fusion_titlebar-min-32.png | Bin 0 -> 243 bytes .../styles/images/fusion_titlebar-min-48.png | Bin 0 -> 187 bytes .../styles/images/fusion_titlebar-min-64.png | Bin 0 -> 205 bytes .../styles/images/fusion_titlebar-min.svg | 75 ++++++++++++++ src/widgets/styles/qfusionstyle.cpp | 45 +++++++++ src/widgets/styles/qfusionstyle_p.h | 1 + 24 files changed, 328 insertions(+) create mode 100644 src/widgets/styles/images/fusion_closedock-10.png create mode 100644 src/widgets/styles/images/fusion_closedock-16.png create mode 100644 src/widgets/styles/images/fusion_closedock-20.png create mode 100644 src/widgets/styles/images/fusion_closedock-32.png create mode 100644 src/widgets/styles/images/fusion_closedock-48.png create mode 100644 src/widgets/styles/images/fusion_closedock-64.png create mode 100644 src/widgets/styles/images/fusion_closedock.svg create mode 100644 src/widgets/styles/images/fusion_normalizedockup-16.png create mode 100644 src/widgets/styles/images/fusion_normalizedockup-32.png create mode 100644 src/widgets/styles/images/fusion_normalizedockup.svg create mode 100644 src/widgets/styles/images/fusion_normalizedockup_10.png create mode 100644 src/widgets/styles/images/fusion_normalizedockup_20.png create mode 100644 src/widgets/styles/images/fusion_normalizedockup_48.png create mode 100644 src/widgets/styles/images/fusion_normalizedockup_64.png create mode 100644 src/widgets/styles/images/fusion_titlebar-min-10.png create mode 100644 src/widgets/styles/images/fusion_titlebar-min-16.png create mode 100644 src/widgets/styles/images/fusion_titlebar-min-20.png create mode 100644 src/widgets/styles/images/fusion_titlebar-min-32.png create mode 100644 src/widgets/styles/images/fusion_titlebar-min-48.png create mode 100644 src/widgets/styles/images/fusion_titlebar-min-64.png create mode 100644 src/widgets/styles/images/fusion_titlebar-min.svg diff --git a/src/widgets/CMakeLists.txt b/src/widgets/CMakeLists.txt index 9b0a2703205..f77117dc563 100644 --- a/src/widgets/CMakeLists.txt +++ b/src/widgets/CMakeLists.txt @@ -327,6 +327,36 @@ qt_internal_add_resource(Widgets "qstyle1" ${qstyle1_resource_files} ) +set(qstyle_resource_fusion_files + "styles/images/fusion_closedock-10.png" + "styles/images/fusion_closedock-16.png" + "styles/images/fusion_closedock-20.png" + "styles/images/fusion_closedock-32.png" + "styles/images/fusion_closedock-48.png" + "styles/images/fusion_closedock-64.png" + "styles/images/fusion_normalizedockup_10.png" + "styles/images/fusion_normalizedockup-16.png" + "styles/images/fusion_normalizedockup_20.png" + "styles/images/fusion_normalizedockup-32.png" + "styles/images/fusion_normalizedockup_48.png" + "styles/images/fusion_normalizedockup_64.png" + "styles/images/fusion_titlebar-min-10.png" + "styles/images/fusion_titlebar-min-16.png" + "styles/images/fusion_titlebar-min-20.png" + "styles/images/fusion_titlebar-min-32.png" + "styles/images/fusion_titlebar-min-48.png" + "styles/images/fusion_titlebar-min-64.png" +) + +qt_internal_add_resource(Widgets "qstyle_fusion" + PREFIX + "/qt-project.org/styles/fusionstyle" + BASE + "styles" + FILES + ${qstyle_resource_fusion_files} +) + if(QT_FEATURE_reduce_relocations AND UNIX AND GCC) target_link_options(Widgets PRIVATE "LINKER:--dynamic-list=${CMAKE_CURRENT_LIST_DIR}/QtWidgets.dynlist") diff --git a/src/widgets/styles/images/fusion_closedock-10.png b/src/widgets/styles/images/fusion_closedock-10.png new file mode 100644 index 0000000000000000000000000000000000000000..c364f0a8b20e8c19cd7e5bd366281a274945d0f7 GIT binary patch literal 349 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4aTa()7Besim4Gngy)^j>prB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt-=ST^vIsruI%S^m0xVXxV@F z?@8G`jS)9*XH3(Pe%Ww`ZziMdKEwCkk!f|NXtL#(zX9WmThO zTHD0at8SfEW8S7vsWVCaE%!#hYrntE`MdsL(55$M_o=_tZt#rSde5(G%H+sc{q)kk zJRculyWQy-#i#;w)fDptt6eLq1b+!1iFN7OyJPW!*t36L{$zZj<&>weOt44(_4M0* z;bkp7ZO_w1_BmO;n&gslw~+UzgQW*UTAJmbkdD`tf2;Tnq{6yh9Jpd53HlJK@_Uyy|v8v{?51)P{9=xsm(3ddz*Fax0c)I$ztaD0e0sx#-lK=n! literal 0 HcmV?d00001 diff --git a/src/widgets/styles/images/fusion_closedock-16.png b/src/widgets/styles/images/fusion_closedock-16.png new file mode 100644 index 0000000000000000000000000000000000000000..e3906770a1cd38e4bcd05f07dfcb160011e0e2de GIT binary patch literal 432 zcmV;h0Z;ykP)vo4(-pMyPYWoOP2Yc7)G%H!Y(`i;jlSj~_MD!}JncF}euYo49 zKv}KC#+aIje55wH6(|B@@$_VFX#Np~;Rx}n3PYgasC___CxJ3B7FTOQ&>O4;}{967EY17p67y<7`O#jT^ni-rY3Zy>JLP~ueF`jQd<@s($7(|X;IG23+L a%J>9CRE~2}V{aY+0000ZoZXMo4_RKm_t)Q? zL-iBn>Okxi>k(p7xD~wQlJTR*$pHeQB?)-@_=p0=@6^^)M^SQ-8x=f_DbIJPZ^- eFAqDrC;k95b=7)TM~o2w0000k8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10iQ`k zK~z|U?U%7q!axv)|7CapONW9&-;EFs3gVCgYAj#~ML03Mn}rsRrKN?FwFrmt%w6ut zL<`+2IYPcKd*t5%`0GXLU_2Tm08M`e%iG=EAp(GI$z=-Q9l%q|^!|~h3jiQI?__q} zCVeb|M=<*8ywfJkrD_F47(^2hY&_;O)n11c5d=t}4pbmbngp+{nJ$K28Mgnyq;~G|H3AiR)6A9ZitQ;)NSXaGj zg#^}B61D+m>%fb?P&Zgi1FX~GS8oBi&k|;wp42sD^z9(xMJf-*@T!@HSwh6IsqJ U`X^4a7ytkO07*qoM6N<$f|)1bF8}}l literal 0 HcmV?d00001 diff --git a/src/widgets/styles/images/fusion_closedock-48.png b/src/widgets/styles/images/fusion_closedock-48.png new file mode 100644 index 0000000000000000000000000000000000000000..d0215be922f180c5d320dfb12209979031b9b06d GIT binary patch literal 869 zcmV-r1DgDaP)A;Etrp>$?J z2RjFWQXnn^JT+$?V?rbL|sP7QT=kw`(h*frQ|1k#xA*p5eksDlPNPwY&>`O0lUD21 zcb8|K-ax%xFPD_*2&{`yovp2BcipUxYNyetL=trnszxt#n$4%nF3(#7#O8t6bU81? zg?VHdK%n9ZVFfV8e5}k6!{%eTLRbNm#JpwHe5|qRE{s?AsczVEL_q7R47#}cRz zExfiF%L>3l)xo4qt|diuX!9m^8jXtL{DAZwzh{(g+IX`9*loAFp7ClEASRYmQrQft zXGGU*S2*iQoEKsm=D~3p%?dFs^N?XDc7>RxdB_+g93VbK5*sOz zX>tZ|%{E0v@gz9`WDRE1gs=w4n<}RTVFgfBB%TI@6+nazCzwCccvYKtu-k5THKh&U zB&Azfv})OSvjR9b@)$@m*E6Cwf*?4y84Dl?f@9C9YSNo9(8W7@Vl$Q%Kp2L-b1gMS zAu^}Rq;fLQ6?Im#Jz}(;#A6_GN8(`!SM%VwjD}&@(|8*g4sC0Gk}l?i;n3h!T@QDi zPp5+*I04pOpPMk|an>>C{`D$U8 vIUT&ZTtZ5(k-kG-vHBmnuiC}6{ww_kIMV3vQ8ig300000NkvXXu0mjf;NyvJ literal 0 HcmV?d00001 diff --git a/src/widgets/styles/images/fusion_closedock-64.png b/src/widgets/styles/images/fusion_closedock-64.png new file mode 100644 index 0000000000000000000000000000000000000000..43ab9561f13c649cc4e005c653125e62bb7cca58 GIT binary patch literal 910 zcmV;919AL`P)Hq)$8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10~<+1 zK~#90?V3H7(=Zf;uja6TDHzUy4bTk@H5Dub7{|d;$QH5%#fC3s? z8XiT)CX+u~(tFYz;@icRqIbW@wsaj}(4axbEVb*HE^-549J?4%DSWtlcK>2NpZ{4u zd}p)Wq!_&i@FH4au|#bGhjo%0QFg@o=Bp{08aOv z?E>(%GK*)t1;v#v@=pMs>^r}82^^aS0I3T|EfxUNVw~woZn1k^!7ZgH`K5l9PdUCU z7{Ig`X9Th!jC3ImLFr<23BnW#Z#W-T-!(ZzKU>(|mh8 z6oMCk1LhlXLfB`%Js$$W89)#7jW{55nQzGw{koQwu{i*8=mWt2 zDIf(Qs(B!69l#ACx_KacCCCLKiFtr$FAxeLnR%c)5a}zbYCF@D93b?)6KA@}0nqPM z<^kUAu-8mTX&&Iu1AHL#6}x#rCJ>Q;AYvYnON2Nfh?xguBQXvLqUHhlOfUq3xOpH} zC`uF~EA)~y0G~xpBguHJl_Y==^NqwINCDt5-$)dK1OQI+jl>{u1CTJ^NCW~W0Iyx0 zV6xOpTmZbcw8HUPr#JwF?&qa5#)Aq4z!hdBgAf9MJIP4`!54s3j1?V%4*=;5FDeB0 zcY~9>bTn@~c6BQVfN|)Pt!i_V`wSrU1^vw|D`T}o`x_%w#%hO|Kp^$abrAP=gJ!W* zP(VSL*8#k4f;}K`h8bNDyv+jvkHG^FB$Awc5Q5ADfeWD>5F}%) zO$fo}0fwb;X%Zqf{a$IzM!_3&1HrPZ_JZb=tZF2y~UAkQmzKZ3{qc-d!kCZ{w5{PXxL; kyZ0bVUB{q7gKn4p0u&XyD1S;k>Hq)$07*qoM6N<$f=S|Y)Bpeg literal 0 HcmV?d00001 diff --git a/src/widgets/styles/images/fusion_closedock.svg b/src/widgets/styles/images/fusion_closedock.svg new file mode 100644 index 00000000000..627c6e35df2 --- /dev/null +++ b/src/widgets/styles/images/fusion_closedock.svg @@ -0,0 +1,93 @@ + +image/svg+xml + + + + + + + + + + + diff --git a/src/widgets/styles/images/fusion_normalizedockup-16.png b/src/widgets/styles/images/fusion_normalizedockup-16.png new file mode 100644 index 0000000000000000000000000000000000000000..6154747952216d105a3769e7863acf5ae00fc96d GIT binary patch literal 395 zcmV;60d)R}P)C#5-uFUA}=6TK86Ib zvopOZ5`}QOW1%N^$)0#RunRl?%(wpx{4)d~Y&M>N`I5ckb`&r31sIn7Iqj)>#o%bi z&~=|yaa>=<@niZ{FJANnNCbx2gRo{*_Ohip2ggBu*F?^MRfJOn`xc$tDfGaW3IQg% zDbTHoBo5@45DRF3$lR?>7~6AC--q{m<*d=Pn0`qHZ7P p|2R(pU=%hR&t)2cQOSCLd;rxLQs*ae0?q&c002ovPDHLkV1jOLp>qHL literal 0 HcmV?d00001 diff --git a/src/widgets/styles/images/fusion_normalizedockup-32.png b/src/widgets/styles/images/fusion_normalizedockup-32.png new file mode 100644 index 0000000000000000000000000000000000000000..d9d81af3ebf848c19cf5d83dbce64bd53fca35e9 GIT binary patch literal 570 zcmV-A0>%A_P)k8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10mn&1 zK~z|U?Uz4m6hRn=pLh1uz!5>q2mwuLks=Twq)jO(`2d2&t^4PS*!U$vBDuYUJu69L zsht=QyHshcv@oEBc0%AnII_2|#qEVexV>2}dl9@}H3Pqy=V6MMUHIQ4{YB{4HbB1U?MOPC`mvn zp6A^%aBWz#_$bba1E<+?!IAWLHm=%Z6X?RB11NkIk1~@{5rI8m1*K+lS@wy2it49J5fJD4!z4-W*j@&3quV`s*?RTsQUn@} zMh7@7B2Y9}K8P;9fHD*M?zd8j%FF-(-OT=2?v*NV#+sy;KmAF69O?(hZ2$lO07*qo IM6N<$f`WnpRsaA1 literal 0 HcmV?d00001 diff --git a/src/widgets/styles/images/fusion_normalizedockup.svg b/src/widgets/styles/images/fusion_normalizedockup.svg new file mode 100644 index 00000000000..c422036842c --- /dev/null +++ b/src/widgets/styles/images/fusion_normalizedockup.svg @@ -0,0 +1,84 @@ + +image/svg+xml + + + + + + + + + + + diff --git a/src/widgets/styles/images/fusion_normalizedockup_10.png b/src/widgets/styles/images/fusion_normalizedockup_10.png new file mode 100644 index 0000000000000000000000000000000000000000..02c453563c3b6939cc5483bf2499ccbf6b9318da GIT binary patch literal 310 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4aTa()7Besim4Gngy)^j>prB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt+c=T^vIsruI%)=*Ju=;Cg;; z?V=i{`vIO!hZI+JDQ^wE?R#47hL_AN6Wy2jA)!~2C;0vnt~jz!lI5n;zopr E00@nK;s5{u literal 0 HcmV?d00001 diff --git a/src/widgets/styles/images/fusion_normalizedockup_20.png b/src/widgets/styles/images/fusion_normalizedockup_20.png new file mode 100644 index 0000000000000000000000000000000000000000..c3042b04d65ae510b8200a8d77bc7c33f4a1b52c GIT binary patch literal 456 zcmV;(0XP1MP)O zugZD2C0SHgf#Kk$>&^v+Wwk6S%m|Y0mr(oiRw0={gw)Ue0Wfgb7Dx*`Ao2vv_J3Vd z&V;jPmFuvdhmNeuslVUc4Xc&CjXUkFTUbm~A#VOZ7`Zk>qof5Uf&1}6(OX2O1ig8; z=J;2j7+ENJ?s^0{jdD?~H+RB{gP_P6N(GUXum(k+#nH>C0S3TYtf`FeTeUq7a^CdG&k_QwN7(vm6 z=Q*dqv<~2CPW9{pwV-&mS`FTIEvn}_s|^fo@c)tv6R#&qq1^_Im=A!Sv zNa}AS!1Ly(z_bp+F_Sz|7~FPU=W?wUyiDS6)IuWm3_zI`zr|q%%qDdnSdLWnms;<7=6Kl^_0NjKhg-H?P+$E6am;5d_^g_%DFkqh0Q3h=z!&b2i84ly3w z4}vdgV){ueV8L-FLz|ugn2PtHxwI42R+zu%I44a+B;GQ#)eZc!cs&R>*tV2sl0$C> zn649rZ2%DP0g!bzO*nxrN{WA)ozN2Si}_g)tbB`@9;J!*D$ZSiG7&KHj}nD|yeS0a zO(7s}3ITbO+2gb>L^573myavv38CHn`x%BiP_c+V>b%SVISCL_JH7a{5vpd=TsgIn ze2*+1iv0bIX+bp?m;F~sGvz)5LRhQS8;^D4hhYYc(7FTrZQArICDGnhuunU-kHi89 z@Rla9_o fcivSL{8#)2c0HjZx}7h100000NkvXXu0mjfrPfk~ literal 0 HcmV?d00001 diff --git a/src/widgets/styles/images/fusion_normalizedockup_64.png b/src/widgets/styles/images/fusion_normalizedockup_64.png new file mode 100644 index 0000000000000000000000000000000000000000..e9bd907f90b311d7e6e984bd7eb035ce13a7e9b2 GIT binary patch literal 887 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9E(G9b*j{7}U!prB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&3=GUHo-U3d6?5Lsvd|$`GHu^CS%sx?|Rp%@m_J!`gzZ5yB7uaUtsjmtiGgK#kIoc zrA2p_Q&4dLS75@Ux3?EBo@xF0bG{PiRfQ7nH@b2&4>-vhEG@U1b3N$Pya$i!l}|}d zIP>WLrITmcOS`jnvT{@$=y}?8(9xjJWy-k*1Bt-Jicw4fN7kqPNeXNa)6BE8<~}0r za67&k?E7RyKwvO8){9*26tJ0a`e_-%fkvwnQYO(_4O5h-HSRs1Z6(HUQps)b`1e1q zjdI^)ePtOKSO3=dy~ZPk`*+{8EXJ^`86Bs}TLZM~65lyToSnw?VEUrtN0SPjm!}19 zcMy7UlkpADol{TGWn9#n9C|$RdSN`f@BE{cL4y9TE@&w~JIZ`9D#3Slcdf$#xAO1T zrsdtez^Ku|&0v@HZZxOYfOD3A5-mcOPMU|;6SJ6uq-c=GJ{Jk>`kW)&+gUS7aZ#mM(p{Ycn?Rjd+w zG7fnNU5SbgWiYNQY?+ZZdE*orp13!!?ai`owI5B&)T?9GsNEpBo}*?CFw-!2y85}S Ib4q9e0NXx=D*ylh literal 0 HcmV?d00001 diff --git a/src/widgets/styles/images/fusion_titlebar-min-10.png b/src/widgets/styles/images/fusion_titlebar-min-10.png new file mode 100644 index 0000000000000000000000000000000000000000..c0e13fb3eb0a2a5a53657ca8605fa5cc87e67922 GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4aTa()7Besim4Gngy)^j>prB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt(>DE{-7*QHK#!^NVaGS9@sK>z>% literal 0 HcmV?d00001 diff --git a/src/widgets/styles/images/fusion_titlebar-min-16.png b/src/widgets/styles/images/fusion_titlebar-min-16.png new file mode 100644 index 0000000000000000000000000000000000000000..7030dfd3d42cb56100b34c38471d737571bd629e GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9Fx?I6t9|MX)jP*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IXpdvL-7sn8b-sA)c*2M`C3~mz2 u>e_$pH_lq-Gn@1JahH|c8fFO(7#Wu4v#|YS@~j5xVDNPHb6Mw<&;$UDEGu~c literal 0 HcmV?d00001 diff --git a/src/widgets/styles/images/fusion_titlebar-min-20.png b/src/widgets/styles/images/fusion_titlebar-min-20.png new file mode 100644 index 0000000000000000000000000000000000000000..0f7cfa3a1e8f5bb668c3a89c7a86e3cf6b2cb0c4 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F$06j3lL^(N@kS-3QCr^ zMwA5SrER21*&;uvDlo17rQx;R0khe@YF z@R-Jl69GRCA6nqBicv?$Ue9O7h6l`Z_>=!6CV3?M_`ZK$2=o6x4+~Nf5-b=V8&Aw) zP;@9|ei)aQkYsV-L%(2ukPO?O#0m%3?-v*u7_=7(cExNuR0On&!PC{xWt~$(697l= BMG^o2 literal 0 HcmV?d00001 diff --git a/src/widgets/styles/images/fusion_titlebar-min-32.png b/src/widgets/styles/images/fusion_titlebar-min-32.png new file mode 100644 index 0000000000000000000000000000000000000000..e7764ca294f2448140b308e73e83d93286ad1435 GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3lJ`iR+vu$BBP*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IXprQs(7srr@*5m{U*2M`TJxzfI zTy6(7K%6DaZW4!Y+?dflai-bP0l+XkK^+8-_ literal 0 HcmV?d00001 diff --git a/src/widgets/styles/images/fusion_titlebar-min-48.png b/src/widgets/styles/images/fusion_titlebar-min-48.png new file mode 100644 index 0000000000000000000000000000000000000000..0d4d1f8ca416623a79750d0834f715e4ea8a2ecf GIT binary patch literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC&H|6fVg`nYsUXaFGuQkwP*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IXpdt@X7srr{#<%AUxeh3ZxHwKe z&82vpvuXL&Q+}s^2&Uc2{kD_^sEmQ3U`Dp-9{)V+{xda8_5SmI?^CW967Y2}VZ7MK c&(Lv|apr0kq4g&+cZ1Y=y85}Sb4q9e07k()9smFU literal 0 HcmV?d00001 diff --git a/src/widgets/styles/images/fusion_titlebar-min-64.png b/src/widgets/styles/images/fusion_titlebar-min-64.png new file mode 100644 index 0000000000000000000000000000000000000000..84923f04ca9f680ee12dae20d514dd01f8686295 GIT binary patch literal 205 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9E(G9b*j{7}U!prB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt)lWE{-7;bKYJs-v%ZDw?wt5T8D!soN{bw%7Mkr{okE&v?zWYw!$<6ZI>fe_y{|Y;y!!v=;!`Q(} n;Vi?;1{3Bb%$I-y3=AHbvK1^6{4EwYKzco0{an^LB{Ts54=6!M literal 0 HcmV?d00001 diff --git a/src/widgets/styles/images/fusion_titlebar-min.svg b/src/widgets/styles/images/fusion_titlebar-min.svg new file mode 100644 index 00000000000..353df2874f7 --- /dev/null +++ b/src/widgets/styles/images/fusion_titlebar-min.svg @@ -0,0 +1,75 @@ + +image/svg+xml + + + + + + + + + + + diff --git a/src/widgets/styles/qfusionstyle.cpp b/src/widgets/styles/qfusionstyle.cpp index a569529afbd..7e88541cb26 100644 --- a/src/widgets/styles/qfusionstyle.cpp +++ b/src/widgets/styles/qfusionstyle.cpp @@ -3632,12 +3632,50 @@ QRect QFusionStyle::subElementRect(SubElement sr, const QStyleOption *opt, const return r; } +/*! + \reimp +*/ +QIcon QFusionStyle::iconFromTheme(StandardPixmap standardIcon) const +{ + QIcon icon; +#if QT_CONFIG(imageformat_png) + auto addIconFiles = [](QStringView prefix, QIcon &icon) + { + const auto fullPrefix = QStringLiteral(":/qt-project.org/styles/fusionstyle/images/") + prefix; + static constexpr auto dockTitleIconSizes = {10, 16, 20, 32, 48, 64}; + for (int size : dockTitleIconSizes) + icon.addFile(fullPrefix + QString::number(size) + QStringLiteral(".png"), + QSize(size, size)); + }; + switch (standardIcon) { + case SP_TitleBarNormalButton: + addIconFiles(u"fusion_normalizedockup-", icon); + break; + case SP_TitleBarMinButton: + addIconFiles(u"fusion_titlebar-min-", icon); + break; + case SP_TitleBarCloseButton: + case SP_DockWidgetCloseButton: + addIconFiles(u"fusion_closedock-", icon); + break; + default: + break; + } +#else // imageformat_png + Q_UNUSED(standardIcon); +#endif // imageformat_png + return icon; +} + /*! \reimp */ QIcon QFusionStyle::standardIcon(StandardPixmap standardIcon, const QStyleOption *option, const QWidget *widget) const { + const auto icon = iconFromTheme(standardIcon); + if (!icon.availableSizes().isEmpty()) + return icon; return QCommonStyle::standardIcon(standardIcon, option, widget); } @@ -3647,6 +3685,13 @@ QIcon QFusionStyle::standardIcon(StandardPixmap standardIcon, const QStyleOption QPixmap QFusionStyle::standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt, const QWidget *widget) const { + auto getDevicePixelRatio = [](const QWidget *widget) + { + return widget ? widget->devicePixelRatio() : qApp->devicePixelRatio(); + }; + const auto icon = iconFromTheme(standardPixmap); + if (!icon.availableSizes().isEmpty()) + return icon.pixmap(QSize(16, 16), getDevicePixelRatio(widget)); return QCommonStyle::standardPixmap(standardPixmap, opt, widget); } diff --git a/src/widgets/styles/qfusionstyle_p.h b/src/widgets/styles/qfusionstyle_p.h index d2a2e16b12d..7dfeb34d7cb 100644 --- a/src/widgets/styles/qfusionstyle_p.h +++ b/src/widgets/styles/qfusionstyle_p.h @@ -54,6 +54,7 @@ public: int styleHint(StyleHint hint, const QStyleOption *option = nullptr, const QWidget *widget = nullptr, QStyleHintReturn *returnData = nullptr) const override; QRect itemPixmapRect(const QRect &r, int flags, const QPixmap &pixmap) const override; + QIcon iconFromTheme(StandardPixmap standardIcon) const; QIcon standardIcon(StandardPixmap standardIcon, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const override; QPixmap standardPixmap(StandardPixmap standardPixmap, const QStyleOption *opt,