From aa3e21dc5bbb428ca5597d617f11400280de5d75 Mon Sep 17 00:00:00 2001 From: tao wang Date: Tue, 26 Nov 2024 20:53:50 +0800 Subject: [PATCH] NEW:new sending page layout(for top area) jira:[none] Change-Id: I359476fd80cd3fb3e55f071bf0e649e57e93ef2d --- resources/images/advanced_option1.svg | 10 + resources/images/advanced_option2.svg | 3 + resources/images/printer_preview_BL-P001.png | Bin 0 -> 2815 bytes resources/images/printer_preview_BL-P002.png | Bin 0 -> 2815 bytes resources/images/printer_preview_C11.png | Bin 0 -> 3380 bytes resources/images/printer_preview_C12.png | Bin 0 -> 2469 bytes resources/images/printer_preview_N1.png | Bin 0 -> 3169 bytes resources/images/printer_preview_N2S.png | Bin 0 -> 3131 bytes resources/images/refresh_printer.svg | 3 + resources/images/switch_send_mode_off.svg | 3 + resources/images/switch_send_mode_on.svg | 4 + resources/images/switch_send_mode_tag_off.svg | 3 + resources/images/switch_send_mode_tag_on.svg | 4 + src/slic3r/GUI/SelectMachine.cpp | 211 ++++++++++++++---- src/slic3r/GUI/SelectMachine.hpp | 28 ++- 15 files changed, 227 insertions(+), 42 deletions(-) create mode 100644 resources/images/advanced_option1.svg create mode 100644 resources/images/advanced_option2.svg create mode 100644 resources/images/printer_preview_BL-P001.png create mode 100644 resources/images/printer_preview_BL-P002.png create mode 100644 resources/images/printer_preview_C11.png create mode 100644 resources/images/printer_preview_C12.png create mode 100644 resources/images/printer_preview_N1.png create mode 100644 resources/images/printer_preview_N2S.png create mode 100644 resources/images/refresh_printer.svg create mode 100644 resources/images/switch_send_mode_off.svg create mode 100644 resources/images/switch_send_mode_on.svg create mode 100644 resources/images/switch_send_mode_tag_off.svg create mode 100644 resources/images/switch_send_mode_tag_on.svg diff --git a/resources/images/advanced_option1.svg b/resources/images/advanced_option1.svg new file mode 100644 index 000000000..46a075967 --- /dev/null +++ b/resources/images/advanced_option1.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/resources/images/advanced_option2.svg b/resources/images/advanced_option2.svg new file mode 100644 index 000000000..353bf8d6d --- /dev/null +++ b/resources/images/advanced_option2.svg @@ -0,0 +1,3 @@ + + + diff --git a/resources/images/printer_preview_BL-P001.png b/resources/images/printer_preview_BL-P001.png new file mode 100644 index 0000000000000000000000000000000000000000..47f9b41d8bacc96481fc6443dc4577f44efc6999 GIT binary patch literal 2815 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 RT;u=%002ovPDHLkV1ivuTJZn? literal 0 HcmV?d00001 diff --git a/resources/images/printer_preview_BL-P002.png b/resources/images/printer_preview_BL-P002.png new file mode 100644 index 0000000000000000000000000000000000000000..47f9b41d8bacc96481fc6443dc4577f44efc6999 GIT binary patch literal 2815 zcmV9w!;wiDT2GBvGMFvq-Z@7Od!>Py`YZLaGGfFQ6(Chz*M@`WGOOqGpW* zh>A_fiWNzP2yK)^O$l}?;>3wPwrA}5c=ImjckVlH?!0+#JktfVs;~8O-^bj0&+mMn zdqZ^C4%=ZnY+uFZ9rS~%SFfJ=-JgE{_t1FtQV=@B48?Iwalg-Zw;MD&TjN!_)ai6&y;^OKN~MzAV=dvf=hykZ&M)}hL&vaL z-Hp#ZKg2%&)A)-3oCH)9^?VQmqW1UpWKwz0#P#_-w1wy9a#-`}Ihj~@>R;cp?2w<>6*l*qx_4PSB6+s@F5lgold?JAW} zrWxaj8cqqSV{L)$k_P8un-^P!(CE%xVP=FP%IoDgt$EHCrN`-Q8VT#5#u{1%cnF zRM2Kw$}hciitgO`hrB=i^2^libg9*93W4QHS?1he8@1G0+saBSPYtVK7*7m}Js3=q zC1gK08VxGJrDHPw+hdOiAPWl%?4q~R#c;u+0jM|>?g4U-gR}zfaOM%Qgy7CGk1__| zvN9?Jl=Lu%i9z{(gi+)t-V3$?F2e>uOsmymm8ytZE-ftyQA!vt0LJfREHk54n`MWy zEJOhGbIw8ldY{4KHyCRaP-0_6z$R&99YvUUOvIrJ7cS71D_2qpV39|U9?{L4H%Z+; zYy=>i&8Dam7;)^_G07f4r_V8LeSKY27h~q;=EMp080^z$&zzM_s(#t#f}GN(teb_` zLW5C*2-pV<9SzSDH}VqCOxFQUS-2ohw%%nKjPeWGpX=91g%R27sZ8P+Rn1TeG<jR{!2Qn7PMXhw+jt)&@ks10u`7H7VAzeOT=)&%spo{$ z0UC3H0RU=}z?_#+jM`V}b4ZE?k}^q_pza$SR{(Yq8>7_A>7|*4G6C<@L4XOV=S*3d zVQvE8x4-$d^gsIXPtq|(tr(PKjTRJ)ADn*v{JG8F62f&+1>;I8512MLWg8(bVW4Ii zsZ&7d;s--OO#!k4i$qluG?zH#x_g0G_t`i(pw?5`vhLX%v%X|3{CEEK*C%rAxmh7| z+_;&tyMRa~w!JF}b@f^hYCWZwf>c0R!jdntW;RvAxL03&jqcyOH}o!w_NR3eMz~{= z#4~p63V)Hf`F;utz3W)i#j9%OC8_$}N@5_rG>11a*)-mx2M_KKjr)9#!k9GQL&Dij zs#FD_#HxC!jVUOVmcG||%C#+cyo+yKlEO0NJQJQYQ4uMf61K{-s<&%rR1kg-w5fq4 z`nh)Gs-Q|sfxum7Rc~l<2C;NHjS+tJh2%Wk!d~owwflj#LdAMy8e& z6X7Wh1IY|*2WsVdK~0fdbwZOYoC!f}Ldya}y!!J8AEeF*rH2IkG_x>LH+}N(A#H7K z(y^m;nwhQAYiwUrOUlM}tJzsexG~EGt(ObPwIeqKWWNa^EY-OqN2D51dxj3;EAmcj zbNHq2Wa%_HsEVv+@7*}#su4Fe7EH>t)NT;Z$k|_s;9i!CT4VO(w zDUB&`-^u_b#+8_RsTXwJe}d8mU^9@CD_I*}bkoJd!09pyRKBjG;7v_&2B?1)78jW) zPiiDeN)A-Ea0XCGY`FMNC9DRI5<`nXPu)BJ9?k++Lb(%sDFv3dn*`}iWm6EVa!WFE zF4<89WAUd?pNgd5uB9e2qXpfN{Uj1lg+a6Xf1DBYqO`Ue6jAmcL&e!SfWh7K7RBU} zLYhPgmvzSn#=gaI#8oBD<+AGL_SvRx-VFn)&WcGTs`KQQ9b-I2Ztj=HDPuv+&(9Cp zf$aBX_P(?CA2k0aFK1q6|?3a5@ zhHcQ*qZ}KA?H(b!SQ;c2W~?(pn`$$&-0!D9KEgGQd)((4XaB-ItsFWJoX$z;R`tJE zSM3bO6y|?OtFZamY_|3`o;}&6NkQ=f&1X;7S2=xorNLBl8NJQNoPGES(7ljasjrnZnrx+o0cbFM$k5}1^zC-1`*^px^Jx9a`h(3E z8=vrI=>65z)wLTpZu}>Y{z8^szI^#K6L}ss#m6uY>h*fBzOoXOqA+N+Ud*)n{W>3d zReHwYh_S@`<#Bax&f~&Fa=9=J{4gv9_5?i&d%d{CkpfH%qu8sI_%qKR#-0~=u@@K< zRrtW+TXS=@xpJklw!6La*LHjFKA&OTyLRo`3qk%RZD4Xp)9UYGJ8WN^_Fwm{8{GB8 RT;u=%002ovPDHLkV1ivuTJZn? literal 0 HcmV?d00001 diff --git a/resources/images/printer_preview_C11.png b/resources/images/printer_preview_C11.png new file mode 100644 index 0000000000000000000000000000000000000000..518dfd5390ea162605e7d97255d9b4f92c813c5e GIT binary patch literal 3380 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 KMNUMnLSTYjP=g@= literal 0 HcmV?d00001 diff --git a/resources/images/printer_preview_C12.png b/resources/images/printer_preview_C12.png new file mode 100644 index 0000000000000000000000000000000000000000..4a2e336ede3875e2c112ab99028b09d1fe0e46d8 GIT binary patch literal 2469 zcmV;W30n4vP)o73XL!L9F9_w??||?F5F#rV z?L*?k@!Dsd?Cq@2eLD4ZPtA1C^voPPiIRt{WOinHx~uD}s;;W;W1=%Uqci%!lTs?6 z?~!UJzj5QnPsZc%ufs45m?EZ_?=io3wzs$An>T-&n0Jb!C>g*1{(FDEbLY2K4IHE6odSPo6x{eWtT1 z9UUI&_KnRA3d6_<20l@AOlkTR^E={}m#o~+v+JXW4BKQ6RfdnHhyBuRMP3@BY1K*B(|Q)>bsTx9^cz?SfJ-?fWa zG8#LPW33!S2B;Mj`?wwp%fO|?oop-Fg7^fCA^-~=0o=PHmAMwwB7(s)phVNI1XadZ zRe*{6v24xm2RFii*=$CSA3xUX1dCbjVhPcD85{ykCPm&4f_A%I-I^p3^NKmB%yO5O zHHbc&9GD!-73u3=b z%M7Tj7g)#!9P3H{6ZamP6Dhb89-JVg0iE*>k`sLXXGLI(acP;tMB&OKC_ zM7+Vcp4O1IV!z+dEog@;^bxnZbomO6Mkl;(-lEG_uF&zxu?7yH7=LhZU-=H6HrSbOLH@Pb5>O6Hi z8fh!RLP!}-9@O#%&Rm5uy;fY!{e+PT(}B)c8d#(YJ!TW?9I>~zrz;85*SOS=w_|!T zTxy|}O6ldxeSV&6uyLH|zQ@PMS{YD^1PWJRMNM+GwZ%=HAQ&cl{`|QH2yj8>&x^%U zyQ&D2rqElG07fQIapr(! zAUpyClmnOC*cfQ*&F8a1eOSe3rtNe$|eemWD9|0 zeaJKJP(o2X*pbY2*NaZs^-q z_yn*wiBbeh@456Tzwk!Pf~le}ZrT=Q<$ z2p&2>>~AQe-hKD))JaT2*11htE~<>OO#K?L+s*he#)NY8Mc5;u+s`E60sw4X_ z#Ncr)Rqk775qTENx7CJrpFm}HQ;OPFL2LAL%NzYSzuT3DRO}MT@NT}zcgpXbPLl0} z!z>k)1BhQ1al^nmjt)H9a6obVPs`P{oE+guOIPjPj%FKS-^At5f=ibON6tY8&;n-s zC!bs=SM)>Kgd{%aobz1&s#3P5D`al142a5oGTW>*f#S)Oolk_BY`-B)pe+#Vpn*e4 zlr1SAv@F$}llOp2p1wZE$alg?lJCii&7*k+PaGAjLiuhXFEhwF|EmSXxg_;5L?MaE zWrtf7u4HZUf{GC4qCCKWVD(O?tAEpyN`4i}EooV;j^dK=X?ZUtwVNdz6GGNW1*w0mY(057S z2Ef)l#T&4+QgOWjFnc|{9yM3>HFGsvibJ}xH+%LryiUO4w8$061QYq5Qn}zQZ}AIW zzBw8Jw&p2?GdOIsZ{NP{>{`pu@@@okgN0j3$XKfUfM@TLb-D-wCrGbit=9b%|6Y{J zE)>5Vl?In;z}CqcOCR5lYxemd939aQE)rUvR$q6>BZxMEMW4+L&FV%lWCR z!mzIviyku`gm_k}#}n#{hxYjA%YL8~{`E?f<+lL;x`myN`%o`LAEmlH9;YYZ)93qu z+Xmptb9P6Z!={tTl+Pe`x$QrE?eXgM--|AWm8nNQz7hjzS^D{XrBG8h%8ol>Tf>NR_RkRiv~L zqODS?A|yBqX&}M41V~jv0D}zC*3%92%1ewidUnCOw^36BjJWt;jTE2Yw2Jrsm(xpo^V?DEe{rZQuZ{PkreIIDq zvSoGi=g(gh%d>Om&NXk|y!q!NCYms*=pIrbQ6&ootCU9H2QMPN`UPD)Qt-)ArwHc^6f&p`F{^)2`L ze1E3|==kyDb__O3kdg}O&}WDL^s8U*ILx16cK3C3baYXIsC*v%jLdNQ&aO)P0hLo7B61Qt&xpNM3J0smvs2kPZgif zo2k>O*C258Q5=*MpE`T?Y^mQr{I9I6DOrjVp(BlrPo<})k>BSn>+c`9F=tN6yLfE# zSnvD&N{-ELTOSUGq3v6gpPx^9gATzaM6#^qY~(P-K}i9nD5^%iJ~hkZ_0ZCa`?2Yk z(Wz4>$uel6bLX0A)~wlM=6o#|TKD*U{<26UOs~H73N0urr@Fe0RFI!TM~*a5R#s-* zE|L^blBCjyLSa&?Rb-E2W@D!C#MqU^hac4M4g>-VG#Xu{*W;y#aRiklcN;tY|UeMdV}wIJAhG3TLaJp`l^5$&^WDOCBXF0LhTB z)oP(3T*$h+k*$Aq^5p5ttSqC%n&Wr)-B2h*dc9uh>+3g*6j2Fd(>2h*zyJkI0g5OJ z@iQDi5OC=0)=QchMMbNy^zZHp)Wz1XU(;wbD^{-j0omoxEP}`i=u;=+c|uSK0MfN{} zR&9IfrI!}oHK^X6?xQZJbNPh}&7FR~_jQd10fF@*OOh;Wcv02hprx*>tFv5ELI#(| zM;Ea>R?#a+j~n!#FX*mK= z5Q(C|_%j1$@UhT@plWN^x12kF9`@Ywvp3%OeZ&8HX4kGixK12DwkH>{siWILM$;6S zo{LgbQ^@6VK6c{7v2r-NeXKQh@80uEM7jt2;5Y278m$@v@zSuvK~AURb67+lfCW7s zkDX$m2|?xM=Ka(H+t16JK4w@RvJL(s5DX5s-EgMNpMRe*KfkcQqy4H6vJNBig}~If zdrec*nS%=#F8XX8*{@ zNZp0#*9uFx1%Eh(UfrFAUU_-vd>%70GKyMTFO+=#`9B&d4sy9%J|5@JEhWdWgA7QK za&vP<1cg^qyfiMTclYmqJQVOss9>?MV*&5{p-@D@M$3}_FX`Fs_L~@PQUYW!=n1id zjOj+w>eO7)BhvOKlu?We>f?{ze;UKq9XocgsjChiJSbr?1zB_a;v0u}i%3aHMTAWw zyTcAZsfdy$B)S1ggks746r?gNt)#YwzfD@+goUOI7-7bgmX?k^Dlyq5wVY3s3Kw*oJxC_N~8K*^D zn<0xL)LE>l6%;2;5}%@IrOCOTDmt>ZI3nU&TwY$D8_#@`#QdUUv)hHH{zI%a^$pxx zMsd(20;NzEYAfjIPT9eiMx#B8PHjy*GfkS1K3Yeq1V>SAF{te9oC7Ent0)ed6rhk( zio%lrNN6g0pFtT6DMJA4z?s$TSm&D*pt$G3DUsD`yW>;e^esfd1K60KjCHC+4E zG+agrCi*efS%;5%CgN>eP_?zS>o8dv7%aq?i;XZJ`$jQ(1x75GiiNp_2lMfx6&7uk zahA;^9GngvI;4E^$tOxxRaF?7cL;S8^BG3v9K!QPXO;NgY42G!Ei;>4m>aALi5|)oRtC(+cpxc4)E{&)M*sAIChl*|X=IgRnN}bfYO!G^0pMOQRVxW(YgH za^=bqoY?&fx>j``5->eZ|B00uU#dY!-b_VxmFhbXxj40nOJqYCYc zrX@!-)*zb`v?201?#8n8x&HugJz%r}_tWwFOqA~xcH1zTr7rZ*&3w8~tXa@7fDXVs zt8hT@6GTEa0>^Lf8Wg0n1y=RfJ1>ni7&%w_>eOj4A1&y(V&z^R_v{!f8k{)A=oY_) zMCUdl-gUd(R8{q`$Q~Fx7l)(KZ?yBv#B1=y??Gcr_V3@HhtH2+yLRol@%W7?`h~;F zw17V(TE!e``JY(0m~*>4)ITtY8Ym*PWi(~b{S_5B?J$e}!aMKm6$~@b!a_5hInyMb zTe4&cfO|#)Opv=!V&rDaXpms-^5>|JDkFS^`M=HNiTI5P6rA3~=EcO*i$(Yv(HQsY z9O$On9ZoPmm1I<{_3ytcw8T=kSS-}haRaR{4Htd1XwhP5CMf1(rr9T1Q*6FG57$uz z1qH%nN43@1*!VJ@T>{`QPsDFbn=clfqKIaaG9tOC^i(6pix4la;o)JliJjEf-$x&Q z_>s^OM@SwK$H_W4L{B{N#GUs?FE&9A2&}21q9PmyG{zQ8et4!$=fmghZ995*JIKk8gsII3MB2=s&JmvqlJj1;JY2eT>b@Y%UaLH`0F) z^QWVM84L!*aVh}#V4{|ejt&bTIB&OtAf7Fr4|mtL^9b7*_+x9_&+eNS%~=s92Epj&)G^L;1Zd;7ib zbN#&l{2vMfpQG&F{i6O|%{q)ln2yB(x?S2za zE(%|C*|_oh+lz~fE$Q0ny3TCg{DX(LZQGW%?UjUu8zkGd{iL?Nz2)!2!^3HJpJ5nX zmgD;)p~wc9hukPo%*BfXmY$xTOPO}4udi1%(2lKJx2^`hi1NVw58PK#QQ?Mp$eK0Z zd=L!E4LK=A(H(t#eIqarDJ%1wsjI8|x{*FN1k}XDr5Map_V3@{84t_lM*7?kP|o~( z9?!fwefI2G zS2!HC!!-%-Te)&&VaBb&pd31IXpzFPOH@?_hr_B>RaKE))HF@Ur>3T!vKEUe)fjKU zY_{$wa=B~XefNV4R;yKISytsZO;h8lrpSt_a=eCPY2-9GPSMDBbp1*&DC!Io*BFM? zy1JSpJw07EoZg$s8V!T`q^0>eo5l2?ju}>Yc^Noza`26z2^RrD{#Z1Da3l=TXcU&O zSoP#rZ~7Xjs?sP3Jg^)K2pu>R2b@`=c^d7<(l=0K8A8Drju8jkDQInL2WO7sV?hue z%XE!~L6w!2F$D#A^u4w9I2=3PcHxein%x4+v*aHxkaranJX+|=Uot#20&U0JAmE>X z4;vbwq_nhsLHUBWuni-MB5yXESy9BEB9Bm64uw$^mD2&XNTO&b+8`$rzzRHP#HI{` zDs&Y4!ym-{_gG`C+>E~ zYk%GQ%v|HQx3`xBgV8P67UJ;)G&VPZ$KwGbVi*+aIH2CscaBGOVlLl6EGIxR*&&MR z=bxBBwGseJ3MbkOIGs6Z$47e_Ny>T%LD}Db?|l$B9(b0s@x0jt8H!<0s5WT)sqsbJ z&Cg0+UY;I_%J9~q12ELr4z=HX3}Uea+;-bCG#BNQbmMQ_xKVxUUxyis#SE+0tcL#n z0a&zXVfEHW9yw56zH=09Q&SaX@S)9{zIU}T((37NpZ(pd1%-u+7cHy`6nl#GSUh&S z*<^N+p1l`(ArguBmn>Ow5Q9S!G(eA~vHn2h@rf}Xw6ruqc||q+v%Vg5(1+KrU-$B| zWy>_X-74!ktMNR8-jY!PRP4v9WWG=+C`Dt5-w>M$1cSiy0@a3&jt&^Rl*)&_KHtFJ zy)Q4g+M3gz)aa=9Zm)N=vaqlSk^?I0c?_^pC16mkP|ad-=g`pbHsbBcxeIfZ^EU!J*M-J)TQ&3GGZ0B|4TP#{ofHJn0h*rJf12B_7pIKtN{8 zWJ#r`9>jUzY0Y^UX+Z^p6a6Poc2(*u|2LD#L-4?l=f8=8O>DSWLb7{ z2x`@;mDB6sc#ag0^u4&)tzQ$U+Hc=?w)@Qa#7ldgf0+FK=@U;K%~34_otil$B#WZh@0XW9Q+gt z3tfPl2v}UkE)MkjFireb7~hK7BD&1RaQ&1>+9c8z@U&gi0Vjz1pxDL}8@e*>Z@8X9&qqNKAx}LEpokXGKQ5K^3xX6z&u`1PKNu7inCTLO zN*2^FRfYg9X=o|KGD$(;GG41;Pz*Pd(57PHb>Z}{C^K4+f|qIeVf>`%&ZSh4fvg-9 zm6RqBD5>9yss%Q0-khIFU*ji*#ybs)%$NmKGv$md_Pop}s9IGf{f)bHmeHqdiea*K6Evv>)5BwyEbwQdiEu_G@H`v^H$4|i z;*^#J{nJw?rB4q{+`7=Dt4u{E-RI%bf$9g{$m|`|q0wpK-BWB1JBC0OOgTX{v zQZp^6En6O~yL088f7r9DVQC3n*4@)X@RNELmM>oh&CP8%7G4a50#IFDg?A?^z4{@<&1_JL zj3#Aqas3b}?7>P!ed zO(H1?)~7m8!I2|JX+=x=e(=F3$p4WW4wW#muwwc0U6LgI8V9lypkz~!19Xy+k(|xN zJB2{HHDA%nCnhG4pd4BejV3&@oGih?OG2Tr8wt#6d@k<9g(2rnd2_=3k%^~v6+IOF zjki?5$iW9vS3Wq#(W6Jf zX0zc5R^O{$eYGbC*^9x+lJFsHKic}f{lSwDe zLGGLgFtQNxjSwf~yNtF+z9p3;UK+%queTQ(KKclb9XpP{BXIxy-@$Cbip*{pzxBh> zBaP78*9*04*V6IEkxt39Qa#F2k5GxaHsWnLI$HUTmKVDd1|c5QboYK+XS3A zc?vo^I^o`X*F*Q2PD(iwTO$CFPKG3I0=X?gZNZyL2i;Kez3q7OucEQ&>zSYoK}kso1ssdT0Etc*85uz)c8J>8FuqT12-4At*XJEY z3j6?MAXl`h9Xoa`jK|gcdb)ddV+$)@oluTX5JY5mIO^ee%FA(-$VXCya@{N~Aj$P8 zH=UFczD~r;0>V6nLt*rEjcAKrdLm@;_gkTh_-Z26q$joTel8hum8aKrTj0+e*ym> VPeaxmnTr4b002ovPDHLkV1jc{+O7Zq literal 0 HcmV?d00001 diff --git a/resources/images/refresh_printer.svg b/resources/images/refresh_printer.svg new file mode 100644 index 000000000..e2e123893 --- /dev/null +++ b/resources/images/refresh_printer.svg @@ -0,0 +1,3 @@ + + + diff --git a/resources/images/switch_send_mode_off.svg b/resources/images/switch_send_mode_off.svg new file mode 100644 index 000000000..525b83114 --- /dev/null +++ b/resources/images/switch_send_mode_off.svg @@ -0,0 +1,3 @@ + + + diff --git a/resources/images/switch_send_mode_on.svg b/resources/images/switch_send_mode_on.svg new file mode 100644 index 000000000..b535b2537 --- /dev/null +++ b/resources/images/switch_send_mode_on.svg @@ -0,0 +1,4 @@ + + + + diff --git a/resources/images/switch_send_mode_tag_off.svg b/resources/images/switch_send_mode_tag_off.svg new file mode 100644 index 000000000..2127760b7 --- /dev/null +++ b/resources/images/switch_send_mode_tag_off.svg @@ -0,0 +1,3 @@ + + + diff --git a/resources/images/switch_send_mode_tag_on.svg b/resources/images/switch_send_mode_tag_on.svg new file mode 100644 index 000000000..39726becb --- /dev/null +++ b/resources/images/switch_send_mode_tag_on.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index 56d5120af..df0176e5f 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -113,8 +113,8 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater) ops_no_auto.left.insert(make_pair("on", "On")); ops_no_auto.left.insert(make_pair("off", "Off")); - SetMinSize(wxSize(FromDIP(688), -1)); - SetMaxSize(wxSize(FromDIP(688), -1)); + SetMinSize(wxSize(FromDIP(700), -1)); + SetMaxSize(wxSize(FromDIP(700), -1)); // bind Bind(wxEVT_CLOSE_WINDOW, &SelectMachineDialog::on_cancel, this); @@ -136,12 +136,31 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater) m_line_top->SetBackgroundColour(wxColour(166, 169, 170)); + /*mode switch*/ + auto m_sizer_mode_switch = new wxBoxSizer(wxHORIZONTAL); + m_mode_print = new SendModeSwitchButton(this, _L("Print"), true); + m_mode_send = new SendModeSwitchButton(this,_L("Save to printer"), false); + m_sizer_mode_switch->Add(m_mode_print, 0, wxALIGN_CENTER, 0); + m_sizer_mode_switch->Add(0, 0, 0, wxLEFT, FromDIP(8)); + m_sizer_mode_switch->Add(m_mode_send,0, wxALIGN_CENTER, 0); + + m_mode_print->Bind(wxEVT_LEFT_DOWN, [this](auto& e) { + m_mode_print->setSelected(true); + m_mode_send->setSelected(false); + e.Skip(); + }); + + m_mode_send->Bind(wxEVT_LEFT_DOWN, [this](auto& e) { + m_mode_print->setSelected(false); + m_mode_send->setSelected(true); + e.Skip(); + }); + m_basic_panel = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL); m_basic_panel->SetBackgroundColour(*wxWHITE); m_basicl_sizer = new wxBoxSizer(wxHORIZONTAL); /*basic info*/ - /*thumbnail*/ auto m_sizer_thumbnail_area = new wxBoxSizer(wxHORIZONTAL); @@ -178,7 +197,7 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater) rename_sizer_h = new wxBoxSizer(wxHORIZONTAL); m_rename_text = new wxStaticText(m_rename_normal_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxST_ELLIPSIZE_END); - m_rename_text->SetFont(::Label::Body_13); + m_rename_text->SetFont(::Label::Head_13); m_rename_text->SetBackgroundColour(*wxWHITE); m_rename_text->SetMaxSize(wxSize(FromDIP(340), -1)); rename_editable = new ScalableBitmap(this, "rename_edit", 20); @@ -255,13 +274,7 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater) m_sizer_basic_weight_time->Add(weightimg, 0, wxALIGN_CENTER|wxLEFT, FromDIP(30)); m_sizer_basic_weight_time->Add(m_stext_weight, 0, wxALIGN_CENTER|wxLEFT, FromDIP(6)); - /*bed type*/ - m_text_bed_type = new Label(m_basic_panel); - m_text_bed_type->SetFont(Label::Body_13); - /*last & next page*/ - - auto last_plate_sizer = new wxBoxSizer(wxVERTICAL); m_bitmap_last_plate = new wxStaticBitmap(m_basic_panel, wxID_ANY, create_scaled_bitmap("go_last_plate", this, 25), wxDefaultPosition, wxSize(FromDIP(25), FromDIP(25)), 0); m_bitmap_last_plate->Hide(); @@ -278,7 +291,6 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater) sizer_rename->Add(m_bitmap_next_plate, 0, wxALIGN_CENTER, 0); /*printer combobox*/ - wxBoxSizer* m_sizer_printer = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer* sizer_split_printer = new wxBoxSizer(wxHORIZONTAL); m_stext_printer_title = new Label(m_basic_panel, _L("Printer")); m_stext_printer_title->SetFont(::Label::Body_14); @@ -291,35 +303,76 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater) sizer_split_printer->Add(m_stext_printer_title, 0, wxALIGN_CENTER, 0); sizer_split_printer->Add(m_split_line, 1, wxALIGN_CENTER_VERTICAL, 0); + wxBoxSizer* sizer_printer_area = new wxBoxSizer(wxHORIZONTAL); + wxBoxSizer* sizer_bed_staticbox = new wxBoxSizer(wxVERTICAL); + wxBoxSizer* sizer_printer_staticbox = new wxBoxSizer(wxHORIZONTAL); - m_comboBox_printer = new ::ComboBox(m_basic_panel, wxID_ANY, "", wxDefaultPosition, wxSize(FromDIP(300), -1), 0, nullptr, wxCB_READONLY); - m_comboBox_printer->SetMinSize(wxSize(FromDIP(300), -1)); - m_comboBox_printer->SetMaxSize(wxSize(FromDIP(300), -1)); + /*printer area*/ + auto printer_staticbox = new StaticBox(m_basic_panel); + printer_staticbox->SetMinSize(wxSize(FromDIP(338), FromDIP(68))); + printer_staticbox->SetMaxSize(wxSize(FromDIP(338), FromDIP(68))); + printer_staticbox->SetBorderColor(wxColour(0xCECECE)); + + m_printer_image = new wxStaticBitmap(printer_staticbox, wxID_ANY, create_scaled_bitmap("printer_preview_BL-P001", this, 52)); + m_printer_image->SetMinSize(wxSize(FromDIP(52), FromDIP(52))); + m_printer_image->SetMaxSize(wxSize(FromDIP(52), FromDIP(52))); + + m_comboBox_printer = new ComboBox(printer_staticbox, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, 0, nullptr, wxCB_READONLY); + m_comboBox_printer->SetBorderWidth(0); + m_comboBox_printer->SetMinSize(wxSize(FromDIP(260), FromDIP(60))); + m_comboBox_printer->SetMaxSize(wxSize(FromDIP(260), FromDIP(60))); + m_comboBox_printer->SetBackgroundColor(*wxWHITE); m_comboBox_printer->Bind(wxEVT_COMBOBOX, &SelectMachineDialog::on_selection_changed, this); - m_btn_bg_enable = StateColor(std::pair(wxColour(27, 136, 68), StateColor::Pressed), std::pair(wxColour(61, 203, 115), StateColor::Hovered), std::pair(wxColour(0, 174, 66), StateColor::Normal)); - m_button_refresh = new Button(m_basic_panel, _L("Refresh")); - m_button_refresh->SetBackgroundColor(m_btn_bg_enable); - m_button_refresh->SetBorderColor(m_btn_bg_enable); - m_button_refresh->SetTextColor(StateColor::darkModeColorFor("#FFFFFE")); - m_button_refresh->SetSize(SELECT_MACHINE_DIALOG_BUTTON_SIZE); - m_button_refresh->SetMinSize(SELECT_MACHINE_DIALOG_BUTTON_SIZE); - m_button_refresh->SetCornerRadius(FromDIP(10)); + m_button_refresh = new ScalableButton(printer_staticbox, wxID_ANY, "refresh_printer", wxEmptyString, wxDefaultSize, wxDefaultPosition, wxBU_EXACTFIT | wxNO_BORDER,true); m_button_refresh->Bind(wxEVT_BUTTON, &SelectMachineDialog::on_refresh, this); - m_sizer_printer->Add(m_comboBox_printer, 0, wxEXPAND, 0); - m_sizer_printer->Add(m_button_refresh, 0, wxALL | wxLEFT, FromDIP(5)); + sizer_printer_staticbox->Add(0, 0, 0, wxLEFT, FromDIP(7)); + sizer_printer_staticbox->Add(m_printer_image, 0, wxALIGN_CENTER, 0); + sizer_printer_staticbox->Add(m_comboBox_printer, 0, wxALIGN_CENTER, 0); + sizer_printer_staticbox->Add(m_button_refresh, 0, wxALIGN_CENTER, 0); + + printer_staticbox->SetSizer(sizer_printer_staticbox); + printer_staticbox->Layout(); + printer_staticbox->Fit(); + + /*bed area*/ + auto bed_staticbox = new StaticBox(m_basic_panel); + bed_staticbox->SetMinSize(wxSize(FromDIP(98), FromDIP(68))); + bed_staticbox->SetMaxSize(wxSize(FromDIP(98), FromDIP(68))); + bed_staticbox->SetBorderColor(wxColour(0xCECECE)); + + m_bed_image = new wxStaticBitmap(printer_staticbox, wxID_ANY, create_scaled_bitmap("printer_preview_BL-P001", this, 32)); + m_bed_image->SetBackgroundColour(*wxGREEN); + m_bed_image->SetMinSize(wxSize(FromDIP(32), FromDIP(32))); + m_bed_image->SetMaxSize(wxSize(FromDIP(32), FromDIP(32))); + + m_text_bed_type = new Label(bed_staticbox); + m_text_bed_type->SetForegroundColour(0xCECECE); + m_text_bed_type->SetMaxSize(wxSize(FromDIP(80), 0)); + m_text_bed_type->SetFont(Label::Body_13); + + sizer_bed_staticbox->Add(0, 0, 0, wxTOP, FromDIP(16)); + sizer_bed_staticbox->Add(m_bed_image, 0, wxALIGN_CENTER, 0); + sizer_bed_staticbox->Add(m_text_bed_type, 0, wxALIGN_CENTER, 0); + + bed_staticbox->SetSizer(sizer_bed_staticbox); + bed_staticbox->Layout(); + bed_staticbox->Fit(); + + sizer_printer_area->Add(printer_staticbox, 0, wxALIGN_CENTER, 0); + sizer_printer_area->Add(0, 0, 0, wxLEFT, FromDIP(4)); + sizer_printer_area->Add(bed_staticbox, 0, wxALIGN_CENTER, 0); m_text_printer_msg = new Label(m_basic_panel); - m_text_printer_msg->SetMinSize(wxSize(FromDIP(420), -1)); - m_text_printer_msg->SetMaxSize(wxSize(FromDIP(420), -1)); + m_text_printer_msg->SetMinSize(wxSize(FromDIP(420), FromDIP(24))); + m_text_printer_msg->SetMaxSize(wxSize(FromDIP(420), FromDIP(24))); m_text_printer_msg->SetFont(::Label::Body_13); m_text_printer_msg->Hide(); - sizer_basic_right_info->Add(sizer_rename, 0, wxTOP, 0); sizer_basic_right_info->Add(0, 0, 0, wxTOP, FromDIP(5)); sizer_basic_right_info->Add(m_sizer_basic_weight_time, 0, wxTOP, 0); @@ -328,7 +381,7 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater) sizer_basic_right_info->Add(0, 0, 0, wxTOP, FromDIP(15)); sizer_basic_right_info->Add(sizer_split_printer, 1, wxEXPAND, 0); sizer_basic_right_info->Add(0, 0, 0, wxTOP, FromDIP(8)); - sizer_basic_right_info->Add(m_sizer_printer, 0, wxTOP, 0); + sizer_basic_right_info->Add(sizer_printer_area, 0, wxTOP, 0); sizer_basic_right_info->Add(0, 0, 0, wxTOP, FromDIP(4)); sizer_basic_right_info->Add(m_text_printer_msg, 0, wxLEFT, 0); @@ -689,7 +742,9 @@ SelectMachineDialog::SelectMachineDialog(Plater *plater) m_sizer_main->Add(m_line_top, 0, wxEXPAND, 0); - m_sizer_main->Add(0, 0, 0, wxTOP, FromDIP(12)); + m_sizer_main->Add(0, 0, 0, wxTOP, FromDIP(11)); + m_sizer_main->Add(m_sizer_mode_switch, 0, wxALIGN_CENTER, 0); + m_sizer_main->Add(0, 0, 0, wxTOP, FromDIP(15)); m_sizer_main->Add(m_basic_panel, 0, wxEXPAND|wxLEFT|wxRIGHT, FromDIP(15)); m_sizer_main->Add(0, 0, 0, wxEXPAND | wxTOP, FromDIP(14)); m_sizer_main->Add(sizer_split_filament, 1, wxEXPAND|wxLEFT|wxRIGHT, FromDIP(15)); @@ -3223,14 +3278,10 @@ void SelectMachineDialog::Enable_Refresh_Button(bool en) if (!en) { if (m_button_refresh->IsEnabled()) { m_button_refresh->Disable(); - m_button_refresh->SetBackgroundColor(wxColour(0x90, 0x90, 0x90)); - m_button_refresh->SetBorderColor(wxColour(0x90, 0x90, 0x90)); } } else { if (!m_button_refresh->IsEnabled()) { m_button_refresh->Enable(); - m_button_refresh->SetBackgroundColor(m_btn_bg_enable); - m_button_refresh->SetBorderColor(m_btn_bg_enable); } } } @@ -3265,17 +3316,10 @@ void SelectMachineDialog::on_dpi_changed(const wxRect &suggested_rect) if (img_amsmapping_tip)img_amsmapping_tip->SetBitmap(ams_mapping_help_icon->bmp()); } enable_ams->msw_rescale(); - - m_button_refresh->SetMinSize(SELECT_MACHINE_DIALOG_BUTTON_SIZE); - m_button_refresh->SetCornerRadius(FromDIP(12)); m_button_ensure->SetMinSize(SELECT_MACHINE_DIALOG_BUTTON_SIZE); m_button_ensure->SetCornerRadius(FromDIP(12)); m_status_bar->msw_rescale(); - //for (auto checkpire : m_checkbox_list) { - // checkpire.second->Rescale(); - //} - for (auto material1 : m_materialList) { material1.second->item->msw_rescale(); } @@ -4472,4 +4516,91 @@ std::string PrintOptionItem::getValue() return selected_key; } + SendModeSwitchButton::SendModeSwitchButton(wxWindow *parent, wxString mode, bool sel) + : wxPanel(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize) + { +#ifdef __WINDOWS__ + SetDoubleBuffered(true); +#endif //__WINDOWS__ + + is_selected = sel; + SetLabel(mode); + Bind(wxEVT_PAINT, &SendModeSwitchButton::OnPaint, this); + Bind(wxEVT_ENTER_WINDOW, [this](auto &e) { SetCursor(wxCURSOR_HAND); }); + Bind(wxEVT_LEAVE_WINDOW, [this](auto &e) { SetCursor(wxCURSOR_ARROW); }); + + SetBackgroundColour(*wxWHITE); + static Slic3r::GUI::BitmapCache cache; + m_img_selected = ScalableBitmap(this, "switch_send_mode_on", 28); + m_img_unselected = ScalableBitmap(this, "switch_send_mode_off", 28); + m_img_selected_tag = ScalableBitmap(this, "switch_send_mode_tag_on", 16); + m_img_unselected_tag = ScalableBitmap(this, "switch_send_mode_tag_off", 16); + + auto tagSize = wxSize(FromDIP(185), FromDIP(28)); + + SetMinSize(tagSize); + SetMaxSize(tagSize); + } + +void SendModeSwitchButton::OnPaint(wxPaintEvent &event) +{ + wxPaintDC dc(this); + doRender(dc); +} + +void SendModeSwitchButton::render(wxDC &dc) +{ +#ifdef __WXMSW__ + wxSize size = GetSize(); + wxMemoryDC memdc; + wxBitmap bmp(size.x, size.y); + memdc.SelectObject(bmp); + memdc.Blit({0, 0}, size, &dc, {0, 0}); + + { + wxGCDC dc2(memdc); + doRender(dc2); + } + + memdc.SelectObject(wxNullBitmap); + dc.DrawBitmap(bmp, 0, 0); +#else + doRender(dc); +#endif +} + +void SendModeSwitchButton::doRender(wxDC &dc) +{ + dc.SetPen(wxPen(*wxTRANSPARENT_PEN)); + dc.SetBrush(wxBrush(*wxTRANSPARENT_BRUSH)); + + auto size = GetSize(); + auto textSize = dc.GetTextExtent(GetLabel()); + auto left =(size.x - textSize.x - m_img_selected_tag.GetBmpSize().x - FromDIP(8)) / 2; + + dc.SetFont(::Label::Head_14); + + if (is_selected) { + dc.DrawBitmap(m_img_selected.bmp(), wxPoint(0, 0)); + dc.DrawBitmap(m_img_selected_tag.bmp(), wxPoint(left, (size.y - m_img_selected_tag.GetBmpSize().y) / 2)); + dc.SetTextForeground(0x00AE42); + }else { + dc.DrawBitmap(m_img_unselected.bmp(), wxPoint(0, 0)); + dc.DrawBitmap(m_img_unselected_tag.bmp(), wxPoint(left, (size.y - m_img_selected_tag.GetBmpSize().y) / 2)); + dc.SetTextForeground(0x5C5C5C); + } + dc.DrawText(GetLabel(), left + m_img_selected_tag.GetBmpSize().x + FromDIP(8), (size.y - textSize.y) / 2); +} + +void SendModeSwitchButton::on_left_down(wxMouseEvent &evt) +{ + setSelected(!is_selected); +} + +void SendModeSwitchButton::setSelected(bool selected) +{ + is_selected = selected; + Refresh(); +} + }} // namespace Slic3r::GUI diff --git a/src/slic3r/GUI/SelectMachine.hpp b/src/slic3r/GUI/SelectMachine.hpp index 951bcbd0f..f6fa39484 100644 --- a/src/slic3r/GUI/SelectMachine.hpp +++ b/src/slic3r/GUI/SelectMachine.hpp @@ -102,7 +102,7 @@ public: WX_DECLARE_HASH_MAP(int, Material *, wxIntegerHash, wxIntegerEqual, MaterialHash); -#define SELECT_MACHINE_DIALOG_BUTTON_SIZE wxSize(FromDIP(68), FromDIP(23)) +#define SELECT_MACHINE_DIALOG_BUTTON_SIZE wxSize(FromDIP(57), FromDIP(32)) #define SELECT_MACHINE_DIALOG_SIMBOOK_SIZE wxSize(FromDIP(370), FromDIP(64)) static int get_brightness_value(wxImage image) { @@ -205,6 +205,25 @@ private: int m_brightness_value{-1}; }; + +class SendModeSwitchButton : public wxPanel +{ +public: + SendModeSwitchButton(wxWindow *parent, wxString mode, bool sel); + ~SendModeSwitchButton(){}; + void OnPaint(wxPaintEvent &event); + void render(wxDC &dc); + void on_left_down(wxMouseEvent &evt); + void doRender(wxDC &dc); + void setSelected(bool selected); + bool isSelected(){return is_selected;}; + bool is_selected {false}; + ScalableBitmap m_img_selected; + ScalableBitmap m_img_unselected; + ScalableBitmap m_img_selected_tag; + ScalableBitmap m_img_unselected_tag; +}; + class SelectMachineDialog : public DPIDialog { private: @@ -241,6 +260,11 @@ private: std::vector m_filaments_map; std::shared_ptr m_status_bar; + SendModeSwitchButton* m_mode_print {nullptr}; + SendModeSwitchButton* m_mode_send {nullptr}; + wxStaticBitmap* m_printer_image{nullptr}; + wxStaticBitmap* m_bed_image{nullptr}; + Slic3r::DynamicPrintConfig m_required_data_config; Slic3r::Model m_required_data_model; Slic3r::PlateDataPtrs m_required_data_plate_data_list; @@ -265,7 +289,7 @@ protected: wxBoxSizer* rename_sizer_v{ nullptr }; wxBoxSizer* rename_sizer_h{ nullptr }; wxBoxSizer* m_sizer_autorefill{ nullptr }; - Button* m_button_refresh{ nullptr }; + ScalableButton* m_button_refresh{ nullptr }; Button* m_button_ensure{ nullptr }; wxStaticBitmap * m_rename_button{nullptr}; ComboBox* m_comboBox_printer{ nullptr };