From 284329351b8f007e1c6619f062a90f51acf4104e Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Mon, 12 Aug 2019 09:54:21 +0200 Subject: [PATCH 01/28] feat(nks): adding icon for retiming --- .../hiero_plugin_path/Icons/retiming.png | Bin 0 -> 33018 bytes .../hiero_plugin_path/Icons/retiming.psd | Bin 0 -> 158239 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 setup/nukestudio/hiero_plugin_path/Icons/retiming.png create mode 100644 setup/nukestudio/hiero_plugin_path/Icons/retiming.psd diff --git a/setup/nukestudio/hiero_plugin_path/Icons/retiming.png b/setup/nukestudio/hiero_plugin_path/Icons/retiming.png new file mode 100644 index 0000000000000000000000000000000000000000..717b3bfd0a6084ae5a60f3805d179cdaea3014a7 GIT binary patch literal 33018 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�l61FvuKnm7aOz0f8w0 zy@DVi{Tt^LEd1vWC5qS}5B05!sviUDyXi9qk zw`@2qX15;V01xfD@jHt07S=`R>ry2d81y9hrp6n~J+MM2-jx-nO%%3$dM*cR<(`2S zT?41{AdpkRq3_LD{5q7h*z(_B@y}}izuF_L)HQLwj}kJBMn5dR z6|4Spe7ZHLYFZ(t(Jq%RL}HFMjt1PSI&;L~2Fw)kl^YzK#GQ@Wd-6F(!hwJ72+P`c zeT=KpvtwV$`oa3ir?mZ&uyQn@a1^`89Yn14 zesR8apIAu3sXZD=7@*dBdtou(-C(R|AwTk@+3H0}0mFmlc`&ZV5z$vJRX#1s0?DOyj6jyx6|7GBH@gXR{5^L7s|=+v(sB+ukP!-z0UPuAwY*^_1Kr z;VcH$HB?~b&=1tuA+mfz?k}`6+aL!j?cjjTMQ=K9d2~^hK}R%@U)q5Wk*Cfh@nu;P zhD#42Rs*Bt(>H@xg}(uLcW`P>*)u5{{6zwZ-(Nwu+D6E38(sO2~U^Di$75el_#CRirxq=< zAFGybk{c*4ADdL(bAZhp>{6l?ML{!e{t{}in3A;}OO|n-W{_fUo%!DUjIM+SXJV95 z=%-)o)*WB)Y)@x6Frh+oSBx1(kB&mM_oYH}t))ky>AxTR=oUelx1o@Y#RZj_RGW2u#=gDrJN+&b6C3~)HFSWWwh8yA7h1{~R zN~H^7Z&vw{jY@1*lWw^-%WNf9^a<%wZ1*eF@xqIHcCFY3~C5aiO@VasGSb*@eQhC z{lXy>9_F5Ss%j?$WC_R2Bz?wU%zH#Rff^_Ag2~k@zU10FVCnB9 zxyd$N-sD?l8bnp>y+ir7B9DH%vgr69)@sce{OUsog5nu_FQ~hgJ)P`MB&ZEjkI)1;fwGW}-lw-teP`MEq>8|CQyfubbK_L#y0uf*4KZgQ2KgS4OBK>zAl zE-E0J{giB)(X&Cb#}I?5iXVZR$Md7jPsMh%RWmuI8Szy`8UFS3ze zAW9Q4_$hqaHtZ&raWS%ZB(>A_bv4cN=qi1C<*t`kMdHAHMRe%v?D5yOf9a6~g*b%M zytjK6_0#f>$ZTDhg>a!@TgawCM)xUav>d2i%t`i*aAbR(IkW^CwiOQmV*;!f5%}O@ zX>EB*oXu5{mrf>tf+?FR;Y1IfCmq&V&_@w{WI+@syp4k+38VhA9q?beH*j>c01fkl5!TaI5@RFgkK;qB$p5a*94E$KlBmv@gwmFd9A6~~c#|x@ zysmA**7cs6e0*xz3rrVr()?b$BKlEf8~-^~dTsf$f_Neo*2olXv&%p<(N6m6g-U5+-BYGvm(bTm(qp9PwV{w z+DjniUsn_8NF|�GP*-fdYPPCBw?6)$EAi|r6Yc;;@gGGNno`(8t_DU`KBRxj zKi71TjN1^sBz@VhF0bq{2q0^o9k7-QTUR~dy=LXpU8J^mSru_%7(7c636n9SgLm_| zQiQY;z-v7nzy9cu7s1qp`!R^8*eAiT(SeBh(bBx!6^;+n=q4Ft@B^WI_<<7>H-ZWV zPt9#EI*@?HCNLiBL$Tb83E>>^usT8dI{rnfZ(CaM3ZmhJg}IPsBgzd8i6o19G5^dk zG{JSt@<(ScHaZ|%Bz?RAS~>=trR@{8nu=ByHsBp_Lg6o?hKTF<4~uV70WXUP)H^$4 z3Bi10op8XQG%QO86U_SpflhKtt^-3zv4{LiU@2sW!H?hSlRRf=bMc^(jQT+OQjuRW zMAqY`&4gtPY-d|{45hZGr+A4L9;FX>Q&!^WoCnrrR=M`BqzPuaCn@4}kJa4cE=pYi z1FC}(0SI28e^a0o802u_I05p4Bbn2?Rmq`NNo=hPut%P*12SVc9(#w;)Z8u}Lh zYE#NS2$LJ(pD0OX;jY)uD)#(BGUZ?n6i)^U`I&#Y%hh@Z2Hn)byZBmb^9DS4Q{dVi zJ8*{Z6HQ8t1k!1p+OHnxj`UDPOd`<+qEf&VR4N@69{4%x**9UZfVoUA862E7?Qvl{ z$j#ygt@;hw=zV342BZA`O25ep!rhAgtu~8FN=k7xaNfKN5*vSI0gLfB;$#pqK=BE) zqK67JV=qcNm1N)!-7~C1o@o8-_aweOykRyDBU;r4eB3FLM zET5mkn=+xqT&@bUC7P@%1qL8!22j`og#7?fCV(LZ7zqpG_s^tOW+gN1M2E#uV(XzP z0JijAE2r18v2WA{K2dDUzf`zzcZ5ILllpX}`2Hp0^b20vB~ZsM{KF;maQ3uvbL^rJ zk^t$tEp&9O4S$=v2{&i>lIBHMA$Ch2FY|+qQ@Y?g6*Ttwvg8a4`bs=@0;Te2t#``_ zvQYWD#Qln+{O@=}BYREG8-^yPB5K29U)WS;10LVL1D_J=Q{Kv1-E3W-Z!m~##|rG| z?@XQb2d^+?YbW`akW05}z!#-Q5YtCTxUp>r zh1G(M_c*qe!^9OBfIBNNWbo1fJw~E>O0V59(PmeIabJn7codh>`3(sG^jff%74;&> z3LKsS=^_AH3{(|2WGO!tAAX1k-BHME7w_njgrW=gUmc=p?!C{Zz!Q*@8j}0D;0NyecLst1M(4`0b)Y=7sZ77*w2<=Ci58KU$gwXV)(iYMSijV|s5;Nj$cY8r5x@-*M zL}IVx%fANSj8$_)y%`r|LbV;v@pkhSSQ=6-D}DcV&oUP-^qEgh&rx^u#0hRL1klL| z|FwK|EUhnNXr&}`lWGU@PnlykZYDjlAy<2j%_vFYC^by}j>?ZV(S^YtUB+V9y5LW{ zaA=KaS$;H^`bC0S?sWY)u9wyvZ{#gKsmh+}_%i9_t@F5Ew)uA9L+ksBt9pwqy#t+R|=&(LLG?*=+Rnf$-{+6Jx3G#?Na-wNV9!M&+P zqkSk0#@c8SX5p^}u`~0lh}u@D-)GRJEytK70T7;-$7I{HsKmSRB9}uA{5x(5U)MaW zJnSQxL51 znpD79Iorve=%tgr1Ex#y4a4Y3l@A#=*$!I@oI38EzqdG)hFd!k=1|k>QD#2WTOQAQ znz-9ZSx^>?;2imxewf<#D8Ms`zhbXcpf1C`FMD9*F2jIYLS^Rt2diCM z2V|h;ai?qL1A0&rmr3W3kW%GGOQu94Sk?_QbWw+DoFW;4I4hK8|K;)n;8!Y`8?#T7 z3B+bb_G2-vY$bom!POGxMcB@z6M7h)1onn($zl4k5!)|Rxe>11-ZJy>e8n5&Ji>JP z9IINaam=vumle=p`E;cDlL~*Se#!S^Y#20-57Qx|RU##zpS>ycUay}R{QjB@4^%8B zWQ8UH&r&7m=f+>~!(sV=j$w>E0mm)T_0@(KkyjkeoWzf7K7^Ba#hoxe1eY$J)Xn)| zB+)(P%cIGciM{xpX8$hbZog~hMHsKUYrnGU(@bvU;Kt*}#=)@kB@dxmF+Un+$DZAd ze2NnL(^Z|eL^#ZXn(-SEw-s6i92qG<#;x{mV8l|`)U0Nm12ZV6tTfuuoyZjT!kYRJ z&pz`+r$6gVaiPJ9wLQ(!5c#1S@UN_%qkP&l_iX>rMxrm@-n_GN3guoXF*f zi;}X`*0KZf*?c zb>%~^7tue__ncTQrG3D)hu!)x(u?0-RM;N|gIQIVtP;)Ec_J*msXueZPDDv*;ZZoo zjUPDM6KdY!Yy0%SxQYxH%_+a0qq%o|{|xI1-{{bB=Uo6 zRw^47Dx5*^7}r43?G`!vgKAY$!gogCl^PX#4s)Yysi>NDl!=!Qb7GLn8_(|t3GRy! z2$qU={R|j5D~th!@5%SJ@FKQSn5h~|o){M|N}fb9h2M#3imK86wHo6#5u~QKK}_T; zKBrpb50(s~iL2i@BW|Z?O-#U)-EL=8nZdBVl5D+;#h`r(@cqG{5n2m$z=lp#j~TnI zi62w>=7|V3x>&hWxlHJa(aZ-8MSBAx2dQtVHjD6;)-S@_1Aj+W%9?H&-iI1^YRbF~ zl*frS6|Cl6oQ@Qg*YfCOjXHkC8RC;#fUW@l#Wv6CPbBBK1;=qjgHYjPNYJdL#n<~z zbZ;;I5}S4Mf7*L~o)v%kMVD34`z%rsM)WwOvJ@4&|EA&o`f%4VDtnSzsV4s$omF7| z?4!=gT|oQOx}%S`pM3e5N=5aKxN@P__o^n=nwgLG?)3qW_3* zu2_GJ^sML?Y%dT5tqpLkkR(&!F5>2$IA*kx8T|S3Mr9L6XJaz1-Zalcs&*k!A)L(T ztt(+j?&`yNQlWAu0Xd+-ag{mB>u;ju!@tJZuEk!miiUw}F+jzCTx`-N0I-BR{i1if_Dg+fF*Yd7 zkQ&pp@@)4NUY0y@*RF#y=Liv7!`3usgWLX2&T7Cf<$0E!+hq(5Ja>I(9Mrlf5D|E) zQobhSpYb#1v22m1d%BTqF0SOc&5sOEY8#=5vAz$C%@yLkB<33$Vr|!u|4s1|fe;T< z$802aSlUcs`n8A-j&Ejdb)a?UN|_VJwj9=sChXjic&#~J=ELL6YjgvytiT$2Q=%;? z!1=ekw?{E@vb7_h#BS_H>N&rs!~~zckJQ z5*tz3;A(tPjp=?>f22(mcj32S{B)R`*)Ydrc{^qDku7x4Jm6QTq>WbM(V;EAqXimo zZzGI@9`m-Cg74zB?)iyUON_@r;lCsZC@7N)ntU(xwZfe@^Y>VC^o4?6Wai7hD9+bo zO{w6_KRk0Bf^D~F_NptDJCpG#Nw3|<9+%HnkdBx9!N+7$Lgu(>b3_M2U5i!bM$dA- z{(H70?4ze$;N|wCf7`1~m8K{2Il*CBZ=awe$<1_n`C-FJL7m{gqQLDxUCfSN+u@#1 zTgRhpN3!clB@Oi>HyIDj+l-GL@c1^|kn?XVfwS0{@KU$18W6DY-5jj@B~3Sm$@_sT zqUf^EFM-IwFtEbla=x;%zv>Zr$WkC?=W%AM+nM6(^@gPiqgTUH?~|83fbH=2MNBQ) z65g818Gc7{mY|^y4v2df9M2J&8zv_huKcc=RED8 zCXltW*(I;>O?2}mlUD<^6?(&P>FCwpRc|nI2PkHSyUXjpc-^3_G3z(@mXuGcdLViV z`}}jUS3{IdTdu-H?(WTNy@T;trh-)uYKLyQ`sk66PuJaNyBj;SEl<&O%GXZ9^kv6J zvT*+`fp)I`#cseoUnv&m$L{qd<*h;Xmo|y9FaKB!W)84eEzC32wl~ej>dY%`yKaxn zI93+3l;`cX+@5Trv(9lB)OLKMF8*J+9 ztOGc?))nN{@vj2&PoDnNtBRjoANyY1pw-{AwEk34{XyunRShhvwVabiqrqFt1yle| zj2dHENu65#0b<{XA%1=ti3d!DVviCnEAsIcE5}5A$|t#wp8}#;!UIP97FKwZ==rS7mMaV|BIKxwPCFrTP%6g-3#2!-wm}X=uQ07C z$b3=8bv(26j>Mu`%HlL27%8185f<EG?xQCz9L+u7H4Z43VeFkRY7t`!~(jkFv`ccZ#c zE$k;#8D^U5<4=yhKf*#v>V(=s|6JIAE<7yl@a}slvWuZCe65SLVU!<` z6$}H2ICyE-a>KHw)T#OjaFL(U>9Xrw3vzx1C!b-Dc`Se0V%XK&BxSp!g-NzIAuTrBf$zl(ITs*PAmV@kJ%y87DIEbhbG%SZu;E~`~Edq67) zB<&Fh1bJ}d^`~eP*6IVM4nA!u56uCC&d)%9)W<{d_>5JVe^|)TMIX{ zgZ*tO{(5}dBc6!~-%vL^rH=+E17T)izySo@Re7qPLG3-t#)FIQtC*SrIUR4U+Rw0C z2gaasWzVP(DlcIOegK#{y5&(s(1X@;A+Od$@ymhxmJ#P5+X*|*{X>L5ov%SD03b&{ zmWwA;Ue8yXvusV_1#^x>#08q=_wk!aaI`W|0<6R%HY&Q;7 z-bAYXMttyAlUOe(3W?OgHy!?(S4j>)^u;5|dYL&fjAmK=N5^`nzMj{+exD&8+z8zA zqR;eT#iU51mDBwx3nwm56v#UB&(sDO!>dlmcyI5pw^P6P{na{uFDWe~*b&`cCI>*W z*`kR^%4Mibfuq{ZDaD^Xc=Ci*epO>FQ37I$ zKeZP-JGsagT$qO0x{GgEkb5M|iUN?*NKYX61Otsba_7Rth;VIfNRT~URWt1Q0W%sG zSN2zhO)mf<`MssyF&+Q_hpD#?0R%Q^Ko!WMudbKfbk62`lFP!vmNNg1{B)|I}3A@)oUg z08^!w;1=(J`ZQbEapSkvAx5r%f2eynquJIW#yvmRVq-bvNH3dV4^M#@b-<0OvP&x|NjB$<q1OLtj;|gx{wILKcZO=n#n)Rs$Y0C{iXybXzuAVoYc`Y)5gpa z4YZC3a`W)zg=)C-ynO-&X_a12*3$6t9Hcd=zoVgJkS%YP&#-yHym9kJkN248>tW%k zWo;!nFv2pzKggdK>ZTFl?-vka88Jx9%`?!QX9-~(ZJ?z=Ckgc(q%{}=jmeHbtM9;|7vY(-)v9X5mqh%!tp@G4k zUY5>wLxsBoX^_^e(9j@D1B3AJaQ$!-{lH*v10xFy3j;%A17l-7NTC-J84&6gp%)O+ zohhWL96Mf!N3c&&s83*k1}@jlJuobEkd_wSQS(Q5T>e4LI|>NVr;kzJBhcRfuVsRvjYF(xSKI^^z_MLbT$yGZ)qFM za|;a&9v>L!XT_ZNF-_%Z*xKUrY@yL>l23qVV0cLHfd*}}w48yK(s*`mp*$;`Q_s*$ z&(M6lk(p(GW6OSKeGH8)4Gmir!lZ0dh9k5_Pq$FFR;8Hh85xc@G_s_dTI*7NO53)a zKu;g9$UiEjC1tBJJUuME0)zeCLap3_g8Y0u+;Hb|JY*fvP9ca*!v{in(aaaxy z2nlry@Zb%%vw{eHA0JOk3lA?(Gk0D;J!2D7Lp^tke*N^!jSM~YEIj*rc)DA-dm5XY z&`NT2Y@Pj=qU{1b!f^Y9qM1wCGtdKyZ?2c65zoxT-PFxY&)mY$SkJJ3KQ}#h_x@&j z7G|dXJiPk3o0z#k8aKaIY4EXl!p@A0O?ds?&5ZR-d8QV6W@fMp zb2Bq{J-2?IJVQ4R7^U#-`rJDynomL*W`SUyn8vGR7Qmy8k!fZajp3Xm00aJdf z?0>zF@L9Zo_AVc$C_2?&7ZMWa6&mgq%p2?tE#yzGY^Kzov$ZXLpaJfE{e1ohPDF^? z-2dz}@cJ2=8k-vO^h~|ny!1@X`avT!GxyT#Z(-c8zoC)4hlP=8(`o+ydm5Pj$I#NK zpQW*BQ~&dS?=-ZuVvkvF0p2`MD}$yZYl`@9I&**4AO3q6&~NV?{|}rw=1TmzPi*RE zf9*pDw%ikJ1N{Pn9RodiR&bB`U35#!X_afZt?iiLKrbIZo>hpm!w`+(_O_-*7N(|p z#`;FBi)ockSPoOsRt6m1cQCPF9)e|R&}^Fi(ycW2zJF(+p!X>x`}%1^Me1s!koHB9y4u%I8!A#) z8-=tliqzG=O{`6c!p377CFZoMcQ$=s0(n+DE4t9uUgo z1%&xyfWvre>lch=IXdq+p9q{{h)*cagE3PkFL<<@KX1JKar#_>YK zf}GrEdjOP1V^A;(gg-B&fyN;o3PoWk2p5GUgPK!=L>Du}FEl_{BWd?AAHPta0J=!v z5_D=?$0;M3nXvz;)e$?mF5zL2)!^c5Syr)x$(~_`fA#DJ_BFv4?G(yeiiQNf{ zEUXPi4_KrX-K1<)kf!WTykcobyaA!dLv>y)5AX*U?Fg7G|Dh(LG_uQ0JBlNiTfGTh%= z12+HD$IpVV0Ql)VvnHtOTbkJ4c*NnB*<~x zP;8JOn2e}_XC*Qv(Q9bO)i0Ur@R{DQF&Y}J*q;OyJc5GZMoWx=#3r8b?Gq4Q4q?CW z&>$R-Ypv|=i^C+oFlfo~LX3-*NX`|uBP3xN9< zbIdpwQv7AcCmqeK+J&vswHL(amf@9SnT}NDK}%dq&X%~q1JF0a-Hf%VCC)t#p(`s8 zQhnPJr@aqM+vNyd&T4f$D!9G0`YIA1o`*hGX!GY^CTLFi*MV01)5rU3o-M0k$6Uf1 zxK(?=WZbY|4X`gfcp7?b8}YxLu~oHN)uXR7&x?oc7@o#NXk}oA!RZe0^r631#V6pW zIlZk)_&2k)Dgg(Xb`1fgg94=NqL1XWlo9Lu1H@L6Laga~fe_8-ZIr}Bc#c45l6oQ2 z?ja1EUjMWrqd_D?eCXQ(vUMJ>;Sm-*mr26L8xGh&a!47ep>C)<>IK$|F)~8~kPWg& zBajo=Z&T1ru-IlHf3V)d(E_vttwih4CbS*xMDge#I)+Z8^XLjnLbuUfbRRuNFVH)b zjq=eqREDZi0~i%zgbblXs1fQ!526oYOqdf^ggr5ea3-b@u7o!cK!gzsh-Jh&Vhgd8 z*iRfI&Jl^kZ6cF+LcAezh$5nbs3%#ZG^tE>C3}(vq&Yd597&ERXOQ0H9C9AHoZLw6 zAP>3%qG8)RV>7kVyUn+S$ZsUmMzPPHI?PX3T7>0t!2fq4zNzMuCdZt z&sf>4VpbiS%T{7*u=Usj*u&Tp*dFXT>_zPL?49hR?91#s>}Tv8b{Sj1k>PaV^x;@? zhI1x!ygA{Vm7EyPVa_E^8s`NkpHt1{a#grGTr=)4?iB89?tJcg?jG(L?k(;UZXUNv zOiWBotdH0rF()xMu~4y$d_o4RFKq>93(kja<=3W$sLlXCDSC|OIAur zNoh%0NR5^9kyaWj$r1WOvD4mVGK)A}1l&LvFC#Ou2b-F>)8=vgC^8CFFa` z+seDiFOuISpD6!IzDhw!!AQYL!Czs$!f}O6g)fR?iaizW6+IP~D<&wWD&{G%l)5X~ zDtRa^Q#z=Wrj)PDRn}1+t~^_Lo$@K=N6KX#6g%|mFtI~Khg}_RbjVg=sq|DCuHvT> zt#V%FrAmFrt{n$=Q?GL>f6+l)xT1a*RTB>zM>qB?R?&jUSx^L^A(!ESuUE5K6f%XaQw>>0!nD>~~Beq9+kD8u3Jty^C z)$>ZvFFL9^!*%BAoX~mSOQx4~uQ|OA^m^W#+uOXiZ|^<5AM293{dH&Q?$XWbL-sN4 z2Tl*v_-@_v2#@%ruU_qxAQf5-l-`ls}7 zG&M5~Ha%@xWTtKAYPQ?#mASI{81wb!85SIiAr?^BVJZP5Nf*;X1>u2%c3vaL0(-K-B-=h}3)@w7Q?Q#iQy;Ms#u4lWsD zI3#$;r6D!8mbMFRZ`rZz9PHNGJ+fD{pJ2b!{^L-sq25DJ3@vl$?=aut)-cYnk;66* zdo{f4aF5}~hL?>n8?kW2osrTb$Bo=MGIx~jsNhl897)F!j$0kykM1!#VDuFyhVLyM~{Cuq1S}42`LlhCQhGt zY+}tMyGdInWluJkym0dUDV?VHOu0H$Z0f|Rho@Fev!AwoTK@F@(^pP^IYVbg#Ei_D zoo4#Yyx}6};^uO}mE$_e^|&kF&B^V6Tb288_ucMg9=0B_9^X7|Jhyok@doj>@Cv;K zd2R9f;yuWFt9Q{X>sc|gihXQ-cKVdh9yU9Ec8#x-?-5_hZ<5~`e{p|T|HJ^r0N;Q+ zf!zWl0-pr+30fJHJ;!p+_Bmz2BZCiz5Fs-{u7)auG4&v)auyC=xPK9`$bC^tRQIUmQTdA<79U+A zxx{zL!=;8xw=Dg!Y|^r8%eyXLygYA(!-^9tWmg8Te6?!8s`%CH)jq2qtua{>w??qm zbM3u#hU;S1@z;B-zqi3?!;THqMz4*JqD`asZsKkV*z|I<_2#2n6t>LUlDE}y>*Z}4 z+tzOTvE5~RW=y}B_*luRz-na8oTvFbpPELJ(XY8FvX(Q7z?hd`1nm#x^Ib%>pQl@2Q;yv?wSMHnM zzx<&8gG&$lKfLtF^wH%kv#hI+EgoNcGVsaGr`AtzKeKyw_xbSW_g{>D@#N)%m#<$< zf0g~(^YxcEes9X(&VAePZt;80`?VkBKg4|O^6|i@-k;87n`Yn0vCDaoJ1+NKo=4ud z&mo`r`O6Dr3StV?3y*y<{*qKQwCM5IXF3T?u zE~hHiSE^MW`O)u3O4XREkJbLw4K-_P)oPE{nb)P)PpU6$2>=MKF#6D&rvJrvJbtO}ziU{g8^&LsmUxwyl>j-iQlBFf& zxfl`=)H}2sNsEh%ONdKLNJuM4NlGbnkdu~{>!7Nn)Imu}RY98m2sez-c1_4gNy*5{ z$ji#gE6d8tD&v)`GLuE&PYR%JAq8Fk*INx?R=@-28iLF?VE#t~^$~{8*s~kALtf$@9@t*c638AJPpH9f-Ra{t} z`YbH3a;VO>gDWm>zw`X_k3*NzUgTFz^qRXe=J4gaFAJ*8942{(uZlf#CH+-ljRGP` zs4bhWlNguNpRR(Yks=#vFh@&?W4vUuGOodG=O<+*+U_~QOSjmL>);X6ue=8rS3s<1 z|CFatiG+@x_7hA)dAZG1`0EvpgDEJG7uBcIH%joR*lK6Au=c~Lwq>kqN7H~i~_J?Mm|niB46wX>f~#0jn4!-}T`Z#y1;u|B-< zeuCh=w_v#ScdOQ!9F|61Ta@Pe`tl*mV+~G+DfIrD_4m6`pSLs~dlpqPL%llBx?*^c zQw^`WXSDmf;S(U*x`f9>FM3`SUt=8IFekoF`$nRm_-5MJ;&;Qxw@yN#*`ZktaSn}F zv-n$PzNgS!7x!7!{@PoHAC00O{|GqsVvgl#nYcFrYro|r6b(xMGGSVjW%?QIuZ5WW=$^-FlPL5s{d?c)3E4`;C+c+N<7c}Fp?1`vLP3DFj|jEDwAk^I>GS0L(Seon6zVpDLL;;I?-xD2 z&s#*8-s6-0$5xLNj4z;&kzD!b_#ez}b^D&V)e|q8MiNo?PJSxT6b#&AWnf)7r(wi8 z-wMae$!N#&H1)a(yZCpk)3@Z5M^b24^xG-^XEIG+MsV1d?4s_T{16!t72P8>_ZfxE z)XUesTIgK=ee+X)FZHqW&lH`}5W5;{wej7Xx~zo89xibLsm88*4~hrL`fLhg2MsAx zxfa^zd2(9%#4BbAZ`RCz7?VBF=+INAgE`kWIaSPkGc9UUnvO-yqQKZL6zXfPJH5+Y zlX{cJ()`NH5jnfmZ$vvrc&mTdNm@%1r% zHyy4mud0ZzyB{qmI#h1*Elu!XQSfw*h9WVHv$jC-tVH#(#e3zadR__$n`nBs;+byg zn7c<`&GZ^D_m%gvS=k+&I|z1GznQUP;=;~E-wNHnuR3K|+ZMv^es-P% zGs3d>cEw{M1Mha(=g?74cBYYaLf<%Jb%`wP8!oleR7RcMBksOYV}RPDsGJcFf_%6A zGd|Uxy74_LD_!CIy*Q7gaHB^a9)b_kwZ12(Me#4hQfS30!GhV(YX{%7&6OV@H`^m? ztxL^@(pBm&yw%@Z|A?oa9;$-sC@*vpSPSaYHmM}POy)a>S=W{}*(qV>5OyQVQS0>Hm zEiktg=&tY6IOu!Cq8{->Zhx;m9y9)Haach9VP$hCiJ0#7ozffQ-ti~)by&XJ`^O@e zYVW}EvHse(9K6g)mt$o^5ARtvr{1B=F>L8Me!{I8*4@jB2VPdcQMqrrgYumFeo@!c z)Sulqc(Uxm{fftFa`Ub7W-8UIXA8DHnObmR?}82^yA+0`FYSIXZs1Y*3w0D)TUd~} zVRuB7gM6bwb@I*I4?+@66s@L5UH{ZTp`_)@&Die!?am*L*M2lI=S^Y;&wNzG*|Pc` zMR_&mf+-7+9=9*Xn60k1+WfG(>aK!)5wvWxVC*?q6K7 zFh1$nkf4DkYu1#zUUw;XqmW)cg>qaPRnyY8zl~a_UKi4bLXztIx~Z>f%^IR}t>34? z)!#j#taPjOHtUj4)U!iXSKyS~a1xkD6<&L3GU9dpCpdrrXlb3SD?j+Eb}&dc{hVC6 ztFu$C$BR{sJ4QTR{dD<@*=zIOm(1tHX9iD+OuG5e=<K3M{6i z_T9hHct?k$U8beipWtW@%^O%@Bfd;Id`?{tx#c0x-bt($BrdluxHo;ISdRzlkI$5< zrm?0^%`W&d)l;wY2``&7dN<|E3zixk@3M4JkEv;|AN#EKz1nT|@CDs>t& zPjhR}UU4HrQsll_JFI%b&pndKOYwNHS8cxb=rJn1zEMX629Fkh(YZY?ME~5Km^}+7 z)bu--c4X6miO_vzrtaOS6`bLACb)aoMHiy;6Ug#EV%K@2?o#f1SF~{K1u+x+j%R-^AfI|O((AiI_o>UQLVGMYvZdan0&vc;_l4L zr3S_G-Oa@{W=BOeJX1GuJEV4KqVGk=>aDNkc1|y~zF)E1>c{#~rHjSyO`mRUcE8BI zz$7nqy4Tgy7j?Y8=(>$*uwS)IUHitQz0(&}#cmZCR^)w7+v4&uXL(eSV}kYST=l*@ z1Iy^f%KaL_Zo?F%H#$h}H8HcElasuC>W=*BpCgZjM2w!2tD2+bp&B=*JjHro^xemnV zow5`CqLd4Q?kzYion&rw&n5gvigUxoLtm;!8`pK26%si|%{5&&ogA%4SY=wp@2Z(H zpl52f{2u>RvFb5v*1E@8h3|}i7_V8Dw<)^z-1NxxPd{lV-+fl>n(Nea{MVq@-dB3q z9aSzFxhuBMZg1Ac3B8^)>i4RTNKVb!BA8~8y7m2OJ@JH>sh$1w9|tYYUi;Ztc}nHy ztSwW5GadzliSs`C>*<&&pEvJ*m~lWe>{IS1r<10UxygdlhcY)^OD+#P@=_-<_YH+6 zIOASoSFU>TehMAyYQ0i@bW};Ypon_0zv@1PI&^gs7$w(zJ+xA#@Rc=xe3f-R`|WaI>3%OA$Z*@X0slJ=c3!%n5Rlur@nUpSi@& zRbNB)%Y;jh3_IN0`BKKBe4$?p?c2ToXr~_N0->|n8TKL-7t941(b2uYuci%3omoxbqgJD97y+g!~c+C<-6m7 zI7@qx-#iMhSGVC-~N3+V$L$aUIdw?C)Qx`$ThDD3l zwsBij$p@E}3lb@GUA^H5^>Tj|7*rhwIn@`#bv&VOj~i9b6{=1gd$hMYs&HqFT$tJ2 zK?sFDUb@-+vRsM2^74bP%(4&mRWi~&Y&9~*X#M%htLMt4a+aHTWvZ9jF70;s zYJT|`lLF1oMXH~7C#U7C>v<`y>-OkJx>qk&JAE~;82=hq_wAj*1UgJc)a>?s_B)Ri9g?r12yq~|i^x?{L z?x0K2U(a2%7FL5PxY~8H7DjTd=UJi;o>5lOpi1*@sR0eB98 zyOw=?x_;-H=hf^RM!6S~KbPK#dYDcj>187uJ3kP>GhL@X$EVJ6E(4 z=I@KPTn{Yw-dGbRU3{i2?CIN$yAw;QtYRysP5pchzS-K?_s*S@?>5hQdsnXh$f9p* zKlW1S!OR;~^AEguVmV{7qh|HjhVP`=>(YazU$4|%qfqwC^@)@DW}Ek_4ReYsSRYZl zXtKwu#;nGM{p(`8T<)$Iao+Q^?rTIL>T%VC*q1j?{n&W-I zg;80VQ8%{Mth-C0JhvxNB@-vrJ)qE2pQtP&YUH~JU(hxUoAP8di&*o%BW2jx2BA^SZI-PFW6-BN9Td|KH9r_exlyc z-Zf3y*)#*z1a_~0;kCa7 zE|?iBpanrh7&|&5T?mN7=pIFSm>nMBg@{h{@JCz)ccOE1cs9{Xn1+NjM)Y7BTuv}y zOoy?raN8;$aH8SeAaoR#=SY&j7$F!@CEWhYA4x#?mk%rr%`J@#HJX02032}ph?e^8 zBb)X?fd8%~4Ew_$E&(t0U`yZ;MlHueXtf**q1*acNTRt6W3styx-7hc5f$|D&|CUE z;iE%@GcNxxKH`57kE3CX8eLx7Bm`OvQ7W*s-4f6Y5E=wa+bsd(LmAR`OF&aW@YWUm zvSmt35ti0^OQ1y%`vsP^TLQuO0EE-F-4bXG#Nz$5-4bXm#9G19cFUB82`;Vm7Jbr2 z=z||s2l48#kgycOQja)zOdtC^gz*~A0IY$s&r1upl0^s*1C~!f8df&qex5uB$ zfC%{XVn!3<^4edd>7hLuLw)@GG)y2P-p9B=+dv57i%%XFx+OFZFQX+G6Rh#mps(K# zW9_(L*=koP0Y1&cSSK$=Vy<))Y97Wad)w-^2D5L!umBj*g1W#W4VQHw@`EK9X`rFV z2f}_3GQo9(AE*h2G;EK+fKXbF^ug_h4T~(6J^bALu#BsVWuE}A2qC9s-vD2Hj5s|l z`-KE~{Um$%;qsf?I4&b(mOtLdFj(l(k{)3pxc%WzKUi9HC60eC2me3`#NrA___;;$ zg2(&#^YG~2!LP6 z>LHBS^>o{)r`tw7ZW|qyas7VNHhwMxXZ|mG>w3>F*#e*S$6X|P!B#GYOrL&@)5D| zH7Hz{7lYo z$LBU>!NbO7APY0j7LWQA4${SaqEa)!zm($_hDU(WGZXM@QRbuAoP=&9Lxu!K{B%nY zhn_qXkKBjk99WdGJkiZBj5jvS%@YQphCrFZUD79|dCCBuk$?>W;iq|u0gl&iiiIu$ z#wa(>VDPnR26(J;b9|s{Q@nh0ePQG%&pyEOr`n=10iha@6yJ=|u;6*j(YEA96N5uN zXbrT~tVIL3#Brf+!J&UpW~(D;F0-ZfEsDowPU7JKvUs;meE`%>`KJRJ92^`NKCXE> zPKRG19BR{SieIu$@(i7Yi^oST{QOeFr~vO@68%yTj1%-|HOLzu2Hh-%2h4Tz^MQLI zkFEqh(X!1|93J4wi)hM4_uS0gUl~$~!Q7x(Fk>Q!elURXysdlo5a^a@x#g~}faQOF z&;Ff0j*tN3F>s9dN~0}_CM&?Ezg3V&A=k=gn9tjK*GHDjG0vqe9Z0(rmdUUv!Ez9m zZ%oh6#da|w?%}=x*3g8BdpKuH&(FGrQ^4nsd;ZpTAvSJsd4J=*Uz@HCteWk@Ke_`D z(;>@$atHY9=aT4C(n$G^J!-opP=HDpGPmCG%NCv_3gwXHt)9PZ3FK3=7u`De<(Dmi zrZlcc$&QV`YzgFFql}8K%Kx$@&_kpsg#OBCB_9zibI~ z0F*dbe(Nt==1xoBX<+mUG$L63mOBmZQ~!+)fw|)U_47bK`YQSB=K(p)|M5M8wF-T_ zO+CS_em)QC6x>Q|`gztQ7lqFT72?S|*zS1*OEvR6AgK#s#5#-56|6zgth4m9qAosW z_(jYBJX{Ixzeiz(pQ(N>Lsi^nkXjskb^`kIzCmae8vmVr0GB4pDgDLaXo=i2q5Szy|H%w%+zbB4bV-5?eCxmo14*>${*MdsBbelIQ`DAB$3d z*@BG;rHywR_{+A{b@#u?!W+K0S>ZofcrG^0@jqF3KCaF2KUsLLi<{#A9Sg4|cZ-GB zvZsH~!fSN|%@$tE(TXfQIA6b7c*g(I!c+S1=*Laz>-n!Nyj$3qf=_Z8v&F~c7x|Ng z_j4aj`vlwX=lwiAy=|C&J_$^8T%+WJzQGfsU*jfMV zC;FBiu;ohw@DqKj-cr=x51MLX~3+yKzP27gb-~@Hu-IT^K{?g zzoYM;@OSk6<3U&0#y`o}_+n`gM&w*Q92=l|AyKV-!F`XBB41G91c=ueZa-z4LG{~xjSCkSo*)?3EbpCPpMTW=X# z|G3cBZ@pz~{R2W z9-ATh`v+-Y3AKh2Eg~I=+Q9GI0NA4cpsQ6>7sOt|UBeYEA{~g@!0+3DsK@%J^^!~6 z*SL!okq$&{;P-7n)MNeQdMx%D_7c$|(t)TA{I(51kEIH4AXMP(z7l-$rb zx$5+j@)&9l#VJZp2pu3>iK<{KjiUAP`&+1;6uaiqtlkn;IIderR-<4G6-TiI#Ycx$ z!MHTmh|~EEo2XcdRq<%9VhyT6{n~VV$b6OS}d7?MIx+p6}6EfF6s-A01>8-R)WN?h>}29TrXHjZJ=1G1~5ko z5pszuu$0Rqu;iLcOAQG!Sc-30L9M6A`|9xaO*&;c4u2XBv*-rBpu?rBBuNxmM27{* z3M4vQyPR4_5%1IpbY&S1gmyD_c$-9f@$c`eZ=gXyWm2-RD3=&LKq z5q9Z?qni5p&w3;}$aMZ6I+7^t3v*9MSA;oX&**U3CMgn0-lD@fV_9%>*;`NFT(Y|3 zJI%}-=Du@G7E3Z$X(`W#fcq7SriDxxKnOQ4^C$GZtZJn+o*YVqGB>*GMgn{n)IQ4G z1uJ;;O_A+dNZ%BXsyE^rXxBLU2AVyZkMFJ)DfHd7C_)~KEW-Y+@b0@F?!It0mU8|< z-;MWb!rd8e-ZE}Q^v!#}ejTbsB;k2~1HQNCZ|z$PcYo43@oO}``Tuw_Pp$@A2?hOeHo`x;psB zT}{t=@#gLBHwkaV-@bg9b~QH8LAwlatrIM&u;9Or@Q1@VuG1g>;c`0vVcLIH=D%MSQ~%$u z|J7c9$A4FopX0Fhuom$eZyBwsgQhiM=>gjA0ebF8zwyWCKpx&gcYr^vW5rU$BDq|v z*r+{Gq)#8&VpNW}B*)Tm)a5rj-tKwJeik`Joh*S@&s=eR`$OsX>tdk`1(EVkCt@w4cpz;1HwQ_JavsnGE*KMYDz}x7Y zCE67bLv}e(PrrnfwE7>dRJeqg{4{B~MAxCFnQW;On}WK%`Ew4Fb0 zfY;Nc;F3-?_IR_bv)1GH(=|uB)__d(yvFONsHT z?ra<tgoXuwU5uv>L3<_b|a3IYUt4?b#)Z0 z;Y?2gzd$E+j@41@%JgV+>22_PmTY!P6!B(SH2jJtOWgGtzkwnv{iQIHTL3#G^X95Wqiu+kUHBbPl{cMB zW)YM@mTv5_5hG$M{DKFkaalJ!B^GsBQ%@1^oj0JZh#YXBtbt-bcZF{+BBds!L!P?p z4m2U0UID3I+!2V%x&|QcTx2$&Er=NX5h7_FnUa4`3(wB7F&#Z@9o{i%a|hxZcXoka-C9%y#Xoc;=^C+z z;&S*qx*}43!4C|aSs1WbgD%zaf$YR&J|>UGv2l$^WtXP_8h3X?q};qp09oT{z#>hq z3L1gz!6Xus#}gPr=wIMtvKIzJ$c9&7GVx~;uK^^i9LUp2&7=Y6*#|@>v<#Cev`Scn z{`q=L4rl@i!Q|OghOmsz(If$Wx=cE_6q9L90eS5qB)yMRVREt;bU9wocF5PBP2>X>>^+n%J~# zj6V1Yk^0Uuoa>4qpeY|Q`sfd66C%6qD8(cZ2s!BkO#&on(lwSQ*NlKne2>YeAR&n< z!FjG@GX5P+f+guZUAEIC$pqe9j(dwqb_hc{Z~YE=8gKN2F2(tEBaoahDLRkZ=3-2e z`vV#CiY9Y~WD`wpnF1O85|i9;hNwo<LN_;4g@kZ3zPhX z3{hJ31(WnaK;YO=XpK?h(#(*);Ez{OkRuvVs@J*8#^+2!WrTS#Pk*>#nGxXk(!%>^Sm4lq<=C^ zHmNZrj3%#~Fu6&SEew$i&Bl4&I0G?B!lYzdXF88$@FyUGcjMvP+>MiP>n(}tLKBHO zGhLV6czv`33UVzb}lT)8tifG%KEvA4Sr z`MiUkCC>#&pK~ zA(`5gXI9!wqS5;Faua4GC-0S8Z>NH1F(_?BZXk_ElAd|1%T3WY_n#L zV$+R}Ws{7-)=mIuWA>h-5Ln;DU>gA1m?iIzrU8p(bptL2lD{3ku#~oE$@@-1GLY`$ z_%T2f7SpC{6B)pe9bJGhM(tQ(9?NUctVn)bR~BNd+DFbpVv$IbU6?dkwYbhKmibjo zz^sL*i6*m_A!b*giI8B{0%!DcNfIHL>1 zLul4Agf?qQFl$+e>n1d7X~LMbq~Kg1AWdd1Luj*>1hbZfn$22<&}JIoEc4K zErV#YmISjF#z{@1&04Ts8KkirY*%>tH((>y)F!i*L9|&*f>{e_a+6uR0YwYVS`y4! zHfk|zX+oQ|q~MwnkY=-%CY`r|@k)YO3#8esrHRrenk1RPcau85!HqdPRFWpjG-#J*YA$@(NS^#RYY-#0@-Qw_*8rZKuhCRipKF?=*80D?_d93j+CJv7oLSIIt>=sPw zlW=K5%XS`fPn4s{hY7MkXv>!Mb*U7w5!)>?n{lSQde{j;o3^aFd#-F6$!){W5&T>F zn1Klk>B`pwg2yw-iK+N8P{;;nV)ku0lnBqlN_*k)6A)db?Lz?wWze@oW2U$VdIVto zaFJRo;aQLczu7BEGo{@$OSQy|FuMmng~~lL(fGkzadsAT%dCohdf*Ttdfmp3h_uld zksS`fLp59Q%uXCTS^8Xon+jV{kvLFtGo~ijp>t;QQ{n5nfOho%1Rjx!{aTyBxxwnX z>kHJ4&A;219{H)A3ho)fLz7NhuunvF-M4y*{cW=rW~AcwD)5l-bLI``Kx_j~3#k>6 z4c?yDR$>^l2+NCb1L6v5U#+rMBer8Vjozwv0@zo>IaL8396Btsp5ioQ#|-PiiGkm- zVY4*NV?Tp;Nbtc`kxn4CwT|L8eo0tsph@mPyAX#^@3ZpocW_hXM@ct=SB#jQ3vQ|( z1v{7bla(cRftyNW;8()j~6%S7f0hcC$)P!*J3ZC{L1Q0*aaxKYET2dN3!dl`pwuySdlrj8vK()?{k}}ZQv!l zU&uS#I5)U`+pHXow05lhAEQdJ4Xdbf3iWG%$xAy$_;DUGF2YG!!P9}rW3SRH25 zG5i~TUCJS*2(culT;i8NSLdf(0ukR3X&eJPCf_gC{swXhc&*&;fm{)5@de~EM0VeV z`C}iM0+1^ZIp`GZgRDI`AP;0{%%t;u;JI@<j9rP9?@H*S1gOp_U8YJk_G){w*Vfzv!Ff*1{!+ze4C0>9?jL89^G=%#M zEklIr2@o20C_h0fpvAhCP-PTxzh4$wiHMGu1r%JMm4U2BXcZzxf|mm>(VLnN;J3C& z@omu6Rl#F~FL57!VT;hrs;8hkNY~6n>ku)txQ>EOq;VBH18so5cP_t{0Sv`u?@o08R7nXaqSW>_^u2^; zZUseAL~fs3(AyFk+2s^Tz3P?>y(`h}6VyAa!%gT)i4O0|;CBv@;tl9F39$?e6qCRS zP7nvnKnoq9eZ?ZQs*GZNgà^d2B1c@rm1R%sALia~GMZnLAg0vG663?KtFg`7y z?U3#yc;}O#LnUklknS~%#ZLnNJt6T9q*}dtTEeBHh&l-GL4daLyYq+8I(%)>j(P<{>K zZA3^OE2W5i;;%qTL4^7vVDZvb@@ugo5UmLrgJZcOJFmT3IpNWfmJ=fEbu#tTMoJ;WpBT zK!#V1tb@fAr~1*sx%M6QK@8lQSSNo_V%0AbW9E$1X6=HwMkK?%So8hE)7z(FmIgQ( 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 Cyl|`l literal 0 HcmV?d00001 From 66889e73151385482c7dfe2d80b3af6aca850917 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Mon, 12 Aug 2019 11:38:13 +0200 Subject: [PATCH 02/28] fix(nks): ikon of Retiming changed style for better reading --- .../hiero_plugin_path/Icons/retiming.png | Bin 33018 -> 30463 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/setup/nukestudio/hiero_plugin_path/Icons/retiming.png b/setup/nukestudio/hiero_plugin_path/Icons/retiming.png index 717b3bfd0a6084ae5a60f3805d179cdaea3014a7..4487ac042232d4d08a6c6f4a3a847e522ca9ba51 100644 GIT binary patch literal 30463 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 literal 33018 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�l61FvuKnm7aOz0f8w0 zy@DVi{Tt^LEd1vWC5qS}5B05!sviUDyXi9qk zw`@2qX15;V01xfD@jHt07S=`R>ry2d81y9hrp6n~J+MM2-jx-nO%%3$dM*cR<(`2S zT?41{AdpkRq3_LD{5q7h*z(_B@y}}izuF_L)HQLwj}kJBMn5dR z6|4Spe7ZHLYFZ(t(Jq%RL}HFMjt1PSI&;L~2Fw)kl^YzK#GQ@Wd-6F(!hwJ72+P`c zeT=KpvtwV$`oa3ir?mZ&uyQn@a1^`89Yn14 zesR8apIAu3sXZD=7@*dBdtou(-C(R|AwTk@+3H0}0mFmlc`&ZV5z$vJRX#1s0?DOyj6jyx6|7GBH@gXR{5^L7s|=+v(sB+ukP!-z0UPuAwY*^_1Kr z;VcH$HB?~b&=1tuA+mfz?k}`6+aL!j?cjjTMQ=K9d2~^hK}R%@U)q5Wk*Cfh@nu;P zhD#42Rs*Bt(>H@xg}(uLcW`P>*)u5{{6zwZ-(Nwu+D6E38(sO2~U^Di$75el_#CRirxq=< zAFGybk{c*4ADdL(bAZhp>{6l?ML{!e{t{}in3A;}OO|n-W{_fUo%!DUjIM+SXJV95 z=%-)o)*WB)Y)@x6Frh+oSBx1(kB&mM_oYH}t))ky>AxTR=oUelx1o@Y#RZj_RGW2u#=gDrJN+&b6C3~)HFSWWwh8yA7h1{~R zN~H^7Z&vw{jY@1*lWw^-%WNf9^a<%wZ1*eF@xqIHcCFY3~C5aiO@VasGSb*@eQhC z{lXy>9_F5Ss%j?$WC_R2Bz?wU%zH#Rff^_Ag2~k@zU10FVCnB9 zxyd$N-sD?l8bnp>y+ir7B9DH%vgr69)@sce{OUsog5nu_FQ~hgJ)P`MB&ZEjkI)1;fwGW}-lw-teP`MEq>8|CQyfubbK_L#y0uf*4KZgQ2KgS4OBK>zAl zE-E0J{giB)(X&Cb#}I?5iXVZR$Md7jPsMh%RWmuI8Szy`8UFS3ze zAW9Q4_$hqaHtZ&raWS%ZB(>A_bv4cN=qi1C<*t`kMdHAHMRe%v?D5yOf9a6~g*b%M zytjK6_0#f>$ZTDhg>a!@TgawCM)xUav>d2i%t`i*aAbR(IkW^CwiOQmV*;!f5%}O@ zX>EB*oXu5{mrf>tf+?FR;Y1IfCmq&V&_@w{WI+@syp4k+38VhA9q?beH*j>c01fkl5!TaI5@RFgkK;qB$p5a*94E$KlBmv@gwmFd9A6~~c#|x@ zysmA**7cs6e0*xz3rrVr()?b$BKlEf8~-^~dTsf$f_Neo*2olXv&%p<(N6m6g-U5+-BYGvm(bTm(qp9PwV{w z+DjniUsn_8NF|�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 Date: Mon, 12 Aug 2019 12:31:21 +0200 Subject: [PATCH 03/28] presets are loaded only once instead of loading for each plugin --- pype/lib.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pype/lib.py b/pype/lib.py index 7009743c97..3b8b0fee21 100644 --- a/pype/lib.py +++ b/pype/lib.py @@ -467,10 +467,14 @@ def filter_pyblish_plugins(plugins): host = api.current_host() + presets = config.get_presets().get('plugins', {}).get(host, {}).get( + "publish", {} + ) + # iterate over plugins for plugin in plugins[:]: try: - config_data = config.get_presets()['plugins'][host]["publish"][plugin.__name__] # noqa: E501 + config_data = presets[plugin.__name__] # noqa: E501 except KeyError: continue From c32be3c197f4c424e326f77a9fe4b0daa5c7ec39 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 12 Aug 2019 12:32:07 +0200 Subject: [PATCH 04/28] skip processing if presets dict is empty --- pype/lib.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pype/lib.py b/pype/lib.py index 3b8b0fee21..fde5b96b85 100644 --- a/pype/lib.py +++ b/pype/lib.py @@ -473,6 +473,10 @@ def filter_pyblish_plugins(plugins): # iterate over plugins for plugin in plugins[:]: + # skip if there are no presets to process + if not presets: + continue + try: config_data = presets[plugin.__name__] # noqa: E501 except KeyError: From 3de2141b16c39205b5552e3beca6f90107661a75 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 12 Aug 2019 12:32:24 +0200 Subject: [PATCH 05/28] remove already processed plugins from presets dict --- pype/lib.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pype/lib.py b/pype/lib.py index fde5b96b85..6eee38f6d8 100644 --- a/pype/lib.py +++ b/pype/lib.py @@ -491,3 +491,7 @@ def filter_pyblish_plugins(plugins): option, value, plugin.__name__)) setattr(plugin, option, value) + + # Remove already processed plugins from dictionary + # WARNING Requires plugins with unique names + presets.pop(plugin.__name__) From 44814124f8a39bc45ff0e2beefd8f5172f7c3649 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Mon, 12 Aug 2019 13:10:12 +0200 Subject: [PATCH 06/28] feat(nks): if user writes `source` to Tags value it will get source frames --- .../nukestudio/publish/collect_tag_framestart.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/pype/plugins/nukestudio/publish/collect_tag_framestart.py b/pype/plugins/nukestudio/publish/collect_tag_framestart.py index c2778ea680..c73a2dd1ee 100644 --- a/pype/plugins/nukestudio/publish/collect_tag_framestart.py +++ b/pype/plugins/nukestudio/publish/collect_tag_framestart.py @@ -1,5 +1,5 @@ from pyblish import api - +import os class CollectClipTagFrameStart(api.InstancePlugin): """Collect FrameStart from Tags of selected track items.""" @@ -19,8 +19,20 @@ class CollectClipTagFrameStart(api.InstancePlugin): # gets only task family tags and collect labels if "frameStart" in t_family: + t_value = t_metadata.get("tag.value", "") + + # backward compatibility t_number = t_metadata.get("tag.number", "") - start_frame = int(t_number) + + try: + start_frame = int(t_number) or int(t_value) + except ValueError: + if "source" in t_value: + source_first = instance.data["sourceFirst"] + source_in = instance.data["sourceIn"] + handle_start = instance.data["handleStart"] + start_frame = (source_first + source_in) - handle_start + instance.data["startingFrame"] = start_frame self.log.info("Start frame on `{0}` set to `{1}`".format( instance, start_frame From 5420f7ef6e7dd203f9d5a50ed5fb7af8401a1559 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Mon, 12 Aug 2019 15:41:30 +0200 Subject: [PATCH 07/28] feat(nk): default publish knob to True --- pype/nuke/lib.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pype/nuke/lib.py b/pype/nuke/lib.py index 4dfd326066..82244afdb5 100644 --- a/pype/nuke/lib.py +++ b/pype/nuke/lib.py @@ -550,7 +550,7 @@ def reset_frame_range_handles(): node['frame_range_lock'].setValue(True) # adding handle_start/end to root avalon knob - if not avalon.nuke.set_avalon_knob_data(root, { + if not avalon.nuke.imprint(root, { "handleStart": int(handle_start), "handleEnd": int(handle_end) }): From 8c2f73114910f8e5c4ccd6853817594438ae8bde Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 12 Aug 2019 17:45:25 +0200 Subject: [PATCH 08/28] few ftrack actions were grouped with label+variant and their icons were replaced with group icons --- .../actions/action_attributes_remapper.py | 5 +- .../actions/action_create_cust_attrs.py | 5 +- .../ftrack/actions/action_cust_attr_doctor.py | 5 +- pype/ftrack/actions/action_job_killer.py | 5 +- .../actions/action_sync_hier_attrs_local.py | 5 +- .../actions/action_sync_to_avalon_local.py | 5 +- pype/ftrack/actions/action_thumbToChildern.py | 6 +- pype/ftrack/actions/action_thumbToParent.py | 6 +- .../action_icons/AttributesRemapper.svg | 1 - res/ftrack/action_icons/CustomAttributes.svg | 41 -- res/ftrack/action_icons/JobKiller.svg | 374 ------------------ res/ftrack/action_icons/PypeAdmin.svg | 173 ++++++++ res/ftrack/action_icons/PypeDoctor.svg | 114 ++++++ .../SyncHierarchicalAttrsLocal.svg | 1 - .../action_icons/SyncToAvalon-local.svg | 1 - res/ftrack/action_icons/Thumbnail.svg | 136 +++++++ res/ftrack/action_icons/thumbToChildren.svg | 113 ------ res/ftrack/action_icons/thumbToParent.svg | 130 ------ 18 files changed, 449 insertions(+), 677 deletions(-) delete mode 100644 res/ftrack/action_icons/AttributesRemapper.svg delete mode 100644 res/ftrack/action_icons/CustomAttributes.svg delete mode 100644 res/ftrack/action_icons/JobKiller.svg create mode 100644 res/ftrack/action_icons/PypeAdmin.svg create mode 100644 res/ftrack/action_icons/PypeDoctor.svg delete mode 100644 res/ftrack/action_icons/SyncHierarchicalAttrsLocal.svg delete mode 100644 res/ftrack/action_icons/SyncToAvalon-local.svg create mode 100644 res/ftrack/action_icons/Thumbnail.svg delete mode 100644 res/ftrack/action_icons/thumbToChildren.svg delete mode 100644 res/ftrack/action_icons/thumbToParent.svg diff --git a/pype/ftrack/actions/action_attributes_remapper.py b/pype/ftrack/actions/action_attributes_remapper.py index a098225125..db33fd1365 100644 --- a/pype/ftrack/actions/action_attributes_remapper.py +++ b/pype/ftrack/actions/action_attributes_remapper.py @@ -11,13 +11,14 @@ class AttributesRemapper(BaseAction): #: Action identifier. identifier = 'attributes.remapper' #: Action label. - label = 'Attributes Remapper' + label = "Pype Doctor" + variant = '- Attributes Remapper' #: Action description. description = 'Remaps attributes in avalon DB' #: roles that are allowed to register this action role_list = ["Pypeclub", "Administrator"] - icon = '{}/ftrack/action_icons/AttributesRemapper.svg'.format( + icon = '{}/ftrack/action_icons/PypeDoctor.svg'.format( os.environ.get('PYPE_STATICS_SERVER', '') ) diff --git a/pype/ftrack/actions/action_create_cust_attrs.py b/pype/ftrack/actions/action_create_cust_attrs.py index 6a68eb783e..47a6bb5d5f 100644 --- a/pype/ftrack/actions/action_create_cust_attrs.py +++ b/pype/ftrack/actions/action_create_cust_attrs.py @@ -110,12 +110,13 @@ class CustomAttributes(BaseAction): #: Action identifier. identifier = 'create.update.attributes' #: Action label. - label = 'Create/Update Avalon Attributes' + label = "Pype Admin" + variant = '- Create/Update Avalon Attributes' #: Action description. description = 'Creates Avalon/Mongo ID for double check' #: roles that are allowed to register this action role_list = ['Pypeclub', 'Administrator'] - icon = '{}/ftrack/action_icons/CustomAttributes.svg'.format( + icon = '{}/ftrack/action_icons/PypeAdmin.svg'.format( os.environ.get('PYPE_STATICS_SERVER', '') ) diff --git a/pype/ftrack/actions/action_cust_attr_doctor.py b/pype/ftrack/actions/action_cust_attr_doctor.py index a6ccb237a6..1b8f250e5b 100644 --- a/pype/ftrack/actions/action_cust_attr_doctor.py +++ b/pype/ftrack/actions/action_cust_attr_doctor.py @@ -12,14 +12,15 @@ class CustomAttributeDoctor(BaseAction): #: Action identifier. identifier = 'custom.attributes.doctor' #: Action label. - label = 'Custom Attributes Doctor' + label = "Pype Doctor" + variant = '- Custom Attributes Doctor' #: Action description. description = ( 'Fix hierarchical custom attributes mainly handles, fstart' ' and fend' ) - icon = '{}/ftrack/action_icons/TestAction.svg'.format( + icon = '{}/ftrack/action_icons/PypeDoctor.svg'.format( os.environ.get('PYPE_STATICS_SERVER', '') ) hierarchical_ca = ['handle_start', 'handle_end', 'fstart', 'fend'] diff --git a/pype/ftrack/actions/action_job_killer.py b/pype/ftrack/actions/action_job_killer.py index 8ac81c4ac2..8584b26aa4 100644 --- a/pype/ftrack/actions/action_job_killer.py +++ b/pype/ftrack/actions/action_job_killer.py @@ -14,12 +14,13 @@ class JobKiller(BaseAction): #: Action identifier. identifier = 'job.killer' #: Action label. - label = 'Job Killer' + label = "Pype Admin" + variant = '- Job Killer' #: Action description. description = 'Killing selected running jobs' #: roles that are allowed to register this action role_list = ['Pypeclub', 'Administrator'] - icon = '{}/ftrack/action_icons/JobKiller.svg'.format( + icon = '{}/ftrack/action_icons/PypeAdmin.svg'.format( os.environ.get('PYPE_STATICS_SERVER', '') ) diff --git a/pype/ftrack/actions/action_sync_hier_attrs_local.py b/pype/ftrack/actions/action_sync_hier_attrs_local.py index 31d95f9a6f..01434470f3 100644 --- a/pype/ftrack/actions/action_sync_hier_attrs_local.py +++ b/pype/ftrack/actions/action_sync_hier_attrs_local.py @@ -19,11 +19,12 @@ class SyncHierarchicalAttrs(BaseAction): #: Action identifier. identifier = 'sync.hierarchical.attrs.local' #: Action label. - label = 'Sync HierAttrs - Local' + label = "Pype Admin" + variant = '- Sync Hier Attrs (Local)' #: Action description. description = 'Synchronize hierarchical attributes' #: Icon - icon = '{}/ftrack/action_icons/SyncHierarchicalAttrsLocal.svg'.format( + icon = '{}/ftrack/action_icons/PypeAdmin.svg'.format( os.environ.get('PYPE_STATICS_SERVER', '') ) diff --git a/pype/ftrack/actions/action_sync_to_avalon_local.py b/pype/ftrack/actions/action_sync_to_avalon_local.py index 6e603b33b3..39e4931672 100644 --- a/pype/ftrack/actions/action_sync_to_avalon_local.py +++ b/pype/ftrack/actions/action_sync_to_avalon_local.py @@ -47,11 +47,12 @@ class SyncToAvalon(BaseAction): #: Action identifier. identifier = 'sync.to.avalon.local' #: Action label. - label = 'SyncToAvalon - Local' + label = "Pype Admin" + variant = '- Sync To Avalon (Local)' #: Action description. description = 'Send data from Ftrack to Avalon' #: Action icon. - icon = '{}/ftrack/action_icons/SyncToAvalon-local.svg'.format( + icon = '{}/ftrack/action_icons/PypeAdmin.svg'.format( os.environ.get('PYPE_STATICS_SERVER', '') ) #: roles that are allowed to register this action diff --git a/pype/ftrack/actions/action_thumbToChildern.py b/pype/ftrack/actions/action_thumbToChildern.py index 99ca713662..101b678512 100644 --- a/pype/ftrack/actions/action_thumbToChildern.py +++ b/pype/ftrack/actions/action_thumbToChildern.py @@ -14,9 +14,11 @@ class ThumbToChildren(BaseAction): # Action identifier identifier = 'thumb.to.children' # Action label - label = 'Thumbnail to Children' + label = 'Thumbnail' + # Action variant + variant = " to Children" # Action icon - icon = '{}/ftrack/action_icons/thumbToChildren.svg'.format( + icon = '{}/ftrack/action_icons/Thumbnail.svg'.format( os.environ.get('PYPE_STATICS_SERVER', '') ) diff --git a/pype/ftrack/actions/action_thumbToParent.py b/pype/ftrack/actions/action_thumbToParent.py index 9de9cd8cc4..c382d9303c 100644 --- a/pype/ftrack/actions/action_thumbToParent.py +++ b/pype/ftrack/actions/action_thumbToParent.py @@ -13,9 +13,11 @@ class ThumbToParent(BaseAction): # Action identifier identifier = 'thumb.to.parent' # Action label - label = 'Thumbnail to Parent' + label = 'Thumbnail' + # Action variant + variant = " to Parent" # Action icon - icon = '{}/ftrack/action_icons/thumbToParent.svg'.format( + icon = '{}/ftrack/action_icons/Thumbnail.svg'.format( os.environ.get('PYPE_STATICS_SERVER', '') ) diff --git a/res/ftrack/action_icons/AttributesRemapper.svg b/res/ftrack/action_icons/AttributesRemapper.svg deleted file mode 100644 index 94bf8c4f14..0000000000 --- a/res/ftrack/action_icons/AttributesRemapper.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/res/ftrack/action_icons/CustomAttributes.svg b/res/ftrack/action_icons/CustomAttributes.svg deleted file mode 100644 index ee1af3378e..0000000000 --- a/res/ftrack/action_icons/CustomAttributes.svg +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/res/ftrack/action_icons/JobKiller.svg b/res/ftrack/action_icons/JobKiller.svg deleted file mode 100644 index 595c780a9b..0000000000 --- a/res/ftrack/action_icons/JobKiller.svg +++ /dev/null @@ -1,374 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/res/ftrack/action_icons/PypeAdmin.svg b/res/ftrack/action_icons/PypeAdmin.svg new file mode 100644 index 0000000000..c95a29dacb --- /dev/null +++ b/res/ftrack/action_icons/PypeAdmin.svg @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + + + + + diff --git a/res/ftrack/action_icons/PypeDoctor.svg b/res/ftrack/action_icons/PypeDoctor.svg new file mode 100644 index 0000000000..e921d99ee5 --- /dev/null +++ b/res/ftrack/action_icons/PypeDoctor.svg @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + diff --git a/res/ftrack/action_icons/SyncHierarchicalAttrsLocal.svg b/res/ftrack/action_icons/SyncHierarchicalAttrsLocal.svg deleted file mode 100644 index f58448ac06..0000000000 --- a/res/ftrack/action_icons/SyncHierarchicalAttrsLocal.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/res/ftrack/action_icons/SyncToAvalon-local.svg b/res/ftrack/action_icons/SyncToAvalon-local.svg deleted file mode 100644 index bf4708e8a5..0000000000 --- a/res/ftrack/action_icons/SyncToAvalon-local.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/res/ftrack/action_icons/Thumbnail.svg b/res/ftrack/action_icons/Thumbnail.svg new file mode 100644 index 0000000000..a8780b9a04 --- /dev/null +++ b/res/ftrack/action_icons/Thumbnail.svg @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/res/ftrack/action_icons/thumbToChildren.svg b/res/ftrack/action_icons/thumbToChildren.svg deleted file mode 100644 index 709b9549f3..0000000000 --- a/res/ftrack/action_icons/thumbToChildren.svg +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/res/ftrack/action_icons/thumbToParent.svg b/res/ftrack/action_icons/thumbToParent.svg deleted file mode 100644 index 3efa426332..0000000000 --- a/res/ftrack/action_icons/thumbToParent.svg +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - From 4d221e91e25dce1ef964d846356cd325fbe8f69e Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 12 Aug 2019 17:48:41 +0200 Subject: [PATCH 09/28] action create project folders renamed to create project structure and allowed only on project --- ...ect_folders.py => action_create_project_structure.py} | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) rename pype/ftrack/actions/{action_create_project_folders.py => action_create_project_structure.py} (97%) diff --git a/pype/ftrack/actions/action_create_project_folders.py b/pype/ftrack/actions/action_create_project_structure.py similarity index 97% rename from pype/ftrack/actions/action_create_project_folders.py rename to pype/ftrack/actions/action_create_project_structure.py index ef48df7d67..74d458b5f8 100644 --- a/pype/ftrack/actions/action_create_project_folders.py +++ b/pype/ftrack/actions/action_create_project_structure.py @@ -13,9 +13,9 @@ class CreateProjectFolders(BaseAction): '''Edit meta data action.''' #: Action identifier. - identifier = 'create.project.folders' + identifier = 'create.project.structure' #: Action label. - label = 'Create Project Folders' + label = 'Create Project Structure' #: Action description. description = 'Creates folder structure' #: roles that are allowed to register this action @@ -31,6 +31,11 @@ class CreateProjectFolders(BaseAction): def discover(self, session, entities, event): ''' Validation ''' + if len(entities) != 1: + return False + + if entities[0].entity_type.lower() != "project": + return False return True From f6077e7e95d675b2f5e0e1aa412ce402fcc8e331 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 12 Aug 2019 17:49:08 +0200 Subject: [PATCH 10/28] action create folders won't discover on project now --- pype/ftrack/actions/action_create_folders.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pype/ftrack/actions/action_create_folders.py b/pype/ftrack/actions/action_create_folders.py index dc969ada02..b9e10f7c30 100644 --- a/pype/ftrack/actions/action_create_folders.py +++ b/pype/ftrack/actions/action_create_folders.py @@ -30,11 +30,13 @@ class CreateFolders(BaseAction): def discover(self, session, entities, event): ''' Validation ''' - not_allowed = ['assetversion'] if len(entities) != 1: return False + + not_allowed = ['assetversion', 'project'] if entities[0].entity_type.lower() in not_allowed: return False + return True def interface(self, session, entities, event): From d13f67ea9e60016eedca45745b32421957ca2049 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 12 Aug 2019 17:50:33 +0200 Subject: [PATCH 11/28] both thumbnail action files were renamed to match underscore naming --- ...{action_thumbToChildern.py => action_thumbnail_to_childern.py} | 0 .../{action_thumbToParent.py => action_thumbnail_to_parent.py} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename pype/ftrack/actions/{action_thumbToChildern.py => action_thumbnail_to_childern.py} (100%) rename pype/ftrack/actions/{action_thumbToParent.py => action_thumbnail_to_parent.py} (100%) diff --git a/pype/ftrack/actions/action_thumbToChildern.py b/pype/ftrack/actions/action_thumbnail_to_childern.py similarity index 100% rename from pype/ftrack/actions/action_thumbToChildern.py rename to pype/ftrack/actions/action_thumbnail_to_childern.py diff --git a/pype/ftrack/actions/action_thumbToParent.py b/pype/ftrack/actions/action_thumbnail_to_parent.py similarity index 100% rename from pype/ftrack/actions/action_thumbToParent.py rename to pype/ftrack/actions/action_thumbnail_to_parent.py From df673e464953893f165cead65c67334807ce2761 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Tue, 13 Aug 2019 12:29:04 +0200 Subject: [PATCH 12/28] created prepare project action that easily allows user to set values in project (can be preset with presets) --- pype/ftrack/actions/action_prepare_project.py | 235 ++++++++++++++++++ 1 file changed, 235 insertions(+) create mode 100644 pype/ftrack/actions/action_prepare_project.py diff --git a/pype/ftrack/actions/action_prepare_project.py b/pype/ftrack/actions/action_prepare_project.py new file mode 100644 index 0000000000..7ff89547ef --- /dev/null +++ b/pype/ftrack/actions/action_prepare_project.py @@ -0,0 +1,235 @@ +import os +import json + +from pype.vendor import ftrack_api +from pype.ftrack import BaseAction +from pypeapp import config +from pype.ftrack.lib import get_avalon_attr + + +class PrepareProject(BaseAction): + '''Edit meta data action.''' + + #: Action identifier. + identifier = 'prepare.project' + #: Action label. + label = 'Prepare Project' + #: Action description. + description = 'Set basic attributes on the project' + #: roles that are allowed to register this action + role_list = ["Pypeclub", "Administrator", "Project manager"] + icon = '{}/ftrack/action_icons/PrepareProject.svg'.format( + os.environ.get('PYPE_STATICS_SERVER', '') + ) + + def discover(self, session, entities, event): + ''' Validation ''' + if len(entities) != 1: + return False + + if entities[0].entity_type.lower() != "project": + return False + + return True + + def interface(self, session, entities, event): + if event['data'].get('values', {}): + return + + # Inform user that this may take a while + self.show_message(event, "Preparing data... Please wait", True) + + self.log.debug("Loading custom attributes") + cust_attrs, hier_cust_attrs = get_avalon_attr(session, True) + project_defaults = config.get_presets().get("ftrack", {}).get( + "project_defaults", {} + ) + + self.log.debug("Preparing data which will be shown") + attributes_to_set = {} + for attr in hier_cust_attrs: + key = attr["key"] + attributes_to_set[key] = { + "label": attr["label"], + "object": attr, + "default": project_defaults.get(key) + } + + for attr in cust_attrs: + if attr["entity_type"].lower() != "show": + continue + key = attr["key"] + attributes_to_set[key] = { + "label": attr["label"], + "object": attr, + "default": project_defaults.get(key) + } + + # Sort by label + attributes_to_set = dict(sorted( + attributes_to_set.items(), + key=lambda x: x[1]["label"] + )) + self.log.debug("Preparing interface for keys: \"{}\"".format( + str([key for key in attributes_to_set]) + )) + + title = "Set Attribute values" + items = [] + + # This item will be last - sets value of auto synchronization + auto_sync_name = "avalon_auto_sync" + auto_sync_item = { + "name": auto_sync_name, + "type": "boolean", + "value": project_defaults.get(auto_sync_name, False), + "label": "AutoSync to Avalon" + } + + item_splitter = {'type': 'label', 'value': '---'} + + for key, in_data in attributes_to_set.items(): + attr = in_data["object"] + + # initial item definition + item = { + "name": key, + "label": in_data["label"] + } + + # cust attr type - may have different visualization + type_name = attr["type"]["name"].lower() + easy_types = ["text", "boolean", "date", "number"] + + easy_type = False + if type_name in easy_types: + easy_type = True + + elif type_name == "enumerator": + + attr_config = json.loads(attr["config"]) + attr_config_data = json.loads(attr_config["data"]) + + if attr_config["multiSelect"] is True: + if items: + items.append(item_splitter) + + items.append({ + "type": "label", + "value": in_data["label"] + }) + + default = in_data["default"] + names = [] + for option in sorted( + attr_config_data, key=lambda x: x["menu"] + ): + name = option["value"] + new_name = "__{}__{}".format(key, name) + names.append(new_name) + item = { + "name": new_name, + "type": "boolean", + "label": "- {}".format(option["menu"]) + } + if default: + if ( + isinstance(default, list) or + isinstance(default, tuple) + ): + if name in default: + item["value"] = True + else: + if name == default: + item["value"] = True + + items.append(item) + + items.append({ + "type": "hidden", + "name": "__hidden__{}".format(key), + "value": json.dumps(names) + }) + items.append(item_splitter) + else: + easy_type = True + item["data"] = attr_config_data + + else: + self.log.warning(( + "Custom attribute \"{}\" has type \"{}\"." + " I don't know how to handle" + ).format(key, type_name)) + items.append({ + "type": "label", + "value": ( + "!!! Can't handle Custom attritubte type \"{}\"" + " (key: \"{}\")" + ).format(type_name, key) + }) + + if easy_type: + item["type"] = type_name + + # default value in interface + default = in_data["default"] + if default is not None: + item["value"] = default + + items.append(item) + + items.append(auto_sync_item) + + return { + 'items': items, + 'title': title + } + + def launch(self, session, entities, event): + if not event['data'].get('values', {}): + return + + in_data = event['data']['values'] + # Find hidden items for multiselect enumerators + keys_to_process = [] + for key in in_data: + if key.startswith("__hidden__"): + keys_to_process.append(key) + + self.log.debug("Preparing data for Multiselect Enumerators") + enumerators = {} + for key in keys_to_process: + new_key = key.replace("__hidden__", "") + enumerator_items = in_data.pop(key) + enumerators[new_key] = json.loads(enumerator_items) + + # find values set for multiselect enumerator + for key, enumerator_items in enumerators.items(): + in_data[key] = [] + + name = "__{}__".format(key) + + for item in enumerator_items: + value = in_data.pop(item) + if value is True: + new_key = item.replace(name, "") + in_data[key].append(new_key) + + self.log.debug("Setting Custom Attribute values:") + entity = entities[0] + for key, value in in_data.items(): + entity["custom_attributes"][key] = value + self.log.debug("- Key \"{}\" set to \"{}\"".format(key, value)) + + session.commit() + + return True + + +def register(session, plugins_presets={}): + '''Register plugin. Called when used as an plugin.''' + + if not isinstance(session, ftrack_api.session.Session): + return + + PrepareProject(session, plugins_presets).register() From 13db7c6a7d3162bbac1c6293f6a5b1fad15a9389 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Tue, 13 Aug 2019 12:29:17 +0200 Subject: [PATCH 13/28] added action icon for prepare project action --- res/ftrack/action_icons/PrepareProject.svg | 88 ++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 res/ftrack/action_icons/PrepareProject.svg diff --git a/res/ftrack/action_icons/PrepareProject.svg b/res/ftrack/action_icons/PrepareProject.svg new file mode 100644 index 0000000000..bd6b460ce3 --- /dev/null +++ b/res/ftrack/action_icons/PrepareProject.svg @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + From 0bc5082ba9fd8dc440e7b61a23b2f520f3d9cb1f Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Tue, 13 Aug 2019 13:57:03 +0200 Subject: [PATCH 14/28] Modified get_avalon_attr to be able split hierarchical and not hierarchical attrs --- pype/ftrack/lib/avalon_sync.py | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/pype/ftrack/lib/avalon_sync.py b/pype/ftrack/lib/avalon_sync.py index 962dc1165c..169bc4b051 100644 --- a/pype/ftrack/lib/avalon_sync.py +++ b/pype/ftrack/lib/avalon_sync.py @@ -326,13 +326,26 @@ def import_to_avalon( return output -def get_avalon_attr(session): +def get_avalon_attr(session, split_hierarchical=False): custom_attributes = [] + hier_custom_attributes = [] query = 'CustomAttributeGroup where name is "avalon"' all_avalon_attr = session.query(query).one() for cust_attr in all_avalon_attr['custom_attribute_configurations']: - if 'avalon_' not in cust_attr['key']: - custom_attributes.append(cust_attr) + if 'avalon_' in cust_attr['key']: + continue + + if split_hierarchical: + if cust_attr["is_hierarchical"]: + hier_custom_attributes.append(cust_attr) + continue + + custom_attributes.append(cust_attr) + + if split_hierarchical: + # return tuple + return custom_attributes, hier_custom_attributes + return custom_attributes From 2c3695c689c4154b401da554e88877dad43056aa Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Tue, 13 Aug 2019 14:02:47 +0200 Subject: [PATCH 15/28] (hotfix) added forgotten plugins_presets argument to syncToAvalon-local action --- pype/ftrack/actions/action_sync_to_avalon_local.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pype/ftrack/actions/action_sync_to_avalon_local.py b/pype/ftrack/actions/action_sync_to_avalon_local.py index 6e603b33b3..97d6a121fd 100644 --- a/pype/ftrack/actions/action_sync_to_avalon_local.py +++ b/pype/ftrack/actions/action_sync_to_avalon_local.py @@ -59,7 +59,7 @@ class SyncToAvalon(BaseAction): #: Action priority priority = 200 - def __init__(self, session): + def __init__(self, session, plugins_presets): super(SyncToAvalon, self).__init__(session) # reload utils on initialize (in case of server restart) From 998b424129210d6fd79d317391c0056270aeeb01 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Tue, 13 Aug 2019 14:09:16 +0200 Subject: [PATCH 16/28] added DeleteAssetByName and server synchronization actions to Pype Admin group --- pype/ftrack/actions/action_delete_asset_byname.py | 5 +++-- pype/ftrack/events/action_sync_hier_attrs.py | 5 +++-- pype/ftrack/events/action_sync_to_avalon.py | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/pype/ftrack/actions/action_delete_asset_byname.py b/pype/ftrack/actions/action_delete_asset_byname.py index 1c05d7d88c..4f2a0e515c 100644 --- a/pype/ftrack/actions/action_delete_asset_byname.py +++ b/pype/ftrack/actions/action_delete_asset_byname.py @@ -13,12 +13,13 @@ class AssetsRemover(BaseAction): #: Action identifier. identifier = 'remove.assets' #: Action label. - label = 'Delete Assets by Name' + label = "Pype Admin" + variant = '- Delete Assets by Name' #: Action description. description = 'Removes assets from Ftrack and Avalon db with all childs' #: roles that are allowed to register this action role_list = ['Pypeclub', 'Administrator'] - icon = '{}/ftrack/action_icons/AssetsRemover.svg'.format( + icon = '{}/ftrack/action_icons/PypeAdmin.svg'.format( os.environ.get('PYPE_STATICS_SERVER', '') ) #: Db diff --git a/pype/ftrack/events/action_sync_hier_attrs.py b/pype/ftrack/events/action_sync_hier_attrs.py index cd7446f5e4..22ad7bf5aa 100644 --- a/pype/ftrack/events/action_sync_hier_attrs.py +++ b/pype/ftrack/events/action_sync_hier_attrs.py @@ -20,11 +20,12 @@ class SyncHierarchicalAttrs(BaseAction): #: Action identifier. identifier = 'sync.hierarchical.attrs' #: Action label. - label = 'Sync HierAttrs' + label = "Pype Admin" + variant = '- Sync Hier Attrs (server)' #: Action description. description = 'Synchronize hierarchical attributes' #: Icon - icon = '{}/ftrack/action_icons/SyncHierarchicalAttrs.svg'.format( + icon = '{}/ftrack/action_icons/PypeAdmin.svg'.format( os.environ.get( 'PYPE_STATICS_SERVER', 'http://localhost:{}'.format( diff --git a/pype/ftrack/events/action_sync_to_avalon.py b/pype/ftrack/events/action_sync_to_avalon.py index fc03180bdc..5628554c85 100644 --- a/pype/ftrack/events/action_sync_to_avalon.py +++ b/pype/ftrack/events/action_sync_to_avalon.py @@ -48,11 +48,12 @@ class Sync_To_Avalon(BaseAction): #: Action identifier. identifier = 'sync.to.avalon' #: Action label. - label = 'SyncToAvalon' + label = "Pype Admin" + variant = "- Sync To Avalon (Server)" #: Action description. description = 'Send data from Ftrack to Avalon' #: Action icon. - icon = '{}/ftrack/action_icons/SyncToAvalon.svg'.format( + icon = '{}/ftrack/action_icons/PypeAdmin.svg'.format( os.environ.get( 'PYPE_STATICS_SERVER', 'http://localhost:{}'.format( From ba361df68411cd5ab8b7b93f939cf1f48894a59c Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Tue, 13 Aug 2019 15:11:16 +0200 Subject: [PATCH 17/28] multiselect enumerators are at the end of list --- pype/ftrack/actions/action_prepare_project.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/pype/ftrack/actions/action_prepare_project.py b/pype/ftrack/actions/action_prepare_project.py index 7ff89547ef..60a7435907 100644 --- a/pype/ftrack/actions/action_prepare_project.py +++ b/pype/ftrack/actions/action_prepare_project.py @@ -76,8 +76,10 @@ class PrepareProject(BaseAction): title = "Set Attribute values" items = [] + multiselect_enumerators = [] - # This item will be last - sets value of auto synchronization + # This item will be last (before enumerators) + # - sets value of auto synchronization auto_sync_name = "avalon_auto_sync" auto_sync_item = { "name": auto_sync_name, @@ -111,10 +113,9 @@ class PrepareProject(BaseAction): attr_config_data = json.loads(attr_config["data"]) if attr_config["multiSelect"] is True: - if items: - items.append(item_splitter) + multiselect_enumerators.append(item_splitter) - items.append({ + multiselect_enumerators.append({ "type": "label", "value": in_data["label"] }) @@ -143,14 +144,13 @@ class PrepareProject(BaseAction): if name == default: item["value"] = True - items.append(item) + multiselect_enumerators.append(item) - items.append({ + multiselect_enumerators.append({ "type": "hidden", "name": "__hidden__{}".format(key), "value": json.dumps(names) }) - items.append(item_splitter) else: easy_type = True item["data"] = attr_config_data @@ -178,8 +178,13 @@ class PrepareProject(BaseAction): items.append(item) + # Add autosync attribute items.append(auto_sync_item) + # Add enumerator items at the end + for item in multiselect_enumerators: + items.append(item) + return { 'items': items, 'title': title From 27d7d6f3b46656ffd5698e74ffb4ce309ca0b624 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Tue, 13 Aug 2019 15:57:28 +0200 Subject: [PATCH 18/28] added tray_init to clockify module --- pype/clockify/__init__.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pype/clockify/__init__.py b/pype/clockify/__init__.py index 5f61acd751..063f88db73 100644 --- a/pype/clockify/__init__.py +++ b/pype/clockify/__init__.py @@ -7,3 +7,6 @@ __all__ = [ 'ClockifySettings', 'ClockifyModule' ] + +def tray_init(tray_widget, main_widget): + return ClockifyModule(main_widget, tray_widget) From e32f98dcf54cf1b40bd6308ac6327385c8075576 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Tue, 13 Aug 2019 15:58:04 +0200 Subject: [PATCH 19/28] updated clockify module to new tray initialization --- pype/clockify/clockify.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/pype/clockify/clockify.py b/pype/clockify/clockify.py index 0b84bf3953..aa61ffb31a 100644 --- a/pype/clockify/clockify.py +++ b/pype/clockify/clockify.py @@ -1,3 +1,4 @@ +import os import threading from pypeapp import style from Qt import QtWidgets @@ -20,9 +21,10 @@ class ClockifyModule: self.bool_workspace_set = False self.bool_timer_run = False - def start_up(self): self.clockapi.set_master(self) self.bool_api_key_set = self.clockapi.set_api() + + def tray_start(self): if self.bool_api_key_set is False: self.show_settings() return @@ -41,7 +43,7 @@ class ClockifyModule: os.path.dirname(__file__), 'ftrack_actions' ]) - current = os.environ('FTRACK_ACTIONS_PATH', '') + current = os.environ.get('FTRACK_ACTIONS_PATH', '') if current: current += os.pathsep os.environ['FTRACK_ACTIONS_PATH'] = current + actions_path @@ -87,9 +89,9 @@ class ClockifyModule: self.bool_timer_run = False # Definition of Tray menu - def tray_menu(self, parent): + def tray_menu(self, parent_menu): # Menu for Tray App - self.menu = QtWidgets.QMenu('Clockify', parent) + self.menu = QtWidgets.QMenu('Clockify', parent_menu) self.menu.setProperty('submenu', 'on') self.menu.setStyleSheet(style.load_stylesheet()) @@ -109,7 +111,7 @@ class ClockifyModule: self.set_menu_visibility() - return self.menu + parent_menu.addMenu(self.menu) def show_settings(self): self.widget_settings.input_api_key.setText(self.clockapi.get_api_key()) From 3e14c3e4ecff1436c51ede1630bf4cc99ef6dd9b Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Tue, 13 Aug 2019 15:59:07 +0200 Subject: [PATCH 20/28] clockify api now allows get workspace permissions with userid instead of testing creating and deleting project --- pype/clockify/clockify_api.py | 56 +++++++++++++++++++++-------------- 1 file changed, 34 insertions(+), 22 deletions(-) diff --git a/pype/clockify/clockify_api.py b/pype/clockify/clockify_api.py index f5ebac0cef..fb518a5af9 100644 --- a/pype/clockify/clockify_api.py +++ b/pype/clockify/clockify_api.py @@ -1,4 +1,5 @@ import os +import re import requests import json import datetime @@ -22,6 +23,7 @@ class ClockifyAPI(metaclass=Singleton): app_dir = os.path.normpath(appdirs.user_data_dir('pype-app', 'pype')) file_name = 'clockify.json' fpath = os.path.join(app_dir, file_name) + admin_permission_names = ['WORKSPACE_OWN', 'WORKSPACE_ADMIN'] master_parent = None workspace_id = None @@ -55,31 +57,41 @@ class ClockifyAPI(metaclass=Singleton): return False return True - def validate_workspace_perm(self): - test_project = '__test__' - action_url = 'workspaces/{}/projects/'.format(self.workspace_id) - body = { - "name": test_project, "clientId": "", "isPublic": "false", - "estimate": {"type": "AUTO"}, - "color": "#f44336", "billable": "true" - } - response = requests.post( - self.endpoint + action_url, - headers=self.headers, json=body + def validate_workspace_perm(self, workspace_id=None): + user_id = self.get_user_id() + if user_id is None: + return False + if workspace_id is None: + workspace_id = self.workspace_id + action_url = "/workspaces/{}/users/{}/permissions".format( + workspace_id, user_id ) - if response.status_code == 201: - self.delete_project(self.get_project_id(test_project)) - return True - else: - projects = self.get_projects() - if test_project in projects: - try: - self.delete_project(self.get_project_id(test_project)) - return True - except json.decoder.JSONDecodeError: - return False + response = requests.get( + self.endpoint + action_url, + headers=self.headers + ) + user_permissions = response.json() + for perm in user_permissions: + if perm['name'] in self.admin_permission_names: + return True return False + def get_user_id(self): + action_url = 'v1/user/' + response = requests.get( + self.endpoint + action_url, + headers=self.headers + ) + # this regex is neccessary: UNICODE strings are crashing + # during json serialization + id_regex ='\"{1}id\"{1}\:{1}\"{1}\w+\"{1}' + result = re.findall(id_regex, str(response.content)) + if len(result) != 1: + # replace with log and better message? + print('User ID was not found (this is a BUG!!!)') + return None + return json.loads('{'+result[0]+'}')['id'] + def set_workspace(self, name=None): if name is None: name = os.environ.get('CLOCKIFY_WORKSPACE', None) From a162e3320d59e94298ee0afd8b076da20d3f88bc Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Tue, 13 Aug 2019 15:59:31 +0200 Subject: [PATCH 21/28] change start clockify timer action label --- .../ftrack_actions/action_clockify_start.py | 41 +------------------ 1 file changed, 1 insertion(+), 40 deletions(-) diff --git a/pype/clockify/ftrack_actions/action_clockify_start.py b/pype/clockify/ftrack_actions/action_clockify_start.py index e09d0b76e6..5b54476297 100644 --- a/pype/clockify/ftrack_actions/action_clockify_start.py +++ b/pype/clockify/ftrack_actions/action_clockify_start.py @@ -14,7 +14,7 @@ class StartClockify(BaseAction): #: Action identifier. identifier = 'clockify.start.timer' #: Action label. - label = 'Start timer' + label = 'Clockify - Start timer' #: Action description. description = 'Starts timer on clockify' #: roles that are allowed to register this action @@ -67,42 +67,3 @@ def register(session, **kw): return StartClockify(session).register() - - -def main(arguments=None): - '''Set up logging and register action.''' - if arguments is None: - arguments = [] - - parser = argparse.ArgumentParser() - # Allow setting of logging level from arguments. - loggingLevels = {} - for level in ( - logging.NOTSET, logging.DEBUG, logging.INFO, logging.WARNING, - logging.ERROR, logging.CRITICAL - ): - loggingLevels[logging.getLevelName(level).lower()] = level - - parser.add_argument( - '-v', '--verbosity', - help='Set the logging output verbosity.', - choices=loggingLevels.keys(), - default='info' - ) - namespace = parser.parse_args(arguments) - - # Set up basic logging - logging.basicConfig(level=loggingLevels[namespace.verbosity]) - - session = ftrack_api.Session() - register(session) - - # Wait for events - logging.info( - 'Registered actions and listening for events. Use Ctrl-C to abort.' - ) - session.event_hub.wait() - - -if __name__ == '__main__': - raise SystemExit(main(sys.argv[1:])) From b9c7450b769192fcc004ec1be55fcb75706ca16f Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Tue, 13 Aug 2019 16:00:53 +0200 Subject: [PATCH 22/28] ftrack server changes are required due to adding paths to ftrack_actions/events_path --- pype/ftrack/ftrack_server/ftrack_server.py | 56 +++++++--------------- 1 file changed, 18 insertions(+), 38 deletions(-) diff --git a/pype/ftrack/ftrack_server/ftrack_server.py b/pype/ftrack/ftrack_server/ftrack_server.py index 69637ac3ee..2a58c12d09 100644 --- a/pype/ftrack/ftrack_server/ftrack_server.py +++ b/pype/ftrack/ftrack_server/ftrack_server.py @@ -29,8 +29,8 @@ PYTHONPATH # Path to ftrack_api and paths to all modules used in actions """ -class FtrackServer(): - def __init__(self, type='action'): +class FtrackServer: + def __init__(self, server_type='action'): """ - 'type' is by default set to 'action' - Runs Action server - enter 'event' for Event server @@ -45,21 +45,12 @@ class FtrackServer(): ftrack_log = logging.getLogger("ftrack_api") ftrack_log.setLevel(logging.WARNING) - self.type = type - self.actionsAvailable = True - self.eventsAvailable = True - # Separate all paths - if "FTRACK_ACTIONS_PATH" in os.environ: - all_action_paths = os.environ["FTRACK_ACTIONS_PATH"] - self.actionsPaths = all_action_paths.split(os.pathsep) - else: - self.actionsAvailable = False + env_key = "FTRACK_ACTIONS_PATH" + if server_type.lower() == 'event': + env_key = "FTRACK_EVENTS_PATH" - if "FTRACK_EVENTS_PATH" in os.environ: - all_event_paths = os.environ["FTRACK_EVENTS_PATH"] - self.eventsPaths = all_event_paths.split(os.pathsep) - else: - self.eventsAvailable = False + self.server_type = server_type + self.env_key = env_key def stop_session(self): if self.session.event_hub.connected is True: @@ -94,9 +85,7 @@ class FtrackServer(): # separate files by register function if 'register' not in mod_functions: - msg = ( - '"{0}" - Missing register method' - ).format(file, self.type) + msg = ('"{}" - Missing register method').format(file) log.warning(msg) continue @@ -115,7 +104,7 @@ class FtrackServer(): # Load presets for setting plugins key = "user" - if self.type.lower() == "event": + if self.server_type.lower() == "event": key = "server" plugins_presets = config.get_presets().get( "ftrack", {} @@ -142,24 +131,15 @@ class FtrackServer(): def run_server(self): self.session = ftrack_api.Session(auto_connect_event_hub=True,) - if self.type.lower() == 'event': - if self.eventsAvailable is False: - msg = ( - 'FTRACK_EVENTS_PATH is not set' - ', event server won\'t launch' - ) - log.error(msg) - return - self.set_files(self.eventsPaths) - else: - if self.actionsAvailable is False: - msg = ( - 'FTRACK_ACTIONS_PATH is not set' - ', action server won\'t launch' - ) - log.error(msg) - return - self.set_files(self.actionsPaths) + paths_str = os.environ.get(self.env_key) + if paths_str is None: + log.error(( + "Env var \"{}\" is not set, \"{}\" server won\'t launch" + ).format(self.env_key, self.server_type)) + return + + paths = paths_str.split(os.pathsep) + self.set_files(paths) log.info(60*"*") log.info('Registration of actions/events has finished!') From 1f1c4a1dd1d2819809f264d6a5259b9e880a3203 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Tue, 13 Aug 2019 17:43:13 +0200 Subject: [PATCH 23/28] added get project by id in clockify api --- pype/clockify/clockify_api.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pype/clockify/clockify_api.py b/pype/clockify/clockify_api.py index fb518a5af9..4511bb77d5 100644 --- a/pype/clockify/clockify_api.py +++ b/pype/clockify/clockify_api.py @@ -159,6 +159,19 @@ class ClockifyAPI(metaclass=Singleton): project["name"]: project["id"] for project in response.json() } + def get_project_by_id(self, project_id, workspace_id=None): + if workspace_id is None: + workspace_id = self.workspace_id + action_url = 'workspaces/{}/projects/{}/'.format( + workspace_id, project_id + ) + response = requests.get( + self.endpoint + action_url, + headers=self.headers + ) + + return response.json() + def get_tags(self, workspace_id=None): if workspace_id is None: workspace_id = self.workspace_id From 160933e866df2872b4cd8f0ed11ebd4cfa46aa3c Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Tue, 13 Aug 2019 17:43:34 +0200 Subject: [PATCH 24/28] added validation that current timer was found --- pype/clockify/clockify_api.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pype/clockify/clockify_api.py b/pype/clockify/clockify_api.py index 4511bb77d5..ed932eedce 100644 --- a/pype/clockify/clockify_api.py +++ b/pype/clockify/clockify_api.py @@ -304,6 +304,9 @@ class ClockifyAPI(metaclass=Singleton): if workspace_id is None: workspace_id = self.workspace_id current = self.get_in_progress(workspace_id) + if current is None: + return + current_id = current["id"] action_url = 'workspaces/{}/timeEntries/{}'.format( workspace_id, current_id From b10d9bc0f58d9cba05c549fa1e4546f06d0810b5 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Tue, 13 Aug 2019 17:44:22 +0200 Subject: [PATCH 25/28] added TimersManager to clockify and basic methods --- pype/clockify/clockify.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pype/clockify/clockify.py b/pype/clockify/clockify.py index aa61ffb31a..8f172fb316 100644 --- a/pype/clockify/clockify.py +++ b/pype/clockify/clockify.py @@ -59,6 +59,18 @@ class ClockifyModule: current += os.pathsep os.environ['AVALON_ACTIONS'] = current + actions_path + if 'TimersManager' in modules: + self.timer_manager = modules['TimersManager'] + self.timer_manager.add_module(self) + + def timer_started(self, data): + if hasattr(self, 'timer_manager'): + self.timer_manager.start_timers(data) + + def timer_stopped(self): + if hasattr(self, 'timer_manager'): + self.timer_manager.stop_timers() + def start_timer_check(self): self.bool_thread_check_running = True if self.thread_timer_check is None: From 64646da03548b3b181f031271d11e9abb57ed4d4 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Tue, 13 Aug 2019 17:49:00 +0200 Subject: [PATCH 26/28] check_running also checks if timer stops or started --- pype/clockify/clockify.py | 42 +++++++++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/pype/clockify/clockify.py b/pype/clockify/clockify.py index 8f172fb316..2031896195 100644 --- a/pype/clockify/clockify.py +++ b/pype/clockify/clockify.py @@ -63,6 +63,12 @@ class ClockifyModule: self.timer_manager = modules['TimersManager'] self.timer_manager.add_module(self) + def start_timer_manager(self, data): + self.start_timer(data) + + def stop_timer_manager(self): + self.stop_timer() + def timer_started(self, data): if hasattr(self, 'timer_manager'): self.timer_manager.start_timers(data) @@ -89,11 +95,39 @@ class ClockifyModule: def check_running(self): import time while self.bool_thread_check_running is True: + bool_timer_run = False if self.clockapi.get_in_progress() is not None: - self.bool_timer_run = True - else: - self.bool_timer_run = False - self.set_menu_visibility() + bool_timer_run = True + + if self.bool_timer_run != bool_timer_run: + if self.bool_timer_run is True: + self.timer_stopped() + else: + actual_timer = self.clockapi.get_in_progress() + if not actual_timer: + continue + + actual_project_id = actual_timer["projectId"] + project = self.clockapi.get_project_by_id( + actual_project_id + ) + project_name = project["name"] + + actual_timer_hierarchy = actual_timer["description"] + hierarchy_items = actual_timer_hierarchy.split("/") + task_name = hierarchy_items[-1] + hierarchy = hierarchy_items[:-1] + + data = { + "task_name": task_name, + "hierarchy": hierarchy, + "project_name": project_name + } + + self.timer_started(data) + + self.bool_timer_run = bool_timer_run + self.set_menu_visibility() time.sleep(5) def stop_timer(self): From ed4e09d89564c92d5b687d4c6a28e7ae52d14047 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Tue, 13 Aug 2019 17:49:22 +0200 Subject: [PATCH 27/28] added start timer method that is able to start timer from timer manager --- pype/clockify/clockify.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/pype/clockify/clockify.py b/pype/clockify/clockify.py index 2031896195..30a9a4fb94 100644 --- a/pype/clockify/clockify.py +++ b/pype/clockify/clockify.py @@ -134,6 +134,36 @@ class ClockifyModule: self.clockapi.finish_time_entry() self.bool_timer_run = False + def start_timer(self, input_data): + actual_timer = self.clockapi.get_in_progress() + actual_timer_hierarchy = None + actual_project_id = None + if actual_timer is not None: + actual_timer_hierarchy = actual_timer.get("description") + actual_project_id = actual_timer.get("projectId") + + desc_items = [val for val in input_data.get("hierarchy", [])] + desc_items.append(input_data["task_name"]) + description = "/".join(desc_items) + + project_id = self.clockapi.get_project_id(input_data["project_name"]) + + if ( + actual_timer is not None and + description == actual_timer_hierarchy and + project_id == actual_project_id + ): + return + + tag_ids = [] + task_tag_id = self.clockapi.get_tag_id(input_data["task_name"]) + if task_tag_id is not None: + tag_ids.append(task_tag_id) + + self.clockapi.start_time_entry( + description, project_id, tag_ids=tag_ids + ) + # Definition of Tray menu def tray_menu(self, parent_menu): # Menu for Tray App From 5545d76f6a4cb87556e756269960b2219f4c8879 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Tue, 13 Aug 2019 17:56:47 +0200 Subject: [PATCH 28/28] added timer_stopped to stop_timer method so timers manager get know about --- pype/clockify/clockify.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pype/clockify/clockify.py b/pype/clockify/clockify.py index 30a9a4fb94..1476c3d488 100644 --- a/pype/clockify/clockify.py +++ b/pype/clockify/clockify.py @@ -132,6 +132,8 @@ class ClockifyModule: def stop_timer(self): self.clockapi.finish_time_entry() + if self.bool_timer_run: + self.timer_stopped() self.bool_timer_run = False def start_timer(self, input_data):