From fba2007bdf01485ef77ae9ccd89c7cce8998e269 Mon Sep 17 00:00:00 2001 From: Kiwy Signage Player Date: Fri, 5 Dec 2025 00:25:53 +0200 Subject: [PATCH] Improve edit interface: full-screen layout with toolbars, versioned saving to edited_media folder --- config/resources/edit-pen.png | Bin 0 -> 11406 bytes config/resources/pencil.png | Bin 0 -> 14977 bytes src/main.py | 409 ++++++++++++++++++++++++++-------- src/signage_player.kv | 4 +- 4 files changed, 316 insertions(+), 97 deletions(-) create mode 100644 config/resources/edit-pen.png create mode 100644 config/resources/pencil.png diff --git a/config/resources/edit-pen.png b/config/resources/edit-pen.png new file mode 100644 index 0000000000000000000000000000000000000000..d74094b55f10045c36622cd3b33b5dcd35313b42 GIT binary patch literal 11406 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 literal 0 HcmV?d00001 diff --git a/config/resources/pencil.png b/config/resources/pencil.png new file mode 100644 index 0000000000000000000000000000000000000000..bf7d970c2cc433727f89e13a8a70fad2ccbf9f0a GIT binary patch literal 14977 zcmYLQc|6q58~>~oxmFwHK3Yod`##H^LL#{pIdZek99zQ5O^PCIi1H1&Lm}mkO^TfB zTyh_|kKZg_uiqcNw4a%I=DFvYnfF8+>TAB;J;+hNeb|1Eud!` z{GsyHG4p{SL?h`Rtl1;q9(-g$Yu-ZN@Nhu;-}b%>`TP5eIJ>*}*xmNLE8^kp_+mkc z6@s`SU5!h|0U7f{fdQGmnfuEdM0wr*?$oIq&58#PZoeJ4D4-BdQx*IAqy%fS7QR}1 zA%9$^*Q2RAUQS?v$GxTd4Y|gtL5ee8hL^tGWfv4PQTx-KQ8qJtLB5N)q0KgzTqaMH zCkAIthFbM5dcSJ*S;(T<$Xr~_U{KfSp1c6NE1!CO!V zrNcP8eUq!Kg6EWC*`H3;fg$!+Aw_kv6t2Uwi*b-iEZtOWb?FH^!QvCl;>^*R$QWkv zTQ+el&M~*x6xCDJZ?(Ub8IBE8)W{JRLPJR?Mf>`icP0pbxi4`%JVZ}_M6(>NBT|bA ze@4MEGZIr?v;R*ee8+BFCFWyqhH53-hH`O_zyrz0j87>rI+An&&f@IyGMyiiyl9&~ z)QeBC&wA2|38KH&SA6`?M4*>*@%$YSty<-Tv-+hBR{>{N{`0ntL68ecc8xRhp749$#3 zKFJNb_2ZcE%i4li@r;AUs-f6{=#QU5MCyVGv;(XPX*y4xAnaTh=GobVk{nhqiKdjH zfMj_-GB;dyD`(S#U(BkK#NS@y761H;%_~o7ym=j-b%lL-V@l~n09n%@ z{$q{^+k>nc9~Z`DyR2`*sgiCtrVUZfI2d=t&Ci|0Z9o0^J1-|ash4=yLt-)})Xxz0 zV=X#1t?zeS3u1c6m`;IVY#W8ExXjAsX)L*-UdFB7TB{3x{rJI%?cj7%oKK~9yK=kh zeL(a5>#!x=1!42ag!fIm;SHtY`Y?ycPTsd=-wAab?m{M83k1FSN*p{|Dun_w(RuyZ zX2&&3FKTf|=8O~UED9<1-Jk0Hz1-7E!`XZlxC66c+#kg@j21KgG^8U$$zMhc-xrN5 z|3;|8c+6c~j*Aj-1 zM;)#vareg+n>qZvmh6(h8lyrAqxl(Pvpa3sGvC-WRzt%Z z2Y4}QgNG`a1UGfwEVGLdHn_6D<@3~$|7?N!3}!vH7I~+rBtk;f5R6@p6K6^q%bO8Twm0Ho0I5@qrpfPVXC; zTr;|6N>AjR0TkZ073?m{5#dB!7lA1~{yL$$@1xU@(T?-9Sh5W()E&^S{8!;+sa-(K z{BAKP@@q97ilGI}g z3@^#I`em#~I|m*#UM3=2KU^ZLjt^{oZINK3;?OF&23Pwl<5AC4VHz0I!1iDZw~A$q z6u;b&*OX!4I$in?h#>>?{e8;%Z>FR|08i5kud|Ojd5mmd(5cj9f7M{_?4gs&Xq31u$0V&q;fw`(Q#PKO51@u{@bDCmDz^q|Hh$8xwEwR38DU+6@AnHP&div}(N>`%eKW(4^ouBjdoAyeb zl)ayNWFiqfqfQXxuW!S{(pkNM9XsMvk?}mJ_jko&m-lhluIVkzoo?vjtIp7{H}Y9u zZk<+$!IEzX##Gr(v+rD==I%CUg-(<>rE)PS9w2IY0du;UY*)??OZB<=M*|37lU0OY-ZV@RxEvNI~BA4d*|2Ha zF1aOo<%%kNTow3`BQj}_6+O<;sO)Dp&7GV#15vXO|fDhs?U!u-pO5LRObSDk{=ec>$cq}eRO)OIiGRjvXG)s0$GwT6C zk-F1`ee(AKOIFj|C456st`sezWxC@eeka1qPC<_5(jEedQ$cMN``cg8$BS( z%L)mjmjuF$TemKF+LKhk?^E}!);7N@ltV%1`ZNpX>`ZNUmWj9frAbkgM0(@k=Jj5I zFzabpZJ{wH*HMx=IyO3s?zAhT0G>0 zAvyl0jF>2iDEkZb4mujsEuYJjt#CTbBL&lKJ@G=)>WV@cL6n-E|47b`zf__R=Y9aZ z;ahAwrh;Ts>YPSGTVbdwA39O!CzO99Ftv_jQ!XgcNQ3v0U(^}kDQ#fX75FOzAfTU- z@Tl_~%EjrxVF8|gM>z$4;Fh8iuAhvab$!+LFf1MW;F#E6B>TN zq!5M0&b1T1;H>YPPP3cg7%Qku2wJ3;6X3BN|Zf7@w;NZO`1^NB_*li#={$iSG2UzI)&6t2;y!?7L{!;g4xb3sf zGyA+Tn<`>_zz#^~$8=wnO1m8^qY%jytWfT!xV z;H?jYe=b(&th~Mj^3SC|1(vE|5nSw`?HeZqAO3NDQXqC*T^or^dMb|_s#@>!*owtp zx-75&c~*L-io)_D;!!A+u!EAD{iC8W>pqLo2o5N-U=soff*plAjs0=MTJv^Toaeb` z1|YF~8ErpQmFGfd$!M;h^ECJSn^iEwg$+k&a#_b)62X#KmtIfKWw;eycKkPnDZ7ERvdUC3-*$kWSpEAjVanPE3J5W^K%>U zSG8?6@LCBp0z}|R;%;GRSBS^NHVek8jzH8_I~VVxp^M-TuNQV14bL*>_91K0$eJ&J}J9NfTEUBK}T}J8+uX@ z+&3zJsE#S+($cn_%TZ2|gF|G~mNSm&UUc%i2QRQ#@==N*^-q4j)7)`S3X+BBHT-n8IIY zJtqr)HMsZ;X9FBk82!~XU_2V{Bh~S4RQ$sa=EBdEDqHtA$KSm9mNK>Jo!e`DMnQvT z;tquVw-durNS&#!@fi1=Ae`_>HuIz;gA$htYa?;-5lvWu1-aQByd)_iI+Kj2DC@rn z?k?qj^}s{`8|&-~zdZ45S6S)9V3o_hpK|To+0E6bO;$Iaw=loeQt}I_+~Y?-;Vs#d zsh{N3L_WiSmnC^%CjYCc^E5AarJZjkrD? z;Av$M`^WS9ThEEPDa(UIv!#DOZCf8sS=z961eg=$JZLz0qC1AkE*34NU^l7oNT9ii z0c7cD^-sTjmr}Y#OsU7iUp(K#gmqmz?DSa{O0&SakZ=`&`SxsU?jBp^tZ*2r+x5NB z0TnAOy`<@il1PjPUB`ql=AL4f@m7pZX~e}aOec$?hwQYU+6DGmlYJgEHpqT~{8j0Q zjlJhJ5H`skxVA8V1*#T=Y$xl&huO=-e9bo$YD5gzS(B|ebw?1#$u`ax4`;Z3JEPgS zvz$_$GQIHX5LvN6mI;_dGWYH7rAoL&&Q&&$k6xcmXMrY7hT$13z~d)O``f}EYN5HL~c$q1**>?#LKJpk(+N z-0mel7{8w(|5!F)QP_kJA}xO?VhxCDolwTyUH`lk4Eph%mo*h#MnAn~xCa2pGQ{>{eMD z7n@=o?|C~7jS{^{Rq0IfoGazVlV0JXsFmJ#Km!r*CxEpi)W=hUaqaVGmV# zW#%;M4Ux32Wf%QQj`yLX+>eIThpERVc>`s{~m%q%#!I3R|7vFTUEcp&0PL4j@65J)+ ztToi5P}`C7_+@Z_GAc;A9O;k>sZ|cE?y(f;$2EJ(vT@PmxLfC^rT3w7SOoWV6@1IN8|~&x6RsB)+tRB0(n{ z=u!yC)APeByf!~w6kiJyBb<+|l%C&48R@XXZab5g#VdMvO#OQy169APJ-PY9!OBMC zu^tb%P#orI;GNzps<~!N9#g`YN}1(;P{*BH-P*? zmb$VY6lz(UYS>q!PoMg&K0sJoY{;s7q@S$l!qh=*k+9U8m0E^**>cM+Sg|RHMy__DI=2yf^KJi5w!k zRo2bLz*gtn^G`z~**t&5nXAKzHZPcF!Ts-Iso=|Z%hUgq*X!b{ZZ_&eclOpqQT(Ou zlo?xa;2}7khq9T>3Yz;Gods;Z?;|rHG~Fh9k+-T?5we#7>C6kP_aU2FuP`Fc4wo{~ z7TL`lMfcJ%nyb{cg$iRjqX{&?U+zv>tFw6B<0H#?P!iy7Omyy6Wj>P{yG+LdQ4~3S z^#vO(%}V%}fc|qhhKU5lc2=*bW~*+3zHuSD(`B{43IgIEjeZ@5Rki_%ZB zC=JPw{JS>=$l43N-?*>Idp|yn&PLJKam(OV2~-$%LFhS)h-vn8L;cid;Cb}JjF{>7 z2Ntu%n-Vq?p5~uK1yFyy*VwB@(-pPrhvQ#Rnkw^f@xg+`ikCw-4X4TFiAw$pxz@dT z!adT^m|qa2+{&>fj=I7@ZR$`J>lhd95^Sv)&;w|bGH7&$O;P& zTR!9)wor`CF_3Hz^RMPev|*SGt87y(`%W`;!`i3%+N`qNPZd~S@k__oD@?7aH&a#T zYB@k9xZ-tMOrm-<-+~V&aPTC(G?c+0bAid=J`@nQaaMzO$lPq7L5gfeb23Y1N-3<` z#-d#k%Ii(i)G)fJ0eCvu0v4MqTWeYHwBHaZ#^JjrLk~1~r7u4{Adkbi-q_0PxA6xj zr*BpxezHO)0q!MAsAP(xQtnUAih=422S)=Jh*?R|j2%fOeC@DAvM}CfL0&5=rQeh} z+|aymEJ38D%00o7CpCc*Xc(0iDsXW1Pl>HcCS{N!0cHTnbdEWLQb0m*ev)2+N=Gp@ zY^sCvPyG$VnkFSXlr+0(!&^{dND`%6cQWgmN}R>U&p-+_xEgPGiSglQAfeUIKtGSV zuEXVu!z40)yq6+IN6t*>U}z>Cvt+!V&XnMh=VPCKZELn*-C}NjTxnj-h6gp1{BMO4 za%hU)s_uoJ&+QR>)u3XFP1P z;r+K_z5gl&<8Wh(c+;Xbg3sVz)Qu4`tXwX?7uc{pK9u!2nAIa`xrhJ2^_{9`R**DS zCqPqxR7J<-u5_t}r{ryywo=x6Cy43aGe;qHbFd`!zY;gz|3>hXXbN;MXSqBf+5oBm;{vki7BDvMMi27U%ClBxC5J@=^1*S@Ht}Yt z)EsC6N)3}_bR*B-y{kGUWc|fveqVN-8Cp;(DG$^jH{Snl{Dd?R{IUeb}kDW@EQRvc|H}w%x0x0q+om%37nwANOYCzt{}w8 z3Dvwr^e93a&#z8$S-*6r#P-;BemTP~v&=+KkNMygPnV*dBWJungF|v_GN$f#|D&ge zVx&NS5Fwy^HIh^L17YmG_DIJWwN`+>=*wVojn20g(m9w0?Cvh_-;DC^}HdW&#Ie_>+n3 zf#kb)At3~_25$;*all!iZHX@6O@j{g?AjrJIve zYQJKDl0b>3`}hBg1orCp%oE6_4E!aHZZ**V+LMDJ(4z+X2N}Qb#TSvc@+`-AKl%I= zJEMFDHHQW-Z)zQH?#i?Oywc93&ycG<)&qmy?w(JH4M)?cQ6K**%?L-4e(D@GwzE5E zVpIw*Q-eZ_)Opsm7s5B2=-kfVJx^{(fNJ6}Q*BT)1YdTz!GCR-Dlza2uJ{W|M5RrKevGE}h%~Z4$j({M4ChIV^zh zCv7$>B4qDy>R74dqmD3RX^7YKsEPWHC0xy0{gA0#wRgxu826tefsHOU1w0bxREW|! z4YYA(QdHCK^C}BO2ek?v$&XsG>VjP9IW%%Ok2_2j3zJnuAW%kv$2}zb&fa#V13k_j z^@wnEjT;1$D;`Zw?pdMr#sW%49<`RFxWjZDjx^9>Q}sdm%Z~%}0$Vf$v67Ln0PMWK zj>g%Gid&#;dC`cZx5vFdE8VfOXN8iDjwngU`)IxH0~3WD4^YjZOVR}GBF8g@IsBI( z^czZCGu+YxW0K%8aY^~q;Ish=1FYw*Fr{B`R5$jHyi7cG{iw%GOk6{Y9fdk&(w!Se zU;5FpB{J{WJ5QY=-G1gAdI?Ip0MThLH)hO6`8z_N=Nqsa@Ew%zTfEz^laQkuLCi?( zhy|m{OBkn(x>L?44t2$(Yuih|r$~uew#ADXF(36w#us)b`0bDE%Db}ilO6Z#%v5bC zgq;G;l5%8g9lNW$_#y_#S>dRMGrJERHR{}O{co*5c(a`d*)BDE2J#vlsV~QQUu-!{NeLRf#c&~J zBKpvcVx)dGS{*Dw^+3%m$CHVWmMK3W?qdgFa*hu1fPDo%_3v1Vzn5Am)b4}O)R{jf z?K}3Dw-TZ-^${%=)q96yC_Upy zh({&@^Nx@)Y9DfSb4KYZ9|=O`zFO$NqwLxh1=YN#-mOTD<{diXm-kHQr`e%U`j`t_ zuWiaN#^xN;$q66$JoI@HN}Gtu2{`Vmj3V~#?0yRQ+_rUBuUqHdvAO=TZ<5cAnwez{%BMVkMg&u(IemEvCvCCNB@ZHXV+YU-Wk3s$=DW+SvaFX11kK;cI87b)`@}uZR@jJ%S zj(oF9+50ik1ZHMEz~j8CR|?;$(#J83s0F}OuDQ`Yl^0~%ed#j+DN(V{GkusZrb?U&Kn0xDUwM)u5(nop{s3__ADU9 zknEK=RE zxxp%2*YDmHy7FPN`plwV+sZ~W2%(L7C$v0~b~!c)kDN&y;ZA(s_#{_4vr0bTSuU;N=*@989E zAnC;Irk2=0|3cOehCvem0F<(rN{yMLR+zxte=?gbx9eFd%8|YII;bGSxJ{uTX2YD@ zfZr0?C{dZe=5%b(Y_*&8(zuqDK~4+!E)mUDXmPL3rRN)~3|T}_Ob;wL?STY01UxeYp6lWIH;ZFEcAfW(P0-f zzRQQlC!zwuikh_7cl*4E`;43%zN%VU8*+{L~bSM=WE`x!^J;wSbjnuUboBVn z0YQ{r;>Dk5ig-ws2lDL?1=Q!kIVR_AC_lsbg{R8UTrX0W2e8&N%Ah{1GsSeoSY33l^A)&{9tEW4 ztH||}AH(RzE&f#`NXlAB zU8nco-S@&*gt;K~p$ZmarR2db@L5{IBT)jR>CeVgki5f14>|Zy3bZCiN+G(w#8lh*z)zC2^#lEH-cK;o73Rl)L@#u zff9mBH=!llX=c=Y5M(;xLtLpOBnRue0dgR z3a*#FflQQi;o}{rw?n5DzAhL^Lr|05FwB)EQ~fdN4EkEhAH7;dH1<=jI~2S2=M!QP zTunYEsrB0U?yP6!5SK#Ju#qeTMbeMjF;_+biXN_J z27c=esf|@uPIZE~w`ib12^Ci~hlYDypJq?C0S0!y5JgY_ufOOrG40Ad;4mH7$@=Gb zdEPLRvF!c74|P(iNA+bH(_?n3-Po4yt^I+z)kxzc{E6ioLZtu+GH39P5>m_U4W0JX z1yt!ttq)?Np7qmTj*?64p@%S4Uo9T=e2TbSLXtvwiLkl8_K6rKk)T0xi_-&+#k}V-A&J`psL=_oS^Zp14vFyvzRN> z%*h<2>5|IN6X|g3J*XS-SKfun(@h1JiHWWxH;s|&EFhio<1gJydJBWZ2JL!bHYYRH zyRVVvyR-DM&8S8N9dCZu9fHsuqr&wZI3FDalJO!!M^vKxA0e)jZg43(i{CSc)H_WJ zk+u&=XB@}b(zOSYt}fHu|5_#>D1WU_bSMD$R5I8HA)WchZ6deldU19=f~9Z>q#_lv zoc*6qbGArYy+R>-bAiBs^WjaJA?2b^Ujyr_@z=q@P#w0cZ(E=?dGaj4XJ}MV0(RXt zYL@>3dw}H_TlSoVSTtL%8g+Oz4%K@mSdB0J!prBB1G1;)&;)Kx{t>`PY zKbiwiHzniESVw>3@KoL3IaKaPfxs|tjvJ|nTltNbXZ?1W(kW*}KovoBtluTUZFsd~ zkud>dhL!KBNH75}8r#dc%?o6maHT^41D!wdOrStm%O8@!{j#(w>?D}P#G}=Hp}nVd zGi^f<#9W(B=3^Rk${E(4RK#FgHNfr$9v0V z+9!|*P}g9f-1QVSu2HU?+wmGHU-h z9u#V@)>ftcvH8B?1Ovtj!MU{MX5#J@V0?(#A?y4rPJBWaQlWx=lKA*OS#djnh8jMU z#59oXnKQ%5>aQ;vv=vSPK_JYPzbbL{ogxV?6)k>8yo+r{GUOsVD@0Gy>4#M%Tc1Os zo)+H&M-8*~6wrxfc&P7tb?*9&s8Y=Qp-viIdB#qte_9^_z@%u3dh5vh^E=l&%%*>m zfvbC4+Uy$d_#uE}>34#z-f_zc>5a>+4aPLaHX9e+RS{`?pGxsq2)Tqi7J0K_z}AxfQi3YiqbVky_- zvPhlDBZww53?H?w!Dsq|6a&DHo3g24Zs22-cijQQl9|*i4UNk_lEV@`c3A+pp^5p4I7^!e`N+h(JmRH z$1Z6$vGi;7H1VffHm-C6An7DOS_Gb1gzeMq-4{klSRrbQx*P9{ui|g7T*>Vr%M{$Z z>ktf^J_#TkypviS*3yG6&p;mY2f)Z~fKV&N7L5uWHs=0@JDLW~N8!R5A5f^#2(vGp zzd8AWLOTKgOp+!1YnFFMId?)xz({{s8NS-xf+IEHal?C(_vJ)18eFkcGMgMRSAd-y zz2Gq$gr%1Q>pUYess6Je|FV|y%t#O`1oJIid-mK*+|!WcdcqY$gnz(gQ}LG`Ux9NM z7oOR#-mP9(4e+k^KM5u|L*!wS8kQee^SF;cT4P;;A~@fhZ}I1i{Xef@iQ<$+E83dH-5J^>L{CZkBHeam(7Y)wyk%|X zTz#zBh~0sr;Fx`s0gO{20n0c%nJfM>f2E5v6SD6k0X)3Enm$kmzMS-hy_VI zh~Usj{z;{#Pg>`5#W|@gIl;Jzc=)q~rvW)_s;X$RM0J4hyc1=R?FiT4%N?lbIbc@abmoK2O_?ReD1R70_#l&v2Oh3Iy%Np$Zg&-+nNM^dVrs%DJL!PM zjJ`c6Xto2}-zsCE+aTy0Wt&p2l5Nh1kdoJ0skYFZYrv+sD3VC&T<4AoM7=HB4c z12R~cAU5!NAc>o^UaroYkFQ`iMi)@8bjlTtkK2G1kzYB4&Aa&%?cBz9caC7^RN8Pg z2w?sA`Z~`ofd!m|yT6zk@YA+(h(iJUC=bSce;PoE?}~Gs;3U~!s-s9~jOf$P=MK_{!4HM@Clq$zmXwuOr|{>uVo7PuUO})F}sR_ zzhYLcW4aqXhgP>PTn*v0d{^auZKiD6vIu}yu3}plGp;!V7n)D1&syJOQ*TZ}|AZ2q z1p&+^M6l@RsZ+Y?R^L=veMTcyEVvZnNsktK=0?v!i{yvTKZ=calQH0v+YwOSgJPIm zh!#8xxkwwyp<*Vy{Py3_8~WAcYVhXc&f(40_tyh=_D_s&f>$5jbLR+S_o8C}i6;~o zsZQ^Nw&vwv+2OlO{;GG4R}WEmhLC zoGgsVBEj6 z)?-W51je-yy;eTT(1|8fhmNVgq-qlf*ZnZVRhBG3v$JzfdTxQW z%W`s&_T~7JE5U2}(wEoo$m-C4W5ksmL~YzA-10Nq3#^9Q=(J8 znr3PeYg4m2-cof}`|HNPp3kHgV=eC06v6t^Q;R4fV|WUOKE+g2=XqZ-Eu|?LN%wzP zi+;bQpAD<7degTKAEK40wkw-gJz}^b&R4T)?}vDJUhO`?z9dgPb_7|=)4zMUytyS??mZ;k#8mN5<|yi6w8xaRvUCkAIpo6n{-x~QlMFSDGyAk45?a*tn@Lw6T+yWu zx{V4T5>WBEZQ>5>Y;4V}?CKrjtdy=_H?tL8P>ykpTw=e!n*9E6c0810G)5``Fr>C> zy4fI^*;wGVo7#w!i(+GkvEM81!^LDCh*Gnc-xL?K7n=|}sYFG+aPhi2~B zP^SEP)%Le_Q3+k2$}$thheirpMmw6$n;9GquHKFXEIc11?=)c>f_${z6@M0XxVT{J j 0 else dp(260) + width: dp(370) height: dp(70) pos: (root.width - self.width) / 2, dp(10) opacity: 1