From 4c0c9cedf8c87914c1edc65989769bb9e161c7cb Mon Sep 17 00:00:00 2001 From: maelstrom Date: Mon, 7 Apr 2025 16:12:15 +0200 Subject: [PATCH] refactor(editor): turned icons into their own theme --- .../actions/48}/delete.png | Bin .../actions/48}/drag.png | Bin .../actions/48}/new.png | Bin .../actions/48}/open.png | Bin .../actions/48}/save.png | Bin .../actions/48}/snap05.png | Bin .../actions/48}/snap1.png | Bin .../actions/48}/snapoff.png | Bin .../editor-dark/actions/48/surface-glue.png | Bin 0 -> 1024 bytes .../editor-dark/actions/48/surface-inlets.png | Bin 0 -> 757 bytes .../editor-dark/actions/48/surface-smooth.png | Bin 0 -> 522 bytes .../editor-dark/actions/48/surface-studs.png | Bin 0 -> 775 bytes .../actions/48/surface-universal.png | Bin 0 -> 925 bytes .../editor-dark/actions/48/surface-weld.png | Bin 0 -> 843 bytes assets/icons/editor-dark/index.theme | 8 + assets/icons/editor/actions/48/delete.png | Bin 0 -> 715 bytes assets/icons/editor/actions/48/drag.png | Bin 0 -> 354 bytes assets/icons/editor/actions/48/new.png | Bin 0 -> 294 bytes assets/icons/editor/actions/48/open.png | Bin 0 -> 688 bytes assets/icons/editor/actions/48/save.png | Bin 0 -> 774 bytes assets/icons/editor/actions/48/snap05.png | Bin 0 -> 868 bytes assets/icons/editor/actions/48/snap1.png | Bin 0 -> 836 bytes assets/icons/editor/actions/48/snapoff.png | Bin 0 -> 865 bytes .../icons/editor/actions/48/surface-glue.png | Bin 0 -> 1152 bytes .../editor/actions/48/surface-inlets.png | Bin 0 -> 843 bytes .../editor/actions/48/surface-smooth.png | Bin 0 -> 570 bytes .../icons/editor/actions/48/surface-studs.png | Bin 0 -> 835 bytes .../editor/actions/48/surface-universal.png | Bin 0 -> 1033 bytes .../icons/editor/actions/48/surface-weld.png | Bin 0 -> 929 bytes assets/icons/editor/index.theme | 8 + assets/src/glue.svg | 92 +++++++ assets/src/inlets.svg | 103 ++++++++ assets/src/smooth.svg | 86 +++++++ assets/src/studs.svg | 113 +++++++++ assets/src/universal.svg | 154 ++++++++++++ assets/src/weld.svg | 102 ++++++++ editor/mainwindow.cpp | 23 ++ editor/mainwindow.ui | 224 ++++++++++++++---- 38 files changed, 866 insertions(+), 47 deletions(-) rename assets/icons/{editor => editor-dark/actions/48}/delete.png (100%) rename assets/icons/{editor => editor-dark/actions/48}/drag.png (100%) rename assets/icons/{editor => editor-dark/actions/48}/new.png (100%) rename assets/icons/{editor => editor-dark/actions/48}/open.png (100%) rename assets/icons/{editor => editor-dark/actions/48}/save.png (100%) rename assets/icons/{editor => editor-dark/actions/48}/snap05.png (100%) rename assets/icons/{editor => editor-dark/actions/48}/snap1.png (100%) rename assets/icons/{editor => editor-dark/actions/48}/snapoff.png (100%) create mode 100644 assets/icons/editor-dark/actions/48/surface-glue.png create mode 100644 assets/icons/editor-dark/actions/48/surface-inlets.png create mode 100644 assets/icons/editor-dark/actions/48/surface-smooth.png create mode 100644 assets/icons/editor-dark/actions/48/surface-studs.png create mode 100644 assets/icons/editor-dark/actions/48/surface-universal.png create mode 100644 assets/icons/editor-dark/actions/48/surface-weld.png create mode 100644 assets/icons/editor-dark/index.theme create mode 100644 assets/icons/editor/actions/48/delete.png create mode 100644 assets/icons/editor/actions/48/drag.png create mode 100644 assets/icons/editor/actions/48/new.png create mode 100644 assets/icons/editor/actions/48/open.png create mode 100644 assets/icons/editor/actions/48/save.png create mode 100644 assets/icons/editor/actions/48/snap05.png create mode 100644 assets/icons/editor/actions/48/snap1.png create mode 100644 assets/icons/editor/actions/48/snapoff.png create mode 100644 assets/icons/editor/actions/48/surface-glue.png create mode 100644 assets/icons/editor/actions/48/surface-inlets.png create mode 100644 assets/icons/editor/actions/48/surface-smooth.png create mode 100644 assets/icons/editor/actions/48/surface-studs.png create mode 100644 assets/icons/editor/actions/48/surface-universal.png create mode 100644 assets/icons/editor/actions/48/surface-weld.png create mode 100644 assets/icons/editor/index.theme create mode 100644 assets/src/glue.svg create mode 100644 assets/src/inlets.svg create mode 100644 assets/src/smooth.svg create mode 100644 assets/src/studs.svg create mode 100644 assets/src/universal.svg create mode 100644 assets/src/weld.svg diff --git a/assets/icons/editor/delete.png b/assets/icons/editor-dark/actions/48/delete.png similarity index 100% rename from assets/icons/editor/delete.png rename to assets/icons/editor-dark/actions/48/delete.png diff --git a/assets/icons/editor/drag.png b/assets/icons/editor-dark/actions/48/drag.png similarity index 100% rename from assets/icons/editor/drag.png rename to assets/icons/editor-dark/actions/48/drag.png diff --git a/assets/icons/editor/new.png b/assets/icons/editor-dark/actions/48/new.png similarity index 100% rename from assets/icons/editor/new.png rename to assets/icons/editor-dark/actions/48/new.png diff --git a/assets/icons/editor/open.png b/assets/icons/editor-dark/actions/48/open.png similarity index 100% rename from assets/icons/editor/open.png rename to assets/icons/editor-dark/actions/48/open.png diff --git a/assets/icons/editor/save.png b/assets/icons/editor-dark/actions/48/save.png similarity index 100% rename from assets/icons/editor/save.png rename to assets/icons/editor-dark/actions/48/save.png diff --git a/assets/icons/editor/snap05.png b/assets/icons/editor-dark/actions/48/snap05.png similarity index 100% rename from assets/icons/editor/snap05.png rename to assets/icons/editor-dark/actions/48/snap05.png diff --git a/assets/icons/editor/snap1.png b/assets/icons/editor-dark/actions/48/snap1.png similarity index 100% rename from assets/icons/editor/snap1.png rename to assets/icons/editor-dark/actions/48/snap1.png diff --git a/assets/icons/editor/snapoff.png b/assets/icons/editor-dark/actions/48/snapoff.png similarity index 100% rename from assets/icons/editor/snapoff.png rename to assets/icons/editor-dark/actions/48/snapoff.png diff --git a/assets/icons/editor-dark/actions/48/surface-glue.png b/assets/icons/editor-dark/actions/48/surface-glue.png new file mode 100644 index 0000000000000000000000000000000000000000..1816199525d60eea5a44562bb58d274e97a85b1f GIT binary patch literal 1024 zcmV+b1poVqP)U zK~z|U?UzrelvNbKf9IZW#tI7w7m|TOX!W3s6oQh{AX^j$2~t)NMFe5AvPFc8CH-|xHM zx!-q2B7*srG~WR5Kg2)M^e>p%Ya;TR(GYd02Yi0+{ ztkijTZ0U~`5#*fLnOV5|cV_meO-tmQ-{{(maylk}{UWlW&KCh2fD#e!M8pmN5qS}~ z61ZwmAXWVYcmi->;|0aAoya-wsCT+QA{sM$(9HJboYz*LYs}2+uzLL+Tx|`CJx+h*_BdyeS~-` z-2HRlF5qlR>BBig^yr^<_szqCx%+ltEs!JPVc_>UL%93Pz%Rf8VAkW-E43h}fR>0{ zI|{&1h<3Yu1bC%R7x$?by8C1)O0SY4q@&UuZ9 z>=BWhYAdj}l(G%j9T7*X>%`a~nx^^E-A@6_+G18k~m2285zHsDX-ZFk=UJOo?^99Gp=#|eR|ew=eYqN;aBgsJL5;I|%= zbE-NCOpcm(7(}Xx?=Z6q#V8__QjPnBJ#%^lWQsEW)WEs5yxxCeKE)^Et#0v&f3VBnLR#R+jf~_ zNzVDl+SVP5h^4*yK~DcF$fcab%--#SbUK||#sIRkr(r%cN_!Woy4B3i0~_1z_PIIM u2Egg2Y1X^@r@+tM#TkV;AM&60L;N?R^E7@eRa)=>0000IN3?zjT6fDFdg{0Cnmgy3LBw!Q7kWN9c(!wr95DZvb zq_eOv0UNPPCt{*RK?Q@AL4%mQce^tdxrfJlm**ufF)8xHa_sEv&d1*D?uePO*NXNU z01hDjDsD7*?;nWB@JJcQrVy(7u2QMIZWqFPe^f*ekuPS}4UB~l$b+=ni8{;?pE z{DN6v7;W{v=s_V|VQVZ^j2kZc%u6+Tq zmBhTNsvTta0MMtZzYF~Ob^{`0-<$c`!_0<&p%U}jhcL5A5n0LgPl!lQ6h&`Uwdlso z+-!QsAmTWl1Llgx%H9LpfrzpIm%R5U+YJy!(Z%dHZc5x#W2)+!nH_F7c!8?UxgH8$ z-=aeIC2*OI((7|RAGRr{s^>-IkePibECbA}v5EKoq4(bWhDHi}w%R(=G+p%GTbiaz zX4aJ--)z!<1!*-&y!VglAk}L1!VZ9RrD?j9tvO$}w>qNcoSX38uK@!|lB~9w8vx5$ nVe}MuUpF=-=3Z!DJYatSh7lSxQ literal 0 HcmV?d00001 diff --git a/assets/icons/editor-dark/actions/48/surface-smooth.png b/assets/icons/editor-dark/actions/48/surface-smooth.png new file mode 100644 index 0000000000000000000000000000000000000000..1cc151d382f6be227c577161ba3d42a2d5d0b64d GIT binary patch literal 522 zcmV+l0`>igP)Ky zTBH@V3CY}E*5mZ0~6%auMM9@q?4EljZ0Km+fBC?p* zAc~^(q=n>RYx;Uj?|oZU=kuBmP=}dU0JMIEaL!!=*g~)MdLg2>oaXGkUnQbBReef2 z?w=s4njIt}ry`=#)9!#Ze;s9O?Y)SowYI6MmGu0uO%nwfwTVRJEP!-6owYH5RIIhl zk81Cfnd>6b22eA`eCEss0JP#bt~%$g06d0bUofYknYgUJ0B@15Yh==AWB>pF M07*qoM6N<$g7p^RcK`qY literal 0 HcmV?d00001 diff --git a/assets/icons/editor-dark/actions/48/surface-studs.png b/assets/icons/editor-dark/actions/48/surface-studs.png new file mode 100644 index 0000000000000000000000000000000000000000..ff50f645662cbefda835982c4a55fe4410bfdd34 GIT binary patch literal 775 zcmV+i1Ni)jP)MfTR*Ddkc+~pkQGN zEvys~D}$Iq0>MHN{2)Q1MOx7`;qLu+$0B?9ynA=q<4%(z1H*f}JG=X1n3)|hGi3q&LVFzCIXPt)`yfR-SX=D>8$EdkimFNh|&r>c|9AT6FK z$R+RnLa(=~>Jc-$A1=P)oU5qnL=mJdg!le)rBZp{D+I|MA_5WlZf3gyj63I01nJ}n z0DyDu9Ds?4`vw5)6OpMTNp6>{{{(Oyz#{xaYm6-nzt z9m(Owd3m0nAZgCIcj3H?B$?;=Lc?ZVPaveRnN5kv+YWZ80gMIvCnV3LY5KC+NL3%# z>-CRWmi=nX#XtZ6L}X4?pS4@}-dD|ROhmq#*^r2w2haim09lrOD2}5cV#Unf0Jy5E zbFq8+4gtVa^?5fNHbvRqf@sL5fQSjqf$%-+z2D!?$jpv~-|hbbVsH44Mz(^d08{}i z_YFcsZkgFl0Ew9`ipVTVdIGF@Yy`kglCMMW5C^i}+Y#o5N!G&KFw(rIpw&Fj7lPe` zvbUp5qXJV^Uzpi2fa!HA;d1c6w3$7O@&dZ3m}#2M0GNp|T~^i0vFEmfNB}@pkCNQg z&0%GdB*~!=(Av(XrN{K%ubNrcX%-G zK~z|U?UzA_Rb>=_zjM#^K4~HiWfDfB3>UM|3>QI*%2iO{I>NC^v;biCe3Wd z-CJc@zG-G2LYOzR(#+h%pT-<{t*n{jyh5^z$EZo0{{R-1mM1^UN*DoTCb`XLkJ|0!$30#;O_(ha7#o^ zyZhY%3%}^@XMh&fe$N88f$45LRlV5hbgmUealh6zf#{^`O<;G7aW);bg)W=jA%t^O zTTzP07T`7Dn?VkXqWG=*xd}uqAG`ZW5!o9;xCUGTmVu{%cYtjGBJvY(K~;Zk>Ub20 z#XQdsC4gZK9xKY$2oPi35A1OF z>#F(+RT4fPh%Cz{((O)nzn+rxpY;N)2jck{<68jkemeo&8V3MINX&F9z6PEFmhwEm z5Mw-A&%68U>2~{n2I1~!fg(Llgb-#|F?}1DVr3l}8)9p^7F31n2dd-PE6-Au;+C0R z8BoyH4Y30_03agn?gjAukUB7BW>?bIol(^fnn0|Tn3F&uB8%?+K5%}GO1O|BaNga& zZ2|ymN8%4v-9uFa9#Vb%){=#$5f}!M0jTP$X0|iw_KxCog|jSsIkk|wnoVDi8Dm^_ z_pPhgk0WhWeTf0dI;he81$cw1C%7RZeZ9koqA|v45ox*mUjt9gfc{X-?6cGhnwcFL zqt~p*uCgqDH#0BGa?ahSy60DW>9K+gdr8dfTn*B0xA$!T$W&RDbIIq`Cf&BH>IpMj z1`ZcR@nFo{fK*392tNXU*2=!b+zfdl{t*8QZP}=goYAf@00000NkvXXu0mjf_-3fQ literal 0 HcmV?d00001 diff --git a/assets/icons/editor-dark/actions/48/surface-weld.png b/assets/icons/editor-dark/actions/48/surface-weld.png new file mode 100644 index 0000000000000000000000000000000000000000..63d7cfb58963b7d4bc14001c6ac16d3718ecd37e GIT binary patch literal 843 zcmV-R1GM~!P)@PrD!zc9)2Tk|1R# zQDSGj_cN_VC8E8mdM^aNEFu{qx>O2M6~cQzoylb0wF<$^8;vnA#>}hg765}Hf>MyW zi76r{MdT@fu9R`NiO4e%IhOE$2XG#M02pNE;dmg;?KlNsfSD&!faFEwC4hbaCz69i zGz#Ec0O|WPpsFhxGtV)zE-fwX3BJxKias#2Mo~1Qs$I!7q2=PWBJy5UJ5&`>6dek_ zxAEL!vA9cBb8$b-Nh~<$4y)?4F=l&}6Ul`W=rP7jS!<5~_)=}dY&JUuU_S1r6{`j3 z+)-7XEdkja#=1r1by|Q*)`(&joO8V~NSt`y`+fjhn*{)B>qIq>{UUOlh@Jp|wf4S< z{IJ%J0r=J^Kr;{k@R^7nmGplR(Zgnf$JWdP*6qE&0$@YvZ}Q$>1<<)#5P1=KqpG(= zWB>rX_ZL+4CNsZ6dO>R%A}=Bn2uVmpV*p^S9ZlSthC$Logj>1K28f!S0|iv;{e9fZU~@2 zL>C*FUlGCr01@qD=8i@-t7O*N-Jyh}YIDkJOz-`os;+M}cm*pGQ64~{E<|{e4`R9W z`ecmx+G23>-tRERtW(w5kTWYmDikM%nQt?*^0J++Qp7aUY8FP-7Og5stwn~J@5CU* zVsU31K)RwRnhASO#{ODYREcPanHK@{WwY6zE#?LgbVNj+1Nay_%Mx=f?4S4${|5Nn V%px))iM;>-002ovPDHLkV1oN*XRrVO literal 0 HcmV?d00001 diff --git a/assets/icons/editor-dark/index.theme b/assets/icons/editor-dark/index.theme new file mode 100644 index 0000000..57ec3e6 --- /dev/null +++ b/assets/icons/editor-dark/index.theme @@ -0,0 +1,8 @@ +[Icon Theme] +Name=editor-dark +Comment=icon theme (dark) + +[actions/48] +Size=48 +Context=Actions +Type=Fixed diff --git a/assets/icons/editor/actions/48/delete.png b/assets/icons/editor/actions/48/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..08f249365afd29594b51210c6e21ba253897505d GIT binary patch literal 715 zcmV;+0yO=JP)C4}Mrzlg<+1Y8PEBfUp0jJpx4B>@E+cy3`^(Gw`Mf+2&yxZm<$to~Vpgvg&QKNR z_f#1(r6svZt%iF?s+n<8X?B&!h3g9Dbb8_=MX}!;HiQSAh`bp^WMl~Z-44teO7W_Y zV4thSL{h;rJY7!l3%5J4H1!tIzB`Dv+YxO(haWeausGZYkI8^hWj6mzo=L0{%;yxzh{5!Htr?51 zvG|W62MzC8BZ76hRpCyO2zOn<%e)K>NHge!-~)Ap33OdWw6hsLYbCxGNt0%wk_2z7 zfyYvXheSG)5HRK1VB~%mq7Dmurw#bi@hEcOr3&G1ZiF*$M=&9nB#VNf&Q^r$4G5kp zTURh&s)E0%5&hyVD}sp<72~zmAY`Y(9aqO6CXF%=zFHGzO-A&I(pE}v70YQxCPJ{Y z4L+?5-crdLn3ZRPEs!A4ehEY3ZRpL~w9>@aMN+{F4dI@v&>(QDHQum!mG~E^$OS8l z!7?%Uwib*ROP67Hw`ika)gX-(8Ia`-u_IEhxG7U<13kSsMW+$lbb2dUMm5p6pa}cjgA+U$^mJ^AjD?&bdi)8~y+Q002ovPDHLkV1g8IMc@Dc literal 0 HcmV?d00001 diff --git a/assets/icons/editor/actions/48/drag.png b/assets/icons/editor/actions/48/drag.png new file mode 100644 index 0000000000000000000000000000000000000000..532f532d87ef60b5f2cdcdeb573ec949d2918def GIT binary patch literal 354 zcmV-o0iFJdP)I0T{~(qIu$a8Oa`;1VJZ+NJ#? z)Z`G6Xm=;i@Oy^O@W4+X<|%s@Z9U8K%Cou=JW=N{umR|dc<1KC5j-&Bmny}u z1Gr;ImmX!ZVOvnb2Z3IG9yvhp5kdn#W^JX2LP{w9t>Mgm0h`0-w1g7ei1zafe zdny~;a&&9~i}?5QG&nFlE(hRq9e(XsJj>7i0YpGB?|)P=F8}}l07*qoM6N<$f=`l= A>i_@% literal 0 HcmV?d00001 diff --git a/assets/icons/editor/actions/48/new.png b/assets/icons/editor/actions/48/new.png new file mode 100644 index 0000000000000000000000000000000000000000..8b8b1ca0000bc8fa8d0379926736029f8fabe364 GIT binary patch literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^zbpD<_bdI{u9mbgZg z1m~xflqVLYGB~E>C#5QQ<|d}62BjvZR2H60wE-&H;pyTSqH(@-Vl>|&1p(LP>kg~E zYiz5X^`c$+%8#zC{u)yfe-5 zmgid={Z3k(ERKCKrE7DF;=x4^O+ pzO8rLO8p|Ip=x)jHOtWj`bJBmKdh_V<`47(gQu&X%Q~loCIFbEay|e6 literal 0 HcmV?d00001 diff --git a/assets/icons/editor/actions/48/open.png b/assets/icons/editor/actions/48/open.png new file mode 100644 index 0000000000000000000000000000000000000000..1ef6e11438f3226f88bdc457f55d677d1f2f8409 GIT binary patch literal 688 zcmV;h0#E&kP)CVGc zN?Hxg{(SJp>2>GN9JetoZ(aZH;Ije%0FdZ{S!LRVX%}YG;=d8L^N!mJkCd*SBx($jgG)S}+Le)f;q=GIn30YFNh3ZW|nh}2rL)`=3ju9K*d z<&~Gte>sT=5|RjR+}A(|O&3gS5t&*G5h0Um$c5IgEgxJl_8nzY#B+YU^|Fhvzo-^U z6fNn3(lBMcl9{Silx)4RpURdFw}1BZ?>}8S&h8fk5`hjKW@sP$LJL*otPOMf+jp$? zcC^*PiL>vkTOZln=wuc^%A^$j`TU&aa3ETVYE{(r=bgN835`stIePGw{uwD`7K9Y) z=4)VDHnkl3YL%JeLce6>Uubzae&kQ4(SV2@MRD}JQ4(c%G%=dG@_vxH?>gcH#*Ue2HC}9sapf8X?R$Z;XEnm&g zW99mh)5jNw008mK8)r^`_{yH0rNn%u1|SpC(tjf#om=+r#lh+?Kb>DVb9`|C0Bvbv zN3U(>f4-tAC1hosRoA7p(b(hL*V}(j>ug<`&U)|l$6o$)!>PBQ9RQSwn9asj2p*|xhU*R^vq?*Twb0t!lm5}`yW5lRy-U0ZYK?8to!;o!r!XeOE$ z0HB3T+6EEoI4PlR=wonwqJ+TvCoWh&$?CAPVYcU= zD{DS0?AkOtb@-hh^ZLq~FMjxYf19X?pa_YqtgZGvv2TaxcF#KT?O%=_*a-kW_;N|D zakkWsOe!)HsT5WRBiC+p;N-c>0Qwy(1D2MDBC595oXSiR07)sKNk-%9*rDBOO^HUD zZW#;)R&EZpqha<(HK$(tZYU#V29<@0qCXgU{gXeGpc_|pTqQD-WO|}%yKZbeX7k*H z2W~CK$v8NBAq~czrc5A(v51g0Wma7`G8}f=ZcuAiYYxZan@gP(;Ku66M6?bquGiHe z3Q0ya)%Lvk@kLixZfZyU@#UFbv+>pYhcj8TRKSr_sWG8i^X~UA**LvbD3(_Lba3xm ziYcpup*A9qJ$?AA=Og05lndxfwr`!C+O~h|B~4 z01q8H`StcY);%&mId7_+)76ovRpeNWRp&4M?#jx@|E-)x%P*A6t^fc407*qoM6N<$ Ef@ddc(f|Me literal 0 HcmV?d00001 diff --git a/assets/icons/editor/actions/48/snap05.png b/assets/icons/editor/actions/48/snap05.png new file mode 100644 index 0000000000000000000000000000000000000000..17e732b2d2e5a7ae48f8648ff6d8a1e396b2b414 GIT binary patch literal 868 zcmV-q1DpJbP)EX>4Tx04R}tkv&MmKpe$iQ>7wR2MdZgWN4l2qD35Q6^c+H)C#RSm|Xe=O&XFE z7e~Rh;NZt%)xpJCR|i)?5c~jf7n~Gbq{ROvg%+_M9QWhhy~o`17$P#Wj5$e4q3ig%hmWs!QJ&TP+@E7W&07rciNtYcm^SeS@yw=e zaNZ{lv68G3pA%1-bV1@rt}7nDaW1+n@XU~zNzW69h{a+DD;>;ArbZki4y&3@`9juX zmGc&7tx{vHd-4|s^ZLp%*J+L;iA5|yf(QjQlu?0=D6Kjv7Sgnz=;9x9{Svtpa+Sfz zv4AQx$gUs!4}N!R6{e@Wq+kN*eQ}(R2oTr>nsvwdK6aeu3E+PQuJpFQ+5l!hNw2rH z@DVVy4P0EeHDwRD+yO?P4B3=j$xl-#6oB_L`lcK(d<*oidA+svaryvcsH@ZsaBv7r z6e)YX%e(tJd;9lHtG^%L>~hk4TmRhv000JJOGiWiy8t@?I|pH5F8}}l32;bRa{vG? zBLDy{BLR4&KXw2B00(qQO+^Rk0v8VkBen2NWdHyG8FWQhbVF}#ZDnqB07G(RVRU6= zAa`kWXdp*PO;A^X4i^9b0X<1XK~z}7)mA$W!Y~ZAqe@Ij+$S?9U~0Jl8)xYuXeUm< z-1}5w>SU%!RY@G%4HP_8D){~EGyoeHN`Cb4p0tgR!+=EyJiMppFsPO7y%&+doN5dB zoJ7tI)Tq7*Kri0Ek>=b$4ftI-GxI(v5|{%Is-@suzZeO}H3+IL;34}k2f>jO0Eq~2 zmLGOkvXWSq)2iaYHN?yW#;HxZl6q$%a0YnGYp!yxmIKcnWYt;+tjePfJ literal 0 HcmV?d00001 diff --git a/assets/icons/editor/actions/48/snap1.png b/assets/icons/editor/actions/48/snap1.png new file mode 100644 index 0000000000000000000000000000000000000000..d96eba18b1e35c1f22eafad05171b779aa939f85 GIT binary patch literal 836 zcmV-K1H1f*P)EX>4Tx04R}tkv&MmKpe$iQ>7wR2MdZgWN4l2qD35Q6^c+H)C#RSm|Xe=O&XFE z7e~Rh;NZt%)xpJCR|i)?5c~jf7n~Gbq{ROvg%+_M9QWhhy~o`17$P#Wj5$e4q3ig%hmWs!QJ&TP+@E7W&07rciNtYcm^SeS@yw=e zaNZ{lv68G3pA%1-bV1@rt}7nDaW1+n@XU~zNzW69h{a+DD;>;ArbZki4y&3@`9juX zmGc&7tx{vHd-4|s^ZLp%*J+L;iA5|yf(QjQlu?0=D6Kjv7Sgnz=;9x9{Svtpa+Sfz zv4AQx$gUs!4}N!R6{e@Wq+kN*eQ}(R2oTr>nsvwdK6aeu3E+PQuJpFQ+5l!hNw2rH z@DVVy4P0EeHDwRD+yO?P4B3=j$xl-#6oB_L`lcK(d<*oidA+svaryvcsH@ZsaBv7r z6e)YX%e(tJd;9lHtG^%L>~hk4TmRhv000JJOGiWiy8t@?I|pH5F8}}l32;bRa{vG? zBLDy{BLR4&KXw2B00(qQO+^Rk0v8Vk6?#h8`~Uy|8FWQhbVF}#ZDnqB07G(RVRU6= zAa`kWXdp*PO;A^X4i^9b0Ub$1K~z}7)mAYMgD?!Vqe@Jb_>bqlpcC{1-TD?DQJDGy zX8wcJiOHQJA)twEQia}z1iACwB?KTdQ1Vhw#M*@~!+=Qy^hEp~2K8iTB9RD;O>H5c zi-@^_nyH@x(mT;gbjS_VkiV3jnXmIr1jfky)Kc=$dRrn~XaPU9h1_TFd*B_p0ZFr1W3YU{SDBuRL%FBY-L1uDboEjXb29rAwE6iSO6+7s_-WVkR zkyDBi`e#clPP=bY+HZCsRRKl2z}f@pJ;Fg|ILrB+Du1y9+88v~xMN0;G6u~}Y6V`P zZCg(L&2b|D06@fD2Ts>@P}ep7uLDa|RRy6;nVEkoAd3Um9!T;(gaaQ{ma*7mCaymK O0000EX>4Tx04R}tkv&MmKpe$iQ>7wR2MdZgWN4l2qD35Q6^c+H)C#RSm|Xe=O&XFE z7e~Rh;NZt%)xpJCR|i)?5c~jf7n~Gbq{ROvg%+_M9QWhhy~o`17$P#Wj5$e4q3ig%hmWs!QJ&TP+@E7W&07rciNtYcm^SeS@yw=e zaNZ{lv68G3pA%1-bV1@rt}7nDaW1+n@XU~zNzW69h{a+DD;>;ArbZki4y&3@`9juX zmGc&7tx{vHd-4|s^ZLp%*J+L;iA5|yf(QjQlu?0=D6Kjv7Sgnz=;9x9{Svtpa+Sfz zv4AQx$gUs!4}N!R6{e@Wq+kN*eQ}(R2oTr>nsvwdK6aeu3E+PQuJpFQ+5l!hNw2rH z@DVVy4P0EeHDwRD+yO?P4B3=j$xl-#6oB_L`lcK(d<*oidA+svaryvcsH@ZsaBv7r z6e)YX%e(tJd;9lHtG^%L>~hk4TmRhv000JJOGiWiy8t@?I|pH5F8}}l32;bRa{vG? zBLDy{BLR4&KXw2B00(qQO+^Rk0v8Vk1Q7c84gdfE8FWQhbVF}#ZDnqB07G(RVRU6= zAa`kWXdp*PO;A^X4i^9b0Xj)UK~z}7)mA$WgD?!Wqe@JbdY{ZaK_}=1y7ep^qA>LY zow*NEr%vt^35CR;Kn3+2?DumBz{Z7|Loe^i+W0&SxC(%m_w*hHGqa=jDiA2KE*U-r zA*q2D)(^$doA)!&oEm5u{xoK0+9wABrQw0Kb~x8B1;TL+0_&3D!TXSdpvVP)Q~*+v zpQ^jKj`5ioL|o3oX#BLufjCun8b7T`EoYTA2cl#+3*ZVc^D75}8!laBhtf-C3ZjI0 zQUNJ2ODh#@HUpduL3S>fn*WF^VG?^TZHEbfWJ4}+5{TSY?v^mOf+(_JngdPR!x`;6 z!okMnG(VAFte;5%ZXK6CQN<{Qi0GlXKngfmhyHMZ@EuZB_dq=A$00000NkvXXu0mjf``>G| literal 0 HcmV?d00001 diff --git a/assets/icons/editor/actions/48/surface-glue.png b/assets/icons/editor/actions/48/surface-glue.png new file mode 100644 index 0000000000000000000000000000000000000000..de9b08a8026c472fe1e877a7cf79f09d500fe9cd GIT binary patch literal 1152 zcmV-`1b_R9P)pVi0f_6bYou(;5n;gqV z@o8Y$Y$0v{!N5qZykjzC%ANRkfwb9tYF+Q_SPk}`gv@w82n!iA+ddJ}65->QYvt0( zX5Y-bY&M%olH?jd5Ea*e+hTAx=*V!je0aJ%xk6!)9GJ%$#9hF1L0DiSq@%(N!uXLO zSE$I#T+K%Dg&-dvGu$@@+kl6_4h3Oh^GrD;E=qa^NE?uNPjjp-B9|-1W_*H?8xJiu z@i5>J`!MzZc*aXTJw5Z6F6~>;Dp$Q${z%f(K#H`nV}$(lSzw--ecE&99T`cF0!M|n zcDQ!xMN3ED0GzNDa~CYSJb&Sp%egQ<5Jl1Ltsu_aDmRDzW~^mRTvu504tzd1I5-A; zIer0(A!%Q&NspD!)wZcTy8q0VKD02Iv6rvnOwrGZzEr z!PW<1VPnfRH-(V>1YlUpgu}I=cZRE{`f9b($&pH>irC*+%Z6D&$kS*eA8XCb?<6VM z`Njtw&7TnwhVcU?_BIgOEh%l6u&=K#gRyCR%}Cb>XY2%g!9cxQeyd%wAdYhvFJCzh zx*xdUGX9~i5zTRfZMl5!rncEqb^~jGQSe zT*_^o0NNswWM~L@eY|_a;ZrOY7iOd0gV`|tHOTiqX=dJVx%?e!%r~=Log&&ER_1g@ zo&l^jGf$EW^7%eb{s*8u1|}WJhWTB&C_ZeSSCt$<+$o~%BRV`>`4%_>^kk#><80Xb zmB~9Hlm{CTdKLIX*h<0Mk~<0@XYbeoDWJOmEi z8$|K#*TaBFguxsa22mV#vVpv+a3|dUt>H7 zNa#1i{_JXR;Tse%<{}c`(sh#|QxIlmL73kM_5zTa*_Na-bfg=|J;mY@f7BfZ3e!QR zJROo$uT^$}-UWO~hjRJer@BF$E|t!u8E-vM#>l1e2csxj+7dAlA{b~wf9R6oBBASqqT6qW9Uc`vZE_H(ds8*|IeM{FFoDfu+@hLTNE82hJ5Ai=k*3MHP S5G~{Y0000g_V!$NcD=#fa98+Lv(G;BJRgRc z_kCrX)sA4b0q_CwCO+y;6r=b&1c!z-z;Yn774v6vzB=U|FQK|~#c1LVuzgsFw?Htn z*r=ZDhGd?^@(uPk3TX^HIb|2oko&w+HLO4l}AdLW@ z<^cf60R9)4?aVhD)oV*n;R^Qt+z6xvU}WjngCNj3o5%giQ+uyqnm(U@vr)bF+4y*c zF!-mPTNz>gLjb-98ch>_8!DNq*X#Ftl^09#2BdekT&&gp>ioSjVksn@b;|dMvBW{8 z7)|~Hex4}|RKkGRl(%qb^lu|#Yd42fL`S7xF$BR4~TZG2}J&N!hBtf;t|wZ z2W0jXqxf02Fxb=ioel>f5&(-6pw9jWK?k!pvoN1ajsY2jBo#{IKY&gFiKL_RwaV2&AUh@}w}!9M z8$jF(l3A>5yVsyR;!e5zFj*Ju1FEg_NcdY6Mceu!Iw6LcHlz^8 zpAQNNNxs6&BgRs~pWlgSLlzs=lc0;3MN3ZyK|t#~5-OPz+%(kM`OG`98nGreu-7ZF VH@&UEB$5CC002ovPDHLkV1knVbH4xp literal 0 HcmV?d00001 diff --git a/assets/icons/editor/actions/48/surface-smooth.png b/assets/icons/editor/actions/48/surface-smooth.png new file mode 100644 index 0000000000000000000000000000000000000000..0089f695730e5c9be68e58680eab51951f9d9930 GIT binary patch literal 570 zcmV-A0>%A_P)&w_}heFC=XN1=97IAUveB@>03Ly01;0iT{~lntm8PpNq|^LHINXp9bO6Abc8x z&s-p?A21_8P@*eg)HzkRfx*SYBe|*fO!&wA2Ar(hyb|%W96@-~t*j{}Mb`L1b>{dVh_`D9}+}hf*`%%6E;z^LoU`o;; zPw#`C08Y}g*6R5ibr8F~-j`xAxCSH`twQc~6h)_}B1R#C9S;fP_(ENXqgY4uF_?vJ@<0 zVj+QmO^`&eiio62AW0zswGp{>c4xC2Edo}eX+*-z&mz0$W_QP(V=vql`ByV<{_njH zZ{GXQ$TnLY!Bzv{5#qmiY_ef*l70-qo0~O(vnl`UY_uhO$@>5TY3A;` zWKXl%CJg=>warJY&%(`KxBX4kvnhu2)Wl;`*tHewnf=~gc!xPK+N5kf+YinLs7GpROXqNhF3c`9btJ72*F|M{0X{z zB}tOyZnt}9(-1iL#PTUYfaxJ_fM#&Cgo}enPZkcZCrPqe7cv)dD{r5P8fgdV5+as@ zlT~#fNs{Hl;dMk@I{XNDrw*dl#_Z?W<#2=nkj@NMUCcXpbvmT(%ZdG`^!ZjyH{3rh4;#9 zKspODbvkUjpLdRf&jO+CFXHC2hZjNIUR(RU*b(dlGDJMABg>VDafspE2oj~~bBjVk ziv7ca7ng)z|1V+$8RXe9(5IMzrMrtDV62Y74~EXDeQHl^MQn>t`M<7~K_5oO^&LhF-%j0; zkwXLK){YRbogpd@;Jy@qBn%K&aFwl)isNJmp6FuMc{ z)LK_O&)$*vy}7Oq#Ns5-hma|rs8r^b{4fj~$1Ri#XNSkeW^vxtdf(OvaT5d3&tOAw zqzPwHzEmn*t`G5je<=2PJ_7oHHH;qc9s@pYm9kPS{?ORo8d3kHW^XIzO$u&OZSK?viDhR|KElmnwg=+l05Sl>U`5a`*~+ET%=xr= zp~G!Ec?8~tq-7U@8VxG^Ai1xRmM23!9R$H(<37?o!nmz=*9+W~*%u~Ong@FKqUb0_UnDmj1VKJ6 zWK%>KhI_#tt~CYpdf2)7Hv2#j1cQ;>G=?9`odjM=gV=OoMp0$}=rvfjIC{av8BgtZ z!cwVp*;$k~aR%x0GyvFQCd%a>3&XkGuvS->s@3XsU~;R3wMUR@2HGPG4?&C`%?7!B z23YUyem2N;lD8ophmt$FwqshHF<0T%V%)h9H=IS;R*SV6F`D}t;|V}Qi-t9w9XhHl zoI!}uhnU}Z3}}fkGs}*SeF*j%5SiJF^TpYzZXgH7$M?In_#zOtf;7DylC)4Rz79GC zI7y%RV+W6QgQ(8T{2KLmPXdMHJmRKTh zA(e9B1lR|Nip;KcgMfy81ilj#>-|k@VmIPH@rU?Nmg0)6CgIbZ00000NkvXXu0mjf D*j3ov literal 0 HcmV?d00001 diff --git a/assets/icons/editor/actions/48/surface-weld.png b/assets/icons/editor/actions/48/surface-weld.png new file mode 100644 index 0000000000000000000000000000000000000000..f52ca49b82d7c1b6d54208945f6f4837242ee55c GIT binary patch literal 929 zcmV;S177@zP)B@$d7#lm0n)5CjWqS2LNN%`~Z?2QQ+or3WuUixm<7REr4G>fNK@ zMG+ODAoWiXVT+)6>_P0JUi744Y%J??TI_5+zax)Dk{QD{&ck@A}{trHbq!$v)zn;oYW9h zt2b#1Vpu`B9eBZ?uF?w`x-f&8+GCY4`Ya5?+ln*|!?0Wlqt7ehfk%4BRry0zp8?!D zBziMDHWZY6=#l>8OYP>Isy+=kR39yja3%9H&_oEff|R3Z zN{#ypxC3Zd+^c!>mfFp^RMLA=kHdu#%W-_!mCVCiLCR4yWgPRY@2ZBy9ZHhq%4X;6 zv|5eM#fvM25gEkd4x=n&kaD?xD}e9U_8Z5yMFDwLI5CqXxn#x7W)S0b*B4$XJ<5$+ zFfw2yLzNPZIKDb{@ZinfYWLaHGv}7$`0_Z2k#0v2)P3>N??id$+NvG{*mb>o zT$H!%YWhvlKpPto1a)7HyTHaG?C!B&0(47eu6Ngr11W^a38F(QjmGb=kt4gz0~83f zu@ON~_lM;`UXF|c8UE}r?hOj$K!1*;YG2zn1Y*trXNm+-1`*{WR6i+-7`jClTk(0| ze9;poNpcA|QFMMjLNF+#=zV?|-7?C_@=D + + + + + + + + + + + + + + + + + diff --git a/assets/src/inlets.svg b/assets/src/inlets.svg new file mode 100644 index 0000000..0fcf518 --- /dev/null +++ b/assets/src/inlets.svg @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/src/smooth.svg b/assets/src/smooth.svg new file mode 100644 index 0000000..e4faded --- /dev/null +++ b/assets/src/smooth.svg @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + diff --git a/assets/src/studs.svg b/assets/src/studs.svg new file mode 100644 index 0000000..10af373 --- /dev/null +++ b/assets/src/studs.svg @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/src/universal.svg b/assets/src/universal.svg new file mode 100644 index 0000000..49440dc --- /dev/null +++ b/assets/src/universal.svg @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/src/weld.svg b/assets/src/weld.svg new file mode 100644 index 0000000..99e70d5 --- /dev/null +++ b/assets/src/weld.svg @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/editor/mainwindow.cpp b/editor/mainwindow.cpp index a020f25..9befed7 100644 --- a/editor/mainwindow.cpp +++ b/editor/mainwindow.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -22,6 +23,7 @@ #include #include #include +#include #include "common.h" #include "editorcommon.h" @@ -45,6 +47,19 @@ bool simulationPlaying = false; bool worldSpaceTransforms = false; +inline bool isDarkMode() { +#if QT_VERSION >= QT_VERSION_CHECK(6, 5, 0) + const auto scheme = QGuiApplication::styleHints()->colorScheme(); + return scheme == Qt::ColorScheme::Dark; +#else + const QPalette defaultPalette; + const auto text = defaultPalette.color(QPalette::WindowText); + const auto window = defaultPalette.color(QPalette::Window); + return text.lightness() > window.lightness(); +#endif // QT_VERSION +} + + MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) @@ -55,6 +70,14 @@ MainWindow::MainWindow(QWidget *parent) timer.start(33, this); setMouseTracking(true); + // https://stackoverflow.com/a/78854851/16255372 + QIcon::setThemeSearchPaths(QIcon::themeSearchPaths() + QStringList { "./assets/icons" }); + if (isDarkMode()) + QIcon::setFallbackThemeName("editor-dark"); + else + QIcon::setFallbackThemeName("editor"); + + setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea); setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea); diff --git a/editor/mainwindow.ui b/editor/mainwindow.ui index 5c4d6de..e0a9e78 100644 --- a/editor/mainwindow.ui +++ b/editor/mainwindow.ui @@ -40,7 +40,7 @@ 0 0 - 1027 + 1612 30 @@ -99,46 +99,6 @@ - - - - 0 - 0 - - - - toolBar - - - TopToolBarArea - - - false - - - - - - - - - - - - - - - - - - - - - - - - - Output @@ -158,6 +118,95 @@ + + + toolBar + + + TopToolBarArea + + + false + + + + + + + + toolBar_2 + + + TopToolBarArea + + + false + + + + + + + + + + toolBar_3 + + + TopToolBarArea + + + false + + + + + + + + + + toolBar_4 + + + TopToolBarArea + + + false + + + + + + + + toolBar_5 + + + TopToolBarArea + + + false + + + + + + toolBar_6 + + + TopToolBarArea + + + false + + + + + + + + @@ -300,8 +349,7 @@ true - - assets/icons/editor/snap1.pngassets/icons/editor/snap1.png + 1-Stud Snapping @@ -318,8 +366,7 @@ true - - assets/icons/editor/snap05.pngassets/icons/editor/snap05.png + 1/2-Stud Snapping @@ -336,8 +383,7 @@ true - - assets/icons/editor/snapoff.pngassets/icons/editor/snapoff.png + No Grid Snapping @@ -495,6 +541,90 @@ QAction::MenuRole::NoRole + + + + + + Studs + + + Studs + + + QAction::MenuRole::NoRole + + + + + + + + Inlets + + + Inlets + + + QAction::MenuRole::NoRole + + + + + + + + Universal + + + Universal + + + QAction::MenuRole::NoRole + + + + + + + + Smooth + + + Smooth + + + QAction::MenuRole::NoRole + + + + + + + + Weld + + + Weld + + + QAction::MenuRole::NoRole + + + + + + + + Glue + + + Glue + + + QAction::MenuRole::NoRole + +