From 7ef377dcc1bd2748fedb5a15462d891b7ae98591 Mon Sep 17 00:00:00 2001 From: wackyideas <17151-wackyideas@users.noreply.gitgud.io> Date: Wed, 29 Sep 2021 19:22:28 +0200 Subject: [PATCH] Upgraded Start Menu, tweaked other plasmoids --- .../windowsicon/22x22/apps/color-picker.png | Bin 0 -> 6621 bytes .../windowsicon/32x32/apps/color-picker.png | Bin 0 -> 9388 bytes .../contents/applet/CompactApplet.qml | 83 ----- .../System Tray/contents/config/config.qml | 35 --- .../System Tray/contents/config/main.xml | 39 --- .../System Tray/contents/ui/ConfigEntries.qml | 296 ------------------ .../System Tray/contents/ui/ConfigGeneral.qml | 49 --- .../contents/ui/CurrentItemHighLight.qml | 182 ----------- .../contents/ui/ExpandedRepresentation.qml | 231 -------------- .../System Tray/contents/ui/ExpanderArrow.qml | 112 ------- .../contents/ui/HiddenItemsView.qml | 71 ----- .../contents/ui/PlasmoidPopupsContainer.qml | 157 ---------- .../contents/ui/SystemTrayState.qml | 107 ------- .../contents/ui/items/AbstractItem.qml | 216 ------------- .../contents/ui/items/ItemLoader.qml | 36 --- .../contents/ui/items/PlasmoidItem.qml | 141 --------- .../contents/ui/items/PulseAnimation.qml | 53 ---- .../contents/ui/items/StatusNotifierItem.qml | 118 ------- .../System Tray/contents/ui/main.qml | 238 -------------- Plasma Widgets/System Tray/metadata.desktop | 108 ------- Plasma Widgets/System Tray/metadata.json | 117 ------- .../smaragd-0.1.1/build/bin/kwin_smaragd.so | Bin 0 -> 289768 bytes 22 files changed, 2389 deletions(-) create mode 100644 Icons and cursors/windowsicon/22x22/apps/color-picker.png create mode 100644 Icons and cursors/windowsicon/32x32/apps/color-picker.png delete mode 100644 Plasma Widgets/System Tray/contents/applet/CompactApplet.qml delete mode 100644 Plasma Widgets/System Tray/contents/config/config.qml delete mode 100644 Plasma Widgets/System Tray/contents/config/main.xml delete mode 100644 Plasma Widgets/System Tray/contents/ui/ConfigEntries.qml delete mode 100644 Plasma Widgets/System Tray/contents/ui/ConfigGeneral.qml delete mode 100644 Plasma Widgets/System Tray/contents/ui/CurrentItemHighLight.qml delete mode 100644 Plasma Widgets/System Tray/contents/ui/ExpandedRepresentation.qml delete mode 100644 Plasma Widgets/System Tray/contents/ui/ExpanderArrow.qml delete mode 100644 Plasma Widgets/System Tray/contents/ui/HiddenItemsView.qml delete mode 100644 Plasma Widgets/System Tray/contents/ui/PlasmoidPopupsContainer.qml delete mode 100644 Plasma Widgets/System Tray/contents/ui/SystemTrayState.qml delete mode 100644 Plasma Widgets/System Tray/contents/ui/items/AbstractItem.qml delete mode 100644 Plasma Widgets/System Tray/contents/ui/items/ItemLoader.qml delete mode 100644 Plasma Widgets/System Tray/contents/ui/items/PlasmoidItem.qml delete mode 100644 Plasma Widgets/System Tray/contents/ui/items/PulseAnimation.qml delete mode 100644 Plasma Widgets/System Tray/contents/ui/items/StatusNotifierItem.qml delete mode 100644 Plasma Widgets/System Tray/contents/ui/main.qml delete mode 100644 Plasma Widgets/System Tray/metadata.desktop delete mode 100644 Plasma Widgets/System Tray/metadata.json create mode 100755 Window Manager/smaragd-0.1.1/build/bin/kwin_smaragd.so diff --git a/Icons and cursors/windowsicon/22x22/apps/color-picker.png b/Icons and cursors/windowsicon/22x22/apps/color-picker.png new file mode 100644 index 0000000000000000000000000000000000000000..2110e5cd91176983707a7cae8407a50d712b5439 GIT binary patch literal 6621 zcmeHKc{r5o`yX2dDN9*OHAV_GW-*qT3>y0~_H3!nEbo}XEM|t0ENMfCltdv)iI!6- zSt1gJEJ-4}bk4CvNTuZaQk_%R@B7cWuHW~+=DOaQckbtNfA0JKJoodw&l~6LXe}$f zMj8Tv$lBUixPrfOix+em_`P9zfee92GQ!-w1g>NujLYNDnSlUIu$K$KfKVnK0txN9 z>g9cG*kJkR4sD*e%QNCS>n+J^UwzO{Ke;b`{crnUsZMyGy6t?0a=eEq|~NPWPjdV*e!JLRhqxJuvY8r?Y^9$ zLcQsI3pcW#Ha7{A;!VdJhk8ERSN0*xDvUmczt0++-5pk{r01J4?)+ZMNk(j&Z&Pzo zLSg@z7Tx9@L2+XHBwNxWKO75i&VzUvSY|w9w1vGnxXdAeeE7gVs95M(lK};Pm9ce` zaew5lllIIqLrp@;6M84Rh|Lx6I@!s;4cV%wLgVG>;=;%;Nu$Lw;}Kd;uZG{P9+QsA zM-9P*k!b1tEfvOgNe3t1&GW%IIKAFbX2px}4$Uz5(DMO#Q!~9~o4WP4<~!_!=vMbi z)yj#9WXCB2Q<{f};-=D*OfMTbY>t?yowkFQDqO?IE}1)9dzRSzBKbgw`7MaWV53Bf zJNv#4@x}dY1qn6(I5!9FVfT~^89uMo`1QE7@S5wZb#GiqvDbF>XI3j{+Ma?BUa%|7 z!PKDJeeF|y0s>wXk%y0T%8L1n=J1mU@4D^NcJEtzt~pjC(YRjDaD<`fkkt~G?w5`k z4UAXHFB-Jla{VT)z1<-H&fdDrkY1qSTG_q)<8EG2C12F^OY;v)Ue^1)JfG~ZEtJCZ zQdZE-wpxe|4#ObCn1kucN6~l1da4>b_UGG(cw7`~x^PfME+L-SHA8tH-L2g1o3J2N z%stMREL{-83D13!T%(X$?19(n)F~*qv)#e3|8%pcsYp=Pb^~mzpmtPy3 z$Q-C{^M4?PG@3OQXl?Y(xwzfL@7Wv3$-=JZWr3%>X9f~h%#Yc~XWV;u4D)%U9M;mD z-wJWg!t3}M@V6Kh-yRP-%4oob6b5GElvmQHcgO@Gc5NsDHsG^M6iXcum$!vm_1;mx z*?mjef{?K%&*TB*LYRWL_48df3eFslrrY;A^d*ERcfT_qEVxK$@<=`x|DX^N&@nvf zXujdbtu=aT-R#RUS4ev8=vwnb8J8Fe(cIl=&RgOJNDsH z9m{n$)YoKQ$s9Tmi`|z@I=?HcUT1)s=eIU(&5p`vV~0LJv7*(GG-%wN`Dgtvs6@Xg zA4wV>F^V;nv=nBFH#E$}IF!(ixHWD+KY1lwd2?s0XXXtN)1=3(V>Z;7(D|b_N2%ol zdauJ?x>RdkOAKjg)@-}$lbfkvY+KxVr-Fc2E!w3sGmBS>6Xif)hu*CjT;IRDd;W6fEn{`eia$dj z+GCdnp3G%4O7Now-z?)lX?o`=!TUA?Y=SIY}fO}h`y@tDIWLsj&9zP2u(rpOwCsh)y*E>cG zvo6g%&GQ+|@ppN3=I}NL4aKd=Vy&Fa+}$a1*I(E0#5U*1q1hHMNZ0RtSZ9V$)SsOG z;OY0iKhJy3`gVpCwX>;@Av+}1;Tay$sIIN&~qf+f^J~{_P zDf4nudjmV-teZX7^yJG*!7;nHpXeLAi4cZ7KRMt$1*;IEWkoMgBQ27paaYDV?DU$Z zN!htahy7(=x0{O$NgoQY3!lEP28EvQm0I(dqku{>d)+M;aBMYO7FEZdU){gnCB=&v zdnxus#hIyGgM%At_X@02HF`J6EDKxdQh8~Ns|iIzdiPktU{)yAPS_I_%CLCBX~yQa zjX6D9=K*aflhvD(b$fXbUA>QXU?$q4=$%%;lvkR>7ysx5EARVu_2;37Cpav_2jww5smsDr#7y7$(A#?A2_vdynI+c@_Q zUNAjV>edtKl^|L^xUwfoweW0x}=KN6d$snbe+SAD2g`BQ7Hr01p-I+!ao z4ohq$9)L>dyE`8yMeI0tf}(CdYP(?}c{J@&UUH$R)v>*SW(UXSs`~nc#U4StYWt%b zqu(gkeN+)4mYLmpW7Jo7tj$>DK=b|7-dPTI|6fi|M_Gsv@fntwatDjlDW)sjU$xoX z0PvK4y6UK9|9nE0_R8hmqJ+ZToU6fSO(5PQIuT-OYNF>g>vvC=2=Cr1j(T4-_erF# zlJ}UjP39JOHd@03&p=)z2RxO-(k0V46hJqW#Rbnu5Qwp9D3?qP00b}!;KyVW;1gw) za2S(DfP3nbP$aH7z+l>h@c_3lM|Wyi02N1ro0>=)hvGp379b$QLRo=qK0cHHU*g4s z_lssE9JT}z1Q6g}Bxjg8hX=s0x>#Kl!ZMT@f`OYz!;E<}I^Na7>Kg_4j{s)~1YA54 zDHIBIg?hRio*xp8!{Lx93=)GufCvPCFIzwkMX>oAixgiuEC4>0$K(o_95!r`lT6_R z3kYyHI1c-sAB#&O{Y}s2e^UX}0~t!@BGI}iB#VXo(St9r3;{{LCG=lC`0n6Q66p%? zIl(+CU>O3i1sXq6(5Qd=bAx$-OXbk0NFWekflxje75!64Yg>}@-yVw+_%T`BB`;9y zpO6A3{U5P@%58CEshl4Z0p0)R{R#cO_9ZZgB9ZVG9BS}ldbSn>_+orKjYDP9@JqLb z7z!Fo!Qc=^GysRdVsSJC4y|v1K%or*0}Pc+qfl`_P}#Ei0y3KlEK-5wx=fGXOAdkSw5s4g|OZlN}uT57eE>0^9`TMK!^=IJBM-$^ff}(bGr$;OznM_+Te4 za-vbX80?b!;@InM*@3*izf#$<(hw_~a0PwiF2T`#MBrklB6!xW2zN)OS1c zzf2ZjK&DUuED8aNi3Js=k`WXdsIUQA52pv<06NW({4+bBLl+3iJYc&YSSeTy*g#9w zz_ga6)czSQWB`jgp)hC!$_RlraL1tV7&IP*-Gaj4K~0h03Pvuj>hBdBBma*k#!G-7 zwgJ%Zs}0;+|?{Hwcu$@Q-k z_*dXx-Sz(_m-Ig`JOCR!1qs2|8IjWA%iycfGK#&m1wA0rc*LEK zQ%_yD3@g1P`e1{8w^C4(+f0R$c_>HGQX?a|KQ^&f9I2`@%D=2G4saQ87fJzXr@jBf z5yXs1f7U0H=6zWUX=~peSBd)cp46ArA9d~Xke?kKH;J+M>{96+)EM(A`{nqXw63V_ zh7+orv zio42)w?owG3@)=u2z77yQHm!MVTB4)<+=5qA{AJ<+sCQ{{tz9PQxv0KH8S0$UpgDw z(CRr~5tWF!GwbDy{v0GXN7ouOy!%_-)0EA(dJWw9GQP$#ep9JAT1Wl1RnTT@WNvdu z#%fbLcJp>Xj8Nt1)a1el|MFe$A|t0(2JC$DNd48gSpK~-Zjf4}zvymYB`Zn$!NZT* zh}1&e%x#sIO#Td0P3%t*Emv&delQG>y&AdhM7rkhjZ$| z(kW;8#S>B2 zt0duaWOdaG)!Xf-+wMfdUZt%|&{2F;Xq|Cw?UiLG_2Ig-u6FsNdIrsDf8G>S%UVuv z@T0nmR_pGWX{U{2Rq}UZvWZYxLR$&HvY>LJEOxWjCH%RcefAGX37lNy_RO`jqf zg7mE(t=h0IMmTr&uOn~oi4Vmr<99yP=U$-BClm`eSNybp-%bVV>K>fvCH?} zYYR;Gk*n1-g*sm^uKcsKw`=Tk+XT@C3DtJO)ViR81&u11={RoAewTW+w(_?8_6i+V z;4+`Twg-2j8mr76%^!A)S3X_CtUW|Ld?-O3nH6)j?-D3Xf<^3>8w-U zlXj;IvrmL)%CwEv4wZ8Y?&dQTK&)hTD%v>|~y`G7LnO$aM7GMSd z0BnW^x^U{h=<&tGK>a29_-q3JtcgBWwj?-$Eb30cW3aAhQIfYiS`JM9pOJzI9egas!?y8sQ?z%^fFj*29C)?&A^ZXdvGeFFL=@Ng?Ma6K8` zd(H({n7+B5?7QmWK9D`qSG%@3dk_#feIWkx=aSFfcTvK550j^wSG^~XUdTDny<`tj zI7H-DPl$BqXfE!n2OKE9^L;QYy=gt_oBLB(s%?aEQ`qrk^-jvfa{Sed1JBAnvkxoE zdsiPlEe&MY|4A;>?MsP1-+o_0{bfgr1B<~=>2qvm0&7V|e%FQ9b|w9*jkE%I9xmLm z4qLO^S52P0c9fQ4bz_8%FMu7huljSdZt-b|h+9Np2DJ3)-N3q6-xM103tPT%Rqnk3 zU)^T44Z3_Sb4oudxH%=8Ij$KL)-;&NGj)9Gjuy$#noA5f~d`ts1MrU3N(Bv~H;oQmZC z@pX-I=#@(p+7vTCh~im^Vz)}0y1PYQ6+1`JP#F;X+_!QNzW_XKl&|za|P_+vPjd+pTW*|mqo>%~%EdgCQJw4jl=a{SC|JsmQ7b5UD25KP- zsa_;*nWXyShxY1NofDZ%f3t=U4tB~T=`Q~RoA;RDldz@_LgnqpGrMM5qPaAe7IvfX@J3}5aD#w6kOcc!Tqld>ZIVhT( z)bz6QSg$(h_CuGK_N_)50#4)_C0y}I7yBZ^+&%PIx`+w;cpp+HB?5#)Z#SE{58 z5Is1+;~2S7O*lKYVbWO=HSbb7e}Z-)wE%r$OXs0m-ID^1(MXG_jzSL!!G3Il2_VPQK9K0D{%lrb$e4BfrNL}Mv?3#=^BmB_+nRgHp z@OmZ)mzMT@mAHH>apm6b6Yge%uqtlTd`TLq2+7CU{@uBAu*Ahri)mi>eVx3(S46a; zPY*23eDPO-jyU3Q`%PR06pMh%vB(@rSg39~7`1=@CPz=UbJ5V}JMWoi()C$I1*toO zIVWbUHqYH2GMt3G8$7xEtVq8@0vJ>E<~}D|Yoa!d-?w#a*$LUcYzVK*jh(*QOFlpN ze@NKPi07Q|jl7sqev;9H7Li5aC@fT<0iHWbFh(E7)y7qf@4S-_-yOLN{aQXP zYIc@BwsT%M0sKuiQEw=dCK?bv)GZoJBi%fa=A*e`Em)@{^rJyYY0!<(wlExqF#8}d zEw_H45+!yu5++U{GNA3>hC0)e-0oNM(U<$S1)&yI*`>4Hkap7poO?mHjI~Z}mOWX# z`PQ;{dZ4zq;N&XL$oC~Q8>5ZoXkFZ(k~mYzKuNH!aCwWr(if)%V9p*$_*108l~G)* z{z^03uHGb@(1lq1I8na%{`jRZN*$jTXOTNkG2Pd!Xo22W zN>Mc(P=;!Zb7dzgug#h<=z($8_G-(fq~wtC3QKNZ(HTUr^Zdm#rD-;tx0B&^!U^2L z*Mr5*Mpyv&r5I)2T0-M+66(!Bi-Sk6h@Mjy8%AcYJ_dP5!U9h6Uc!nKqPq1*U2{}C z`>cx3K03p1rrWx7DpN3pb?0|78OO-*$z0wi!usyQh5+6+!us?Xb%ngpJvb{}^o&Q; z&CUwq1NJfJ`-O>jkijPHFWB9dToL!PhCPhO=17Pzv*zMM_+uC8OwBn_mi46Mm`ojs z7ix^~&VbsO_yN;fC&ZH)w4ZzhkKcwXvo7437+%8reEhs%IDSv0Se`A7SJ6l$XenMM zFA?+YRL$el-MEby4gbXxnjgc0t_jho6xS%P%T;i?<_1h(1kXl(53sVsc>E0C5dEQ_ z)BlXU#9jVo>$O>PVKvWy!E?(%+B5lyii{at3C(KYi!0a+M5w&Z9FP}eDcNPL z=`A{vCR#5nBo2oeFP|1~;M>2h%pTWY+HK$c;x$@MU@(%A#9yg0lNmzWwr}fLRY4fR z5=U=jnc`~c1QG15A+Hh4WJTtE)7#kT3qAX>qNj&U;=O1GUzP)=HiN8{WjGjkG^E?W zLTj+E+YptfT)^7}Umb0J8!@wJF_TP4nq_4c5PnQ6p3USTnq*WL1Y)($Vc`*|^r64A zK(6^Nx08JK;cvO_f)eE@qP-XWBR=jTdZen`Zg}&vmFA#wWyedn{5=bNg0F7U)JPBx zqYt3Ia_+9j!KHirJSuqGF|R1w~0CVObBDhi0ujJaa?`hULaKx|h3i z?mVi!kF(r-^1e>{@iW(ixiS}V=NmZ&Mn2E_ZC&URZ2M;RoUx?)U-SHwztH=go}`QH zKM(872oq*5{5|S98=e&FIoRk zv8eW%^duhnn?!4DQ2juI(5vUqjOW8WX&*Erb5-KTAa^IkTXHl)M}pxGNcy2uh9iF6 za}D|*I_ZjoGG3SuGm}Lo>Jl0#Tvg>G3!EHl?2XgECwjXN-B(|AL)Vh@$c8J!DRD3{ z)u*`H%<0N&weqkJS?8Ni;Lb=$_~4?HIr3(5+%*&MmG z&u)hG)Alwk?zc#R=Wb*>PQ~^=o0HyL3TEgL8@&wq)Lw1`gpB#y+-#0rTYNHN(P@hQ z&U>A2WiU3AhX357bRnP54zf*0>rYtM0#$Lea-|#}gTt}_=~0CtzV`a0$=T$0L`9Z2 zH;l$r`*~!tw9Jg+U)O1}s(PErmz0xuzYczTeAm_Q(~X41F=%t+S+HuS>CNxnG%=-e z_W&Bf%UrIaHJ_P&wxkC~ZHCG3n6V*=HN@OiuSIf$!a8B6Isz?Mr&e>XvfH*g2g`^eSJDiFK~nNYkv6rocJ8 z6z8WUzxYXwiKenbTNV?p7VsnG7w^7r@UKBoDxI4?(#>oNF!y}H`(|$~KUiWDN zPCvsU?l)>VY0O^k(dHw~&f{h8wKu2!d~eKMkg~Ppm&m!JRa+>pqOJ5q`tj1^*bL63 zpQ9E(D6d1^B|@yUOKg+p^gbUtt*pXdTHz)9P74I6+_CU+S=Gls?_DUYkQ>eCtX+P^ zC)q7pDb?A9+ahO6rD?ei(uKH)>MA+_Ip3<65flQUd|e*{Q?D|ZFwpsIr8b->bQHIq zbf%nSwqA3X&l~Dd3jdP3WtKMa({9&3bnZEKTR-z;{mtfZ`6p`I^ff)-lh+il;eyw} zHusk73BDXVc!Jv)quOa!0|gjV=7~2fMldu$GkkbF?Als>ZkO<{5I&j2&hxK zdsgWunE$|TbqrfltPAM`zzY(-?Qo47SDtGN9p-I_y*{~$8B1`@JaOCLDEb}LvfjSG zSSuIIx4nx2KAQ5JJ}O*)jN1Fecy!2=cVz)j+ctgs4qAhwoJC$}bg9-J(RS!``JUU_bWg?6`hAwdDX&3X@djel5iK^&^_y|w@q)PfVUJ7QY8#5n~{~B2mlFE)jTZ(6k#g$~5?Q8d99`jJ-s@eO>b=RFO8-SP#0Iw2w2{NLW* z*m^;(t*8myt^9sK)6qzHV|tOLf;vPBV5!5Rt*MDB3XhXRIN_0KISS65I!popYMK;x z1j+?X5=Ek&v2N;OYxRv{qF5(&F&l^}(9~TAeG_ZoLqJ>lm|3BGTu@LaF-;9-HHs<~ z0EZ?aL@78|H=-&A6V<^J(4vZRigG|%Jqp$fET+LM zszz|asKRyi|Ae4Esf*ntk=#|~<;i5S99cmQPjHq8L7`B2AXpv@mZfUQ6209>2#Ty5 zQT!O<4-8#25kA z@;IFQ-z|tFJufQAp8@@^7DOxR%qe~DN=PNp-=GZLh$Ms?3VjSk1((B8ag-I%C=>#SkOhJjon#e3)UqO!AsAVd zG6tcfqKv>G6%_skVNSqOyAt90_o$AcoTyMrXb=R503&6gU=WlFg`~!X0a8O!R#tLS z0V^mdJ1PBwazd%<;|VwfwVYTS!Wk{^?&kb!;h1pMOE5!qF|Zu)-x8QBf`p+OsEe6k z-8?D(Ua-RA(3T{`F`FPIFchSq0t7<9P%u>GkFD!sA`l#f~9Fk1c<-x2W15MKQnmtsMbRG<(P zSW#91358G@#;C|5KuBe3`4vG*NF+!RqVz|x{z50>F(fjAfWG8R&6JuAwSj(RBP#Wa z%Jcsj3;8Dcm?t0@BnwoL1u0p9fvVIm5F!l(s{(;y@_!~Qf4r;zm9d)q|HFyeFNMDy z15~>|WYpt@dRocxfg*AryPaN0pXE+QF@qAu8npBu>gGu;RXnI^pon= z4Tq;My%Aq(={Rn9pEAnlkwTxVqQlfqMCv{zBcE%kAASl09n{jUOZy()y5zES23$OC zqg!x)GmP)*%qr5!gnsrG=hG72p%#l z-AUZK)^+dHy>9sE{9A<^Ir2?H$R>P z8FGbYO`P=ARcDN=Dz|SlUA`i7`R#Mz&t*ciTvCQ9sbG}9`YZuTsthhl8=Hd3JpVG$ z;o!42A(&o9yUhq*_q#lh%}Wk+&U=~$SAebNJ_%pE;MP<{ukE|-%)k+DeCzG*dWV0^ z06=vzWZhnhkwF_<>43h~L3G;1qC=CPYyu&y{4o}wQxWKjN5 zCsz%gs`2R3-2@(;Td_j|;@r*!U#0i7Z)1@(iPtnOr<0apnqwPk?UI?#bP%C%DYojF z(Q3gLLKK>H)1aL@`ZI`ezjwPK#g=kfKHNO?8R1<&URRAaOM<#2J+91pArn=!Zxsv} z6vALDtfeOl9zbgtulK^1$6wzpNRZCXjb45fV=hT7n5rnBsq0(i3}s=Z-zM{aTsph!PA-{!x)NomZ{Z zsWiUJF|K^6B1 zh%~uh(~-j6EKOtmH5-`GtGikzsZqg$wr4uOQTRJYR01yPjg1sWK`;&gGpf1J zrR5SkoVo1WcR9PB>8e!ue!16mMw3DJ)~V6`Xuccd{^7E7$^vX>_`6aE;)ZeybD<51 z1fPV}A8#mIyCs)iHw%=x*(%k+0wUM#?#>7R^BiP4z zmNVt9EGGsh@j3}cAnE#K!lUS)-HQ5}H9_q#Zh07F-Z<9fE+trO>{I%O{oVInm-ymX z^9k<*2P5^$1O<8?^{lPl*sU2Eksn_lqRR>f2Vw0;=z}vJ0U)P0oXm|2BPrew#@O58 zAwu^yaN4E{r!(lahsA14)y|zUkL9T+v)3U?i;$6edv(P#bNJ@-h2O#jPNj7JB59F0R#$`~~!cxIgcb_|WKt^?& zzBya-*_CTOdo9ut5=EasK$c3a{PlglTl$~9xOU^P^L`&~7^>rF76`xG=tn`NBQo3j z4z+rDhZYHy+sxL3hwhNehl|p#<|7Jz^Rxn7CtW)v95$uqwhCu`?@WAXT-rI9@b_%1 zMu{K26Th2wf#Di5gCR{xlH^F+BtZjGfmUQ`V?rC)MmTR}>s4_kte$y0Bak{V2_E#DZ0ynj!IJBo(BByMyLgPl{3&KKW zcp)j0(3h^bA|;`T7aMKrD><6<+?w4R&xQ7yqG}wt8jwp#-@?NwS=dZjBf*n}9=f=> zblby0-U#a&*N>$){G@z8Tpu5P!k@V)1Ra|>s<}A-`qDr)e;&KzDRtmlcC2#W`J*p_ z - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Library General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.1 -import QtQuick.Layouts 1.1 -import org.kde.plasma.core 2.0 as PlasmaCore -import org.kde.plasma.plasmoid 2.0 - - -PlasmaCore.ToolTipArea { - id: appletRoot - objectName: "org.kde.desktop-CompactApplet" - anchors.fill: parent - - mainText: plasmoid.toolTipMainText - subText: plasmoid.toolTipSubText - location: if (plasmoid.parent && plasmoid.parent.inHiddenLayout && plasmoid.location !== PlasmaCore.Types.LeftEdge) { - return PlasmaCore.Types.RightEdge; - } else { - return plasmoid.location; - } - active: !plasmoid.expanded - textFormat: plasmoid.toolTipTextFormat - mainItem: plasmoid.toolTipItem ? plasmoid.toolTipItem : null - - property Item fullRepresentation - property Item compactRepresentation - - Connections { - target: plasmoid - function onContextualActionsAboutToShow() { - appletRoot.hideToolTip() - } - } - - Layout.minimumWidth: { - switch (plasmoid.formFactor) { - case PlasmaCore.Types.Vertical: - return 0; - case PlasmaCore.Types.Horizontal: - return height; - default: - return PlasmaCore.Units.gridUnit * 3; - } - } - - Layout.minimumHeight: { - switch (plasmoid.formFactor) { - case PlasmaCore.Types.Vertical: - return width; - case PlasmaCore.Types.Horizontal: - return 0; - default: - return PlasmaCore.Units.gridUnit * 3; - } - } - - onCompactRepresentationChanged: { - if (compactRepresentation) { - compactRepresentation.parent = appletRoot; - compactRepresentation.anchors.fill = appletRoot; - compactRepresentation.visible = true; - } - appletRoot.visible = true; - } -} - diff --git a/Plasma Widgets/System Tray/contents/config/config.qml b/Plasma Widgets/System Tray/contents/config/config.qml deleted file mode 100644 index e6eeac3..0000000 --- a/Plasma Widgets/System Tray/contents/config/config.qml +++ /dev/null @@ -1,35 +0,0 @@ -/*************************************************************************** - * Copyright 2013 by Sebastian Kügler * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * - ***************************************************************************/ - -import QtQuick 2.0 - -import org.kde.plasma.configuration 2.0 - -ConfigModel { - ConfigCategory { - name: i18n("General") - icon: "plasma" - source: "ConfigGeneral.qml" - } - ConfigCategory { - name: i18n("Entries") - icon: "preferences-desktop-notification" - source: "ConfigEntries.qml" - } -} diff --git a/Plasma Widgets/System Tray/contents/config/main.xml b/Plasma Widgets/System Tray/contents/config/main.xml deleted file mode 100644 index 4e2fdf5..0000000 --- a/Plasma Widgets/System Tray/contents/config/main.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - false - - - - - false - - - - false - - - - - diff --git a/Plasma Widgets/System Tray/contents/ui/ConfigEntries.qml b/Plasma Widgets/System Tray/contents/ui/ConfigEntries.qml deleted file mode 100644 index 3bc9ecb..0000000 --- a/Plasma Widgets/System Tray/contents/ui/ConfigEntries.qml +++ /dev/null @@ -1,296 +0,0 @@ -/* - * Copyright 2013 Sebastian Kügler - * Copyright 2014 Marco Martin - * Copyright 2019 Konrad Materka - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 2.010-1301, USA. - */ - -import QtQuick 2.5 -import QtQuick.Controls 2.5 as QQC2 -import QtQuick.Layouts 1.3 - -import org.kde.kquickcontrols 2.0 as KQC -import org.kde.kirigami 2.10 as Kirigami - -ColumnLayout { - id: iconsPage - - signal configurationChanged - - property var cfg_shownItems: [] - property var cfg_hiddenItems: [] - property var cfg_extraItems: [] - property alias cfg_showAllItems: showAllCheckBox.checked - - QQC2.CheckBox { - id: showAllCheckBox - text: i18n("Always show all entries") - } - - function categoryName(category) { - switch (category) { - case "ApplicationStatus": - return i18n("Application Status") - case "Communications": - return i18n("Communications") - case "SystemServices": - return i18n("System Services") - case "Hardware": - return i18n("Hardware Control") - case "UnknownCategory": - default: - return i18n("Miscellaneous") - } - } - - QQC2.ScrollView { - id: scrollView - - Layout.fillWidth: true - Layout.fillHeight: true - contentHeight: itemsList.implicitHeight - - Component.onCompleted: scrollView.background.visible = true - - property bool scrollBarVisible: QQC2.ScrollBar.vertical && QQC2.ScrollBar.vertical.visible - property var scrollBarWidth: scrollBarVisible ? QQC2.ScrollBar.vertical.width : 0 - - ListView { - id: itemsList - - property var visibilityColumnWidth: Kirigami.Units.gridUnit - property var keySequenceColumnWidth: Kirigami.Units.gridUnit - - clip: true - - model: plasmoid.nativeInterface.configSystemTrayModel - - header: Kirigami.AbstractListItem { - - hoverEnabled: false - - RowLayout { - Kirigami.Heading { - text: i18nc("Name of the system tray entry", "Entry") - level: 2 - Layout.fillWidth: true - } - Kirigami.Heading { - text: i18n("Visibility") - level: 2 - Layout.preferredWidth: itemsList.visibilityColumnWidth - Component.onCompleted: itemsList.visibilityColumnWidth = Math.max(implicitWidth, itemsList.visibilityColumnWidth) - } - Kirigami.Heading { - text: i18n("Keyboard Shortcut") - level: 2 - Layout.preferredWidth: itemsList.keySequenceColumnWidth - Component.onCompleted: itemsList.keySequenceColumnWidth = Math.max(implicitWidth, itemsList.keySequenceColumnWidth) - } - QQC2.Button { // Configure button column - icon.name: "configure" - enabled: false - opacity: 0 - } - } - } - - section { - property: "category" - delegate: Kirigami.ListSectionHeader { - label: categoryName(section) - } - } - - delegate: Kirigami.AbstractListItem { - highlighted: false - hoverEnabled: false - - property bool isPlasmoid: model.itemType === "Plasmoid" - - contentItem: RowLayout { - RowLayout { - Layout.fillWidth: true - - Kirigami.Icon { - implicitWidth: Kirigami.Units.iconSizes.smallMedium - implicitHeight: Kirigami.Units.iconSizes.smallMedium - source: model.decoration - } - QQC2.Label { - Layout.fillWidth: true - text: model.display - elide: Text.ElideRight - wrapMode: Text.NoWrap - } - } - - QQC2.ComboBox { - id: visibilityComboBox - - property var contentWidth: Math.max(implicitBackgroundWidth + leftInset + rightInset, - implicitContentWidth + leftPadding + rightPadding) - implicitWidth: Math.max(contentWidth, itemsList.visibilityColumnWidth) - Component.onCompleted: itemsList.visibilityColumnWidth = Math.max(implicitWidth, itemsList.visibilityColumnWidth) - - enabled: (!showAllCheckBox.checked || isPlasmoid) && itemId - textRole: "text" - model: comboBoxModel() - - currentIndex: { - var value - - if (cfg_shownItems.indexOf(itemId) !== -1) { - value = "shown" - } else if (cfg_hiddenItems.indexOf(itemId) !== -1) { - value = "hidden" - } else if (isPlasmoid && cfg_extraItems.indexOf(itemId) === -1) { - value = "disabled" - } else { - value = "auto" - } - - for (var i = 0; i < model.length; i++) { - if (model[i].value === value) { - return i - } - } - - return 0 - } - - property var myCurrentValue: model[currentIndex].value - - onActivated: { - var shownIndex = cfg_shownItems.indexOf(itemId) - var hiddenIndex = cfg_hiddenItems.indexOf(itemId) - var extraIndex = cfg_extraItems.indexOf(itemId) - - switch (myCurrentValue) { - case "auto": - if (shownIndex > -1) { - cfg_shownItems.splice(shownIndex, 1) - } - if (hiddenIndex > -1) { - cfg_hiddenItems.splice(hiddenIndex, 1) - } - if (extraIndex === -1) { - cfg_extraItems.push(itemId) - } - break - case "shown": - if (shownIndex === -1) { - cfg_shownItems.push(itemId) - } - if (hiddenIndex > -1) { - cfg_hiddenItems.splice(hiddenIndex, 1) - } - if (extraIndex === -1) { - cfg_extraItems.push(itemId) - } - break - case "hidden": - if (shownIndex > -1) { - cfg_shownItems.splice(shownIndex, 1) - } - if (hiddenIndex === -1) { - cfg_hiddenItems.push(itemId) - } - if (extraIndex === -1) { - cfg_extraItems.push(itemId) - } - break - case "disabled": - if (shownIndex > -1) { - cfg_shownItems.splice(shownIndex, 1) - } - if (hiddenIndex > -1) { - cfg_hiddenItems.splice(hiddenIndex, 1) - } - if (extraIndex > -1) { - cfg_extraItems.splice(extraIndex, 1) - } - break - } - iconsPage.configurationChanged() - } - - function comboBoxModel() { - var autoElement = {"value": "auto", "text": i18n("Shown when relevant")} - var shownElement = {"value": "shown", "text": i18n("Always shown")} - var hiddenElement = {"value": "hidden", "text": i18n("Always hidden")} - var disabledElement = {"value": "disabled", "text": i18n("Disabled")} - - if (showAllCheckBox.checked) { - if (isPlasmoid) { - return [autoElement, disabledElement] - } else { - return [shownElement] - } - } else { - if (isPlasmoid) { - return [autoElement, shownElement, hiddenElement, disabledElement] - } else { - return [autoElement, shownElement, hiddenElement] - } - } - } - } - KQC.KeySequenceItem { - id: keySequenceItem - Layout.minimumWidth: itemsList.keySequenceColumnWidth - Layout.preferredWidth: itemsList.keySequenceColumnWidth - Component.onCompleted: itemsList.keySequenceColumnWidth = Math.max(implicitWidth, itemsList.keySequenceColumnWidth) - - visible: isPlasmoid - enabled: visibilityComboBox.myCurrentValue !== "disabled" - keySequence: model.applet ? model.applet.globalShortcut : "" - onKeySequenceChanged: { - if (model.applet && keySequence !== model.applet.globalShortcut) { - model.applet.globalShortcut = keySequence - - itemsList.keySequenceColumnWidth = Math.max(implicitWidth, itemsList.keySequenceColumnWidth) - } - } - } - // Placeholder for when KeySequenceItem is not visible - Item { - Layout.minimumWidth: itemsList.keySequenceColumnWidth - Layout.maximumWidth: itemsList.keySequenceColumnWidth - visible: !keySequenceItem.visible - } - - QQC2.Button { - readonly property QtObject configureAction: (model.applet && model.applet.action("configure")) || null - - Accessible.name: configureAction ? configureAction.text : "" - icon.name: "configure" - enabled: configureAction && configureAction.visible && configureAction.enabled - // Still reserve layout space, so not setting visible to false - opacity: enabled ? 1 : 0 - onClicked: configureAction.trigger() - - QQC2.ToolTip { - // Strip out ampersands right before non-whitespace characters, i.e. - // those used to determine the alt key shortcut - text: parent.Accessible.name.replace(/&(?=\S)/g, "") - } - } - } - } - } - } -} diff --git a/Plasma Widgets/System Tray/contents/ui/ConfigGeneral.qml b/Plasma Widgets/System Tray/contents/ui/ConfigGeneral.qml deleted file mode 100644 index e2b3de7..0000000 --- a/Plasma Widgets/System Tray/contents/ui/ConfigGeneral.qml +++ /dev/null @@ -1,49 +0,0 @@ - - -/*************************************************************************** - * Copyright (C) 2020 Konrad Materka * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * - ***************************************************************************/ -import QtQuick 2.14 -import QtQuick.Controls 2.14 as QQC2 -import QtQuick.Layouts 1.13 - -import org.kde.plasma.core 2.1 as PlasmaCore - -import org.kde.kirigami 2.13 as Kirigami - -ColumnLayout { - property bool cfg_scaleIconsToFit - - Kirigami.FormLayout { - Layout.fillHeight: true - - QQC2.RadioButton { - Kirigami.FormData.label: i18nc("The arrangement of system tray icons in the Panel", "Panel icon size:") - text: i18n("Small") - checked: cfg_scaleIconsToFit == false - onToggled: cfg_scaleIconsToFit = !checked - } - QQC2.RadioButton { - id: automaticRadioButton - text: plasmoid.formFactor === PlasmaCore.Types.Horizontal ? i18n("Scale with Panel height") - : i18n("Scale with Panel width") - checked: cfg_scaleIconsToFit == true - onToggled: cfg_scaleIconsToFit = checked - } - } -} diff --git a/Plasma Widgets/System Tray/contents/ui/CurrentItemHighLight.qml b/Plasma Widgets/System Tray/contents/ui/CurrentItemHighLight.qml deleted file mode 100644 index 59f731c..0000000 --- a/Plasma Widgets/System Tray/contents/ui/CurrentItemHighLight.qml +++ /dev/null @@ -1,182 +0,0 @@ -/* - * Copyright 2011 Marco Martin - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Library General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.12 -import org.kde.plasma.plasmoid 2.0 -import org.kde.plasma.core 2.0 as PlasmaCore - -PlasmaCore.FrameSvgItem { - id: currentItemHighLight - - property int location - - property bool animationEnabled: true - property var highlightedItem: null - - z: -1 // always draw behind icons - opacity: systemTrayState.expanded ? 0.8 : 0 - - MouseArea - { - id: trayItemHighlight - - anchors.fill: parent - - hoverEnabled: true - property int highlightOpacity: 0 - onEntered: highlightOpacity = 1 - onExited: highlightOpacity = 0 - } - - - imagePath: "widgets/tabbar" - prefix: { - var prefix = "" - switch (location) { - case PlasmaCore.Types.LeftEdge: - prefix = "west-active-tab"; - break; - case PlasmaCore.Types.TopEdge: - prefix = "north-active-tab"; - break; - case PlasmaCore.Types.RightEdge: - prefix = "east-active-tab"; - break; - default: - prefix = "south-active-tab"; - } - if (!hasElementPrefix(prefix)) { - prefix = "active-tab"; - } - return prefix; - } - - // update when System Tray is expanded - applet activated or hidden icons shown - Connections { - target: systemTrayState - - function onActiveAppletChanged() { - Qt.callLater(updateHighlightedItem); - } - - function onExpandedChanged() { - Qt.callLater(updateHighlightedItem); - } - } - - // update when applet changes parent (e.g. moves from active to hidden icons) - Connections { - target: systemTrayState.activeApplet - - function onParentChanged() { - Qt.callLater(updateHighlightedItem); - } - } - - // update when System Tray size changes - Connections { - target: parent - - function onWidthChanged() { - Qt.callLater(updateHighlightedItem); - } - - function onHeightChanged() { - Qt.callLater(updateHighlightedItem); - } - } - - // update when scale of newly added tray item changes (check 'add' animation in GridView in main.qml) - Connections { - target: !!highlightedItem && highlightedItem.parent ? highlightedItem.parent : null - - function onScaleChanged() { - Qt.callLater(updateHighlightedItem); - } - } - - function updateHighlightedItem() { - if (systemTrayState.expanded) { - if (systemTrayState.activeApplet && systemTrayState.activeApplet.parent && systemTrayState.activeApplet.parent.inVisibleLayout) { - changeHighlightedItem(systemTrayState.activeApplet.parent.container); - } else { // 'Show hiden items' popup - changeHighlightedItem(parent); - } - } else { - highlightedItem = null; - } - } - - function changeHighlightedItem(nextItem) { - // do not animate the first appearance - // or when the property value of a highlighted item changes - if (!highlightedItem || (highlightedItem === nextItem)) { - animationEnabled = false; - } - - highlightedItem = nextItem; - - const p = parent.mapFromItem(highlightedItem, 0, 0) - x = p.x; - y = p.y; - width = highlightedItem.width - height = highlightedItem.height - - animationEnabled = true; - } - - Behavior on opacity { - NumberAnimation { - duration: PlasmaCore.Units.longDuration - easing.type: systemTrayState.expanded ? Easing.OutCubic : Easing.InCubic - } - } - Behavior on x { - id: xAnim - enabled: animationEnabled - NumberAnimation { - duration: PlasmaCore.Units.longDuration - easing.type: Easing.InOutCubic - } - } - Behavior on y { - id: yAnim - enabled: animationEnabled - NumberAnimation { - duration: PlasmaCore.Units.longDuration - easing.type: Easing.InOutCubic - } - } - Behavior on width { - id: widthAnim - enabled: animationEnabled - NumberAnimation { - duration: PlasmaCore.Units.longDuration - easing.type: Easing.InOutCubic - } - } - Behavior on height { - id: heightAnim - enabled: animationEnabled - NumberAnimation { - duration: PlasmaCore.Units.longDuration - easing.type: Easing.InOutCubic - } - } -} diff --git a/Plasma Widgets/System Tray/contents/ui/ExpandedRepresentation.qml b/Plasma Widgets/System Tray/contents/ui/ExpandedRepresentation.qml deleted file mode 100644 index 714aae2..0000000 --- a/Plasma Widgets/System Tray/contents/ui/ExpandedRepresentation.qml +++ /dev/null @@ -1,231 +0,0 @@ -/* - * Copyright 2016 Marco Martin - * Copyright 2020 Nate Graham - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Library General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.12 -import QtQuick.Layouts 1.12 - -import org.kde.plasma.core 2.0 as PlasmaCore -// We still need PC2 here for that version of Menu, as PC2 Menu is still very problematic with QActions -// Not being a proper popup window, makes it a showstopper to be used in Plasma -import org.kde.plasma.components 2.0 as PC2 -import org.kde.plasma.components 3.0 as PlasmaComponents -import org.kde.plasma.extras 2.0 as PlasmaExtras - -Item { - id: popup - //set width/height to avoid useless Dialog resize - readonly property int defaultWidth: PlasmaCore.Units.gridUnit * 24 - readonly property int defaultHeight: PlasmaCore.Units.gridUnit * 24 - - width: defaultWidth - Layout.minimumWidth: defaultWidth - Layout.preferredWidth: defaultWidth - Layout.maximumWidth: defaultWidth - - height: defaultHeight - Layout.minimumHeight: defaultHeight - Layout.preferredHeight: defaultHeight - Layout.maximumHeight: defaultHeight - - property alias hiddenLayout: hiddenItemsView.layout - - // Header - PlasmaExtras.PlasmoidHeading { - id: plasmoidHeading - anchors { - top: parent.top - left: parent.left - right: parent.right - } - height: trayHeading.height + bottomPadding + container.headingHeight - Behavior on height { - NumberAnimation { duration: PlasmaCore.Units.shortDuration/2; easing.type: Easing.InOutQuad } - } - } - - // Main content layout - ColumnLayout { - id: expandedRepresentation - anchors.fill: parent - // TODO: remove this so the scrollview fully touches the header; - // add top padding internally - spacing: plasmoidHeading.bottomPadding - - // Header content layout - RowLayout { - id: trayHeading - - PlasmaComponents.ToolButton { - id: backButton - visible: systemTrayState.activeApplet && systemTrayState.activeApplet.expanded && (hiddenLayout.itemCount > 0) - icon.name: LayoutMirroring.enabled ? "go-previous-symbolic-rtl" : "go-previous-symbolic" - onClicked: systemTrayState.setActiveApplet(null) - } - - PlasmaExtras.Heading { - Layout.fillWidth: true - leftPadding: systemTrayState.activeApplet ? 0 : PlasmaCore.Units.smallSpacing * 2 - - level: 1 - text: systemTrayState.activeApplet ? systemTrayState.activeApplet.title : i18n("Status and Notifications") - } - - PlasmaComponents.ToolButton { - id: actionsButton - visible: visibleActions > 0 - checked: visibleActions > 1 ? configMenu.status !== PC2.DialogStatus.Closed : singleAction && singleAction.checked - property QtObject applet: systemTrayState.activeApplet || plasmoid - onAppletChanged: { - configMenu.clearMenuItems(); - updateVisibleActions(); - } - property int visibleActions: 0 - property QtObject singleAction - - function updateVisibleActions() { - let newSingleAction = null; - let newVisibleActions = 0; - for (let i in applet.contextualActions) { - let action = applet.contextualActions[i]; - if (action.visible && action !== actionsButton.applet.action("configure")) { - newVisibleActions++; - newSingleAction = action; - action.changed.connect(() => {updateVisibleActions()}); - } - } - if (newVisibleActions > 1) { - newSingleAction = null; - } - visibleActions = newVisibleActions; - singleAction = newSingleAction; - } - Connections { - target: actionsButton.applet - function onContextualActionsChanged() { - Qt.callLater(actionsButton.updateVisibleActions); - } - } - icon.name: "application-menu" - checkable: visibleActions > 1 || (singleAction && singleAction.checkable) - contentItem.opacity: visibleActions > 1 - // NOTE: it needs an IconItem because QtQuickControls2 buttons cannot load QIcons as their icon - PlasmaCore.IconItem { - parent: actionsButton - anchors.centerIn: parent - active: actionsButton.hovered - implicitWidth: PlasmaCore.Units.iconSizes.smallMedium - implicitHeight: implicitWidth - source: actionsButton.singleAction !== null ? actionsButton.singleAction.icon : "" - visible: actionsButton.singleAction - } - onToggled: { - if (visibleActions > 1) { - if (checked) { - configMenu.openRelative(); - } else { - configMenu.close(); - } - } - } - onClicked: { - if (singleAction) { - singleAction.trigger(); - } - } - PlasmaComponents.ToolTip { - text: actionsButton.singleAction ? actionsButton.singleAction.text : i18n("More actions") - } - PC2.Menu { - id: configMenu - visualParent: actionsButton - placement: PlasmaCore.Types.BottomPosedLeftAlignedPopup - } - - Instantiator { - model: actionsButton.applet.contextualActions - delegate: PC2.MenuItem { - id: menuItem - action: modelData - } - onObjectAdded: { - if (object.action !== actionsButton.applet.action("configure")) { - configMenu.addMenuItem(object); - } - } - } - } - PlasmaComponents.ToolButton { - icon.name: "configure" - visible: actionsButton.applet && actionsButton.applet.action("configure") - PlasmaComponents.ToolTip { - text: parent.visible ? actionsButton.applet.action("configure").text : "" - } - onClicked: actionsButton.applet.action("configure").trigger(); - } - - PlasmaComponents.ToolButton { - id: pinButton - checkable: true - checked: plasmoid.configuration.pin - onToggled: plasmoid.configuration.pin = checked - icon.name: "window-pin" - PlasmaComponents.ToolTip { - text: i18n("Keep Open") - } - } - } - - // Grid view of all available items - HiddenItemsView { - id: hiddenItemsView - Layout.fillWidth: true - Layout.fillHeight: true - Layout.topMargin: PlasmaCore.Units.smallSpacing - visible: !systemTrayState.activeApplet - } - - // Container for currently visible item - PlasmoidPopupsContainer { - id: container - Layout.fillWidth: true - Layout.fillHeight: true - visible: systemTrayState.activeApplet - - // We need to add margin on the top so it matches the dialog's own margin - Layout.topMargin: mergeHeadings ? 0 : dialog.margins.top - } - } - - // Footer - PlasmaExtras.PlasmoidHeading { - id: plasmoidFooter - location: PlasmaExtras.PlasmoidHeading.Location.Footer - anchors { - bottom: parent.bottom - left: parent.left - right: parent.right - } - visible: container.appletHasFooter - height: container.footerHeight - // So that it doesn't appear over the content view, which results in - // the footer controls being inaccessible - z: -9999 - } -} diff --git a/Plasma Widgets/System Tray/contents/ui/ExpanderArrow.qml b/Plasma Widgets/System Tray/contents/ui/ExpanderArrow.qml deleted file mode 100644 index 74b740f..0000000 --- a/Plasma Widgets/System Tray/contents/ui/ExpanderArrow.qml +++ /dev/null @@ -1,112 +0,0 @@ -/*************************************************************************** - * Copyright 2013 Sebastian Kügler * - * Copyright 2015 Marco Martin * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU Library General Public License as * - * published by the Free Software Foundation; either version 2 of the * - * License, or (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU Library General Public License for more details. * - * * - * You should have received a copy of the GNU Library General Public * - * License along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA . * - ***************************************************************************/ - -import QtQuick 2.0 -import QtQuick.Layouts 1.1 -import org.kde.plasma.core 2.0 as PlasmaCore - -PlasmaCore.ToolTipArea { - id: tooltip - - property bool vertical: plasmoid.formFactor === PlasmaCore.Types.Vertical - implicitWidth: PlasmaCore.Units.iconSizes.smallMedium - implicitHeight: implicitWidth - - subText: systemTrayState.expanded ? i18n("Close popup") : i18n("Show hidden icons") - - MouseArea { - id: arrowMouseArea - anchors.fill: parent - onClicked: systemTrayState.expanded = !systemTrayState.expanded - - readonly property int arrowAnimationDuration: PlasmaCore.Units.shortDuration - - PlasmaCore.Svg { - id: arrowSvg - imagePath: "widgets/arrows" - } - - PlasmaCore.SvgItem { - id: arrow - - anchors.centerIn: parent - width: Math.min(parent.width, parent.height) - height: width - - rotation: systemTrayState.expanded ? 180 : 0 - Behavior on rotation { - RotationAnimation { - duration: arrowMouseArea.arrowAnimationDuration - } - } - opacity: systemTrayState.expanded ? 0 : 1 - Behavior on opacity { - NumberAnimation { - duration: arrowMouseArea.arrowAnimationDuration - } - } - - svg: arrowSvg - elementId: { - if (plasmoid.location === PlasmaCore.Types.TopEdge) { - return "down-arrow"; - } else if (plasmoid.location === PlasmaCore.Types.LeftEdge) { - return "right-arrow"; - } else if (plasmoid.location === PlasmaCore.Types.RightEdge) { - return "left-arrow"; - } else { - return "up-arrow"; - } - } - } - - PlasmaCore.SvgItem { - anchors.centerIn: parent - width: arrow.width - height: arrow.height - - rotation: systemTrayState.expanded ? 0 : -180 - Behavior on rotation { - RotationAnimation { - duration: arrowMouseArea.arrowAnimationDuration - } - } - opacity: systemTrayState.expanded ? 1 : 0 - Behavior on opacity { - NumberAnimation { - duration: arrowMouseArea.arrowAnimationDuration - } - } - - svg: arrowSvg - elementId: { - if (plasmoid.location === PlasmaCore.Types.TopEdge) { - return "up-arrow"; - } else if (plasmoid.location === PlasmaCore.Types.LeftEdge) { - return "left-arrow"; - } else if (plasmoid.location === PlasmaCore.Types.RightEdge) { - return "right-arrow"; - } else { - return "down-arrow"; - } - } - } - } -} diff --git a/Plasma Widgets/System Tray/contents/ui/HiddenItemsView.qml b/Plasma Widgets/System Tray/contents/ui/HiddenItemsView.qml deleted file mode 100644 index f7c45c8..0000000 --- a/Plasma Widgets/System Tray/contents/ui/HiddenItemsView.qml +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright 2016 Marco Martin - * Copyright 2020 Konrad Materka - * Copyright 2020 Nate Graham - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Library General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.1 -import QtQuick.Layouts 1.1 -import org.kde.plasma.core 2.1 as PlasmaCore -import org.kde.plasma.components 2.0 as PlasmaComponents // For Highlight -import org.kde.plasma.extras 2.0 as PlasmaExtras - -import "items" - -MouseArea { - id: hiddenTasksView - - property alias layout: hiddenTasks - - hoverEnabled: true - onExited: hiddenTasks.currentIndex = -1 - - PlasmaExtras.ScrollArea { - width: parent.width - height: parent.height - frameVisible: false - - horizontalScrollBarPolicy: Qt.ScrollBarAlwaysOff - verticalScrollBarPolicy: systemTrayState.activeApplet ? Qt.ScrollBarAlwaysOff : Qt.ScrollBarAsNeeded - - GridView { - id: hiddenTasks - - readonly property int rows: 4 - readonly property int columns: 4 - - cellWidth: hiddenTasks.width / hiddenTasks.columns - cellHeight: hiddenTasks.height / hiddenTasks.rows - - currentIndex: -1 - highlight: PlasmaComponents.Highlight {} - highlightMoveDuration: 0 - - readonly property int itemCount: model.count - - model: PlasmaCore.SortFilterModel { - sourceModel: plasmoid.nativeInterface.systemTrayModel - filterRole: "effectiveStatus" - filterCallback: function(source_row, value) { - return value === PlasmaCore.Types.PassiveStatus - } - } - delegate: ItemLoader {} - } - } -} diff --git a/Plasma Widgets/System Tray/contents/ui/PlasmoidPopupsContainer.qml b/Plasma Widgets/System Tray/contents/ui/PlasmoidPopupsContainer.qml deleted file mode 100644 index 0a7d200..0000000 --- a/Plasma Widgets/System Tray/contents/ui/PlasmoidPopupsContainer.qml +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Copyright 2015 Marco Martin - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Library General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.4 -import QtQuick.Layouts 1.1 -import QtQuick.Controls 1.4 -//needed for units -import org.kde.plasma.core 2.0 as PlasmaCore -import org.kde.plasma.components 3.0 as PlasmaComponents3 -import org.kde.plasma.extras 2.0 as PlasmaExtras - -StackView { - id: mainStack - focus: true - - Layout.minimumWidth: PlasmaCore.Units.gridUnit * 12 - Layout.minimumHeight: PlasmaCore.Units.gridUnit * 12 - - readonly property Item activeApplet: systemTrayState.activeApplet - - /* Heading */ - property bool appletHasHeading: false - property bool mergeHeadings: appletHasHeading && activeApplet.fullRepresentationItem.header.visible - property int headingHeight: mergeHeadings ? activeApplet.fullRepresentationItem.header.height : 0 - /* Footer */ - property bool appletHasFooter: false - property bool mergeFooters: appletHasFooter && activeApplet.fullRepresentationItem.footer.visible - property int footerHeight: mergeFooters ? activeApplet.fullRepresentationItem.footer.height : 0 - - onActiveAppletChanged: { - mainStack.appletHasHeading = false - mainStack.appletHasFooter = false - if (activeApplet != null) { - //reset any potential anchor - activeApplet.fullRepresentationItem.anchors.left = undefined; - activeApplet.fullRepresentationItem.anchors.top = undefined; - activeApplet.fullRepresentationItem.anchors.right = undefined; - activeApplet.fullRepresentationItem.anchors.bottom = undefined; - activeApplet.fullRepresentationItem.anchors.centerIn = undefined; - activeApplet.fullRepresentationItem.anchors.fill = undefined; - - if (activeApplet.fullRepresentationItem instanceof PlasmaComponents3.Page) { - if (activeApplet.fullRepresentationItem.header && activeApplet.fullRepresentationItem.header instanceof PlasmaExtras.PlasmoidHeading) { - mainStack.appletHasHeading = true - activeApplet.fullRepresentationItem.header.background.visible = false - } - if (activeApplet.fullRepresentationItem.footer && activeApplet.fullRepresentationItem.footer instanceof PlasmaExtras.PlasmoidHeading) { - mainStack.appletHasFooter = true - activeApplet.fullRepresentationItem.footer.background.visible = false - } - } - - mainStack.replace({item: activeApplet.fullRepresentationItem, immediate: !systemTrayState.expanded, properties: {focus: true}}); - } else { - mainStack.replace(emptyPage); - } - } - - onCurrentItemChanged: { - if (currentItem !== null && plasmoid.expanded) { - currentItem.forceActiveFocus(); - } - } - - Connections { - target: plasmoid - function onAppletRemoved(applet) { - if (applet === systemTrayState.activeApplet) { - mainStack.clear() - } - } - } - //used to animate away to nothing - Item { - id: emptyPage - } - - delegate: StackViewDelegate { - id: transitioner - function transitionFinished(properties) { - properties.exitItem.opacity = 1 - } - property bool goingLeft: { - const unFlipped = systemTrayState.oldVisualIndex < systemTrayState.newVisualIndex - - if (Qt.application.layoutDirection == Qt.LeftToRight) { - return unFlipped - } else { - return !unFlipped - } - } - replaceTransition: StackViewTransition { - ParallelAnimation { - PropertyAnimation { - target: enterItem - property: "x" - from: root.vertical ? 0 : (transitioner.goingLeft ? enterItem.width : -enterItem.width) - to: 0 - easing.type: Easing.InOutQuad - duration: PlasmaCore.Units.shortDuration - } - SequentialAnimation { - PropertyAction { - target: enterItem - property: "opacity" - value: 0 - } - PauseAnimation { - duration: root.vertical ? (PlasmaCore.Units.shortDuration/2) : 0 - } - PropertyAnimation { - target: enterItem - property: "opacity" - from: 0 - to: 1 - easing.type: Easing.InOutQuad - duration: (PlasmaCore.Units.shortDuration/2) - } - } - } - ParallelAnimation { - PropertyAnimation { - target: exitItem - property: "x" - from: 0 - to: root.vertical ? 0 : (transitioner.goingLeft ? -exitItem.width : exitItem.width) - easing.type: Easing.InOutQuad - duration: PlasmaCore.Units.shortDuration - } - PropertyAnimation { - target: exitItem - property: "opacity" - from: 1 - to: 0 - easing.type: Easing.InOutQuad - duration: PlasmaCore.Units.shortDuration/2 - } - } - } - } -} diff --git a/Plasma Widgets/System Tray/contents/ui/SystemTrayState.qml b/Plasma Widgets/System Tray/contents/ui/SystemTrayState.qml deleted file mode 100644 index edf9ca3..0000000 --- a/Plasma Widgets/System Tray/contents/ui/SystemTrayState.qml +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright 2020 Konrad Materka - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Library General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.12 -import org.kde.plasma.core 2.1 as PlasmaCore -import org.kde.plasma.plasmoid 2.0 - -//This object contains state of the SystemTray, mainly related to the 'expanded' state -QtObject { - //true if System Tray is 'expanded'. It may be when: - // - there is an active applet or - // - 'Status and Notification' with hidden items is shown - property bool expanded: false - //set when there is an applet selected - property Item activeApplet - - //allow expanded change only when activated at least once - //this is to suppress expanded state change during Plasma startup - property bool acceptExpandedChange: false - - // These properties allow us to keep track of where the expanded applet - // was and is on the panel, allowing PlasmoidPopupContainer.qml to animate - // depending on their locations. - property int oldVisualIndex: -1 - property int newVisualIndex: -1 - - function setActiveApplet(applet, visualIndex) { - if (visualIndex === undefined) { - oldVisualIndex = -1 - newVisualIndex = -1 - } else { - oldVisualIndex = newVisualIndex - newVisualIndex = visualIndex - } - - const oldApplet = activeApplet - activeApplet = applet - if (oldApplet && oldApplet !== applet) { - oldApplet.expanded = false - } - expanded = true - } - - onExpandedChanged: { - if (expanded) { - plasmoid.status = PlasmaCore.Types.RequiresAttentionStatus - } else { - plasmoid.status = PlasmaCore.Types.PassiveStatus; - if (activeApplet) { - // if not expanded we don't have an active applet anymore - activeApplet.expanded = false - activeApplet = null - } - } - acceptExpandedChange = false - plasmoid.expanded = expanded - } - - //listen on SystemTray AppletInterface signals - property Connections plasmoidConnections: Connections { - target: plasmoid - //emitted when activation is requested, for example by using a global keyboard shortcut - function onActivated() { - acceptExpandedChange = true - } - //emitted when the configuration dialog is opened - function onUserConfiguringChanged() { - if (plasmoid.userConfiguring) { - systemTrayState.expanded = false - } - } - function onExpandedChanged() { - if (acceptExpandedChange) { - expanded = plasmoid.expanded - } else { - plasmoid.expanded = expanded - } - } - } - - property Connections activeAppletConnections: Connections { - target: activeApplet - - function onExpandedChanged() { - if (!activeApplet.expanded) { - expanded = false - } - } - } - -} diff --git a/Plasma Widgets/System Tray/contents/ui/items/AbstractItem.qml b/Plasma Widgets/System Tray/contents/ui/items/AbstractItem.qml deleted file mode 100644 index b2c7c72..0000000 --- a/Plasma Widgets/System Tray/contents/ui/items/AbstractItem.qml +++ /dev/null @@ -1,216 +0,0 @@ -/* - * Copyright 2016 Marco Martin - * Copyright 2020 Konrad Materka - * Copyright 2020 Nate Graham - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Library General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.2 -import QtQuick.Layouts 1.1 -import org.kde.plasma.core 2.0 as PlasmaCore -import org.kde.plasma.components 3.0 as PlasmaComponents3 - -PlasmaCore.ToolTipArea { - id: abstractItem - - height: inVisibleLayout ? visibleLayout.cellHeight : hiddenTasks.cellHeight - width: inVisibleLayout ? visibleLayout.cellWidth : hiddenTasks.cellWidth - - property var model: itemModel - - property string itemId - property alias text: label.text - property alias iconContainer: iconContainer - property int /*PlasmaCore.Types.ItemStatus*/ status: model.status || PlasmaCore.Types.UnknownStatus - property int /*PlasmaCore.Types.ItemStatus*/ effectiveStatus: model.effectiveStatus || PlasmaCore.Types.UnknownStatus - readonly property bool inHiddenLayout: effectiveStatus === PlasmaCore.Types.PassiveStatus - readonly property bool inVisibleLayout: effectiveStatus === PlasmaCore.Types.ActiveStatus - - signal clicked(var mouse) - signal pressed(var mouse) - signal wheel(var wheel) - signal contextMenu(var mouse) - - /* subclasses need to assign to this tooltip properties - mainText: - subText: - */ - - location: { - if (inHiddenLayout) { - if (LayoutMirroring.enabled && plasmoid.location !== PlasmaCore.Types.RightEdge) { - return PlasmaCore.Types.LeftEdge; - } else if (plasmoid.location !== PlasmaCore.Types.LeftEdge) { - return PlasmaCore.Types.RightEdge; - } - } - - return plasmoid.location; - } - -//BEGIN CONNECTIONS - - onContainsMouseChanged: { - if (inHiddenLayout && containsMouse) { - root.hiddenLayout.currentIndex = index - } - else if(!inHiddenLayout) { - itemHighLight.opacity = containsMouse ? 1 : 0 - } - - } - -//END CONNECTIONS - - PlasmaCore.FrameSvgItem { - id: itemHighLight - anchors.fill: parent - property int location - - property bool animationEnabled: true - property var highlightedItem: null - - z: -1 // always draw behind icons - opacity: 0 - - imagePath: "widgets/tabbar" - prefix: { - var prefix = "" - switch (location) { - case PlasmaCore.Types.LeftEdge: - prefix = "west-active-tab"; - break; - case PlasmaCore.Types.TopEdge: - prefix = "north-active-tab"; - break; - case PlasmaCore.Types.RightEdge: - prefix = "east-active-tab"; - break; - default: - prefix = "south-active-tab"; - } - if (!hasElementPrefix(prefix)) { - prefix = "active-tab"; - } - return prefix; - } - Behavior on opacity { - NumberAnimation { - duration: PlasmaCore.Units.longDuration - easing.type: Easing.InOutQuad - //easing.type: systemTrayState.expanded ? Easing.OutCubic : Easing.InCubic - } - } - } - PulseAnimation { - targetItem: iconContainer - running: (abstractItem.status === PlasmaCore.Types.NeedsAttentionStatus || - abstractItem.status === PlasmaCore.Types.RequiresAttentionStatus ) && - PlasmaCore.Units.longDuration > 0 - } - - function activated() { - //activatedAnimation.start() - } - - SequentialAnimation { - id: activatedAnimation - loops: 1 - - ScaleAnimator { - target: iconContainer - from: 1 - to: 0.5 - duration: PlasmaCore.Units.shortDuration - easing.type: Easing.InQuad - } - - ScaleAnimator { - target: iconContainer - from: 0.5 - to: 1 - duration: PlasmaCore.Units.shortDuration - easing.type: Easing.OutQuad - } - } - - MouseArea { - anchors.fill: abstractItem - hoverEnabled: true - drag.filterChildren: true - acceptedButtons: Qt.LeftButton | Qt.MiddleButton | Qt.RightButton - onClicked: abstractItem.clicked(mouse) - onPressed: { - abstractItem.hideToolTip() - abstractItem.pressed(mouse) - } - onPressAndHold: { - abstractItem.contextMenu(mouse) - } - onWheel: { - abstractItem.wheel(wheel); - //Don't accept the event in order to make the scrolling by mouse wheel working - //for the parent scrollview this icon is in. - wheel.accepted = false; - } - } - - ColumnLayout { - anchors.fill: abstractItem - spacing: 0 - - Item { - id: iconContainer - - property alias container: abstractItem - property alias inVisibleLayout: abstractItem.inVisibleLayout - readonly property int size: abstractItem.inVisibleLayout ? root.itemSize : PlasmaCore.Units.iconSizes.medium - - Layout.alignment: Qt.Bottom | Qt.AlignHCenter - Layout.fillHeight: abstractItem.inHiddenLayout ? true : false - implicitWidth: root.vertical && abstractItem.inVisibleLayout ? abstractItem.width : size - implicitHeight: !root.vertical && abstractItem.inVisibleLayout ? abstractItem.height : size - Layout.topMargin: abstractItem.inHiddenLayout ? Math.round(PlasmaCore.Units.smallSpacing * 1.5): 0 - } - PlasmaComponents3.Label { - id: label - - Layout.fillWidth: true - Layout.fillHeight: abstractItem.inHiddenLayout ? true : false - Layout.leftMargin: abstractItem.inHiddenLayout ? PlasmaCore.Units.smallSpacing : 0 - Layout.rightMargin: abstractItem.inHiddenLayout ? PlasmaCore.Units.smallSpacing : 0 - Layout.bottomMargin: abstractItem.inHiddenLayout ? PlasmaCore.Units.smallSpacing : 0 - - visible: abstractItem.inHiddenLayout - - verticalAlignment: Text.AlignTop - horizontalAlignment: Text.AlignHCenter - elide: Text.ElideRight - wrapMode: Text.Wrap - maximumLineCount: 3 - - opacity: visible ? 1 : 0 - Behavior on opacity { - NumberAnimation { - duration: PlasmaCore.Units.longDuration - easing.type: Easing.InOutQuad - } - } - } - } -} - diff --git a/Plasma Widgets/System Tray/contents/ui/items/ItemLoader.qml b/Plasma Widgets/System Tray/contents/ui/items/ItemLoader.qml deleted file mode 100644 index 64034f5..0000000 --- a/Plasma Widgets/System Tray/contents/ui/items/ItemLoader.qml +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2020 Konrad Materka - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Library General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.0 - -Loader { - id: itemLoader - - property var itemModel: model - - source: { - if (model.itemType === "Plasmoid" && model.hasApplet) { - return "PlasmoidItem.qml" - } else if (model.itemType === "StatusNotifier") { - return "StatusNotifierItem.qml" - } - console.warn("SystemTray ItemLoader: Invalid state, cannot determine source!") - return "" - } -} diff --git a/Plasma Widgets/System Tray/contents/ui/items/PlasmoidItem.qml b/Plasma Widgets/System Tray/contents/ui/items/PlasmoidItem.qml deleted file mode 100644 index 5592e57..0000000 --- a/Plasma Widgets/System Tray/contents/ui/items/PlasmoidItem.qml +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright 2015 Marco Martin - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Library General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.1 -import QtQml 2.15 - -import org.kde.plasma.core 2.0 as PlasmaCore - -AbstractItem { - id: plasmoidContainer - - property Item applet: model.applet || null - text: applet ? applet.title : "" - - itemId: applet ? applet.pluginName : "" - mainText: applet ? applet.toolTipMainText : "" - subText: applet ? applet.toolTipSubText : "" - mainItem: applet && applet.toolTipItem ? applet.toolTipItem : null - textFormat: applet ? applet.toolTipTextFormat : "" - active: systemTrayState.activeApplet !== applet - - onClicked: { - if (!applet) { - return - } - //forward click event to the applet - if (mouse.button === Qt.LeftButton || mouse.button === Qt.MidButton) { - const mouseArea = findMouseArea(applet.compactRepresentationItem) - if (mouseArea) { - mouseArea.clicked(mouse) - } else if (mouse.button === Qt.LeftButton) {//falback - applet.expanded = true - } - } - } - onPressed: { - if (mouse.button === Qt.RightButton) { - plasmoidContainer.contextMenu(mouse); - } - } - onContextMenu: { - if (applet) { - plasmoid.nativeInterface.showPlasmoidMenu(applet, 0, plasmoidContainer.inHiddenLayout ? applet.height : 0); - } - } - onWheel: { - if (!applet) { - return - } - //forward wheel event to the applet - const mouseArea = findMouseArea(applet.compactRepresentationItem) - if (mouseArea) { - mouseArea.wheel(wheel) - } - } - - //some heuristics to find MouseArea - function findMouseArea(item) { - if (!item) { - return null - } - - if (item instanceof MouseArea) { - return item - } - for (var i = 0; i < item.children.length; i++) { - const child = item.children[i] - if (child instanceof MouseArea && child.enabled) { - //check if MouseArea covers the entire item - if (child.anchors.fill === item || (child.x === 0 && child.y === 0 && child.height === item.height && child.width === item.width)) { - return child - } - } - } - - return null - } - - //This is to make preloading effective, minimizes the scene changes - function preloadFullRepresentationItem(fullRepresentationItem) { - if (fullRepresentationItem && fullRepresentationItem.parent === null) { - fullRepresentationItem.width = expandedRepresentation.width - fullRepresentationItem.width = expandedRepresentation.height - fullRepresentationItem.parent = preloadedStorage; - } - } - - onAppletChanged: { - if (applet) { - applet.parent = plasmoidContainer.iconContainer - applet.anchors.fill = applet.parent - applet.visible = true - - preloadFullRepresentationItem(applet.fullRepresentationItem) - } - } - - Connections { - target: applet - - //activation using global keyboard shortcut - function onActivated() { - plasmoidContainer.activated() - } - - function onExpandedChanged(expanded) { - if (expanded) { - systemTrayState.setActiveApplet(applet, model.row) - plasmoidContainer.activated() - } - } - - function onFullRepresentationItemChanged(fullRepresentationItem) { - preloadFullRepresentationItem(fullRepresentationItem) - } - } - - Binding { - property: "hideOnWindowDeactivate" - value: !plasmoid.configuration.pin - target: plasmoidContainer.applet - when: null !== plasmoidContainer.applet - restoreMode: Binding.RestoreBinding - } -} diff --git a/Plasma Widgets/System Tray/contents/ui/items/PulseAnimation.qml b/Plasma Widgets/System Tray/contents/ui/items/PulseAnimation.qml deleted file mode 100644 index 0506a35..0000000 --- a/Plasma Widgets/System Tray/contents/ui/items/PulseAnimation.qml +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 2013 Sebastian Kügler - * Copyright 2015 Kai Uwe Broulik - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2 or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Library General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 2.010-1301, USA. - */ - -import QtQuick 2.2 -import org.kde.plasma.core 2.0 as PlasmaCore - -SequentialAnimation { - id: pulseAnimation - objectName: "pulseAnimation" - - property Item targetItem - readonly property int duration: PlasmaCore.Units.veryLongDuration * 5 - - loops: Animation.Infinite - alwaysRunToEnd: true - - ScaleAnimator { - target: targetItem - from: 1 - to: 1.2 - duration: pulseAnimation.duration * 0.15 - easing.type: Easing.InQuad - } - - ScaleAnimator { - target: targetItem - from: 1.2 - to: 1 - duration: pulseAnimation.duration * 0.15 - easing.type: Easing.InQuad - } - - PauseAnimation { - duration: pulseAnimation.duration * 0.7 - } -} diff --git a/Plasma Widgets/System Tray/contents/ui/items/StatusNotifierItem.qml b/Plasma Widgets/System Tray/contents/ui/items/StatusNotifierItem.qml deleted file mode 100644 index e7c1571..0000000 --- a/Plasma Widgets/System Tray/contents/ui/items/StatusNotifierItem.qml +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Copyright 2016 Marco Martin - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Library General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.1 -import org.kde.plasma.core 2.0 as PlasmaCore - -AbstractItem { - id: taskIcon - - itemId: model.Id - text: model.Title || model.ToolTipTitle - mainText: model.ToolTipTitle !== "" ? model.ToolTipTitle : model.Title - subText: model.ToolTipSubTitle - textFormat: Text.AutoText - - PlasmaCore.IconItem { - id: iconItem - parent: taskIcon.iconContainer - anchors.fill: iconItem.parent - - source: { - if (model.status === PlasmaCore.Types.NeedsAttentionStatus) { - if (model.AttentionIcon) { - return model.AttentionIcon - } - if (model.AttentionIconName) { - return model.AttentionIconName - } - } - return model.Icon ? model.Icon : model.IconName - } - active: taskIcon.containsMouse - } - - onContextMenu: { - openContextMenu(plasmoid.nativeInterface.popupPosition(taskIcon, mouse.x, mouse.y)) - } - - onClicked: { - var pos = plasmoid.nativeInterface.popupPosition(taskIcon, mouse.x, mouse.y); - var service = model.Service; - - switch (mouse.button) { - case Qt.LeftButton: - var operation = service.operationDescription("Activate"); - operation.x = pos.x; - operation.y = pos.y; - var job = service.startOperationCall(operation); - job.finished.connect(function () { - if (!job.result) { - // On error try to invoke the context menu. - // Workaround primarily for apps using libappindicator. - openContextMenu(pos); - } - }); - taskIcon.activated() - break; - case Qt.RightButton: - openContextMenu(pos); - break; - - case Qt.MiddleButton: - var operation = service.operationDescription("SecondaryActivate"); - operation.x = pos.x; - - operation.y = pos.y; - service.startOperationCall(operation); - taskIcon.activated() - break; - } - } - - function openContextMenu(pos) { - var service = model.Service; - var operation = service.operationDescription("ContextMenu"); - operation.x = pos.x; - operation.y = pos.y; - - var job = service.startOperationCall(operation); - job.finished.connect(function () { - plasmoid.nativeInterface.showStatusNotifierContextMenu(job, taskIcon); - }); - } - - onWheel: { - //don't send activateVertScroll with a delta of 0, some clients seem to break (kmix) - if (wheel.angleDelta.y !== 0) { - var service = model.Service; - var operation = service.operationDescription("Scroll"); - operation.delta =wheel.angleDelta.y; - operation.direction = "Vertical"; - service.startOperationCall(operation); - } - if (wheel.angleDelta.x !== 0) { - var service = model.Service; - var operation = service.operationDescription("Scroll"); - operation.delta =wheel.angleDelta.x; - operation.direction = "Horizontal"; - service.startOperationCall(operation); - } - } -} diff --git a/Plasma Widgets/System Tray/contents/ui/main.qml b/Plasma Widgets/System Tray/contents/ui/main.qml deleted file mode 100644 index e284732..0000000 --- a/Plasma Widgets/System Tray/contents/ui/main.qml +++ /dev/null @@ -1,238 +0,0 @@ -/* - * Copyright 2011 Marco Martin - * Copyright 2020 Konrad Materka - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Library General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -import QtQuick 2.5 -import QtQuick.Layouts 1.1 -import org.kde.plasma.core 2.1 as PlasmaCore -import org.kde.plasma.plasmoid 2.0 -import org.kde.draganddrop 2.0 as DnD -import org.kde.kirigami 2.5 as Kirigami - -import "items" - -MouseArea { - id: root - - readonly property bool vertical: plasmoid.formFactor === PlasmaCore.Types.Vertical - - Layout.minimumWidth: vertical ? PlasmaCore.Units.iconSizes.small : mainLayout.implicitWidth + PlasmaCore.Units.smallSpacing - Layout.minimumHeight: vertical ? mainLayout.implicitHeight + PlasmaCore.Units.smallSpacing : PlasmaCore.Units.iconSizes.small - - LayoutMirroring.enabled: !vertical && Qt.application.layoutDirection === Qt.RightToLeft - LayoutMirroring.childrenInherit: true - - readonly property alias systemTrayState: systemTrayState - readonly property alias itemSize: tasksGrid.itemSize - readonly property alias visibleLayout: tasksGrid - readonly property alias hiddenLayout: expandedRepresentation.hiddenLayout - - onWheel: { - // Don't propagate unhandled wheel events - wheel.accepted = true; - } - - SystemTrayState { - id: systemTrayState - } - - //being there forces the items to fully load, and they will be reparented in the popup one by one, this item is *never* visible - Item { - id: preloadedStorage - visible: false - } - - CurrentItemHighLight { - location: plasmoid.location - parent: root - } - - DnD.DropArea { - anchors.fill: parent - - preventStealing: true; - - /** Extracts the name of the system tray applet in the drag data if present - * otherwise returns null*/ - function systemTrayAppletName(event) { - if (event.mimeData.formats.indexOf("text/x-plasmoidservicename") < 0) { - return null; - } - var plasmoidId = event.mimeData.getDataAsByteArray("text/x-plasmoidservicename"); - - if (!plasmoid.nativeInterface.isSystemTrayApplet(plasmoidId)) { - return null; - } - return plasmoidId; - } - - onDragEnter: { - if (!systemTrayAppletName(event)) { - event.ignore(); - } - } - - onDrop: { - var plasmoidId = systemTrayAppletName(event); - if (!plasmoidId) { - event.ignore(); - return; - } - - if (plasmoid.configuration.extraItems.indexOf(plasmoidId) < 0) { - var extraItems = plasmoid.configuration.extraItems; - extraItems.push(plasmoidId); - plasmoid.configuration.extraItems = extraItems; - } - } - } - - //Main Layout - GridLayout { - id: mainLayout - - rowSpacing: 0 - columnSpacing: 0 - anchors.fill: parent - - flow: vertical ? GridLayout.TopToBottom : GridLayout.LeftToRight - - GridView { - id: tasksGrid - - Layout.alignment: Qt.AlignCenter - - interactive: false //disable features we don't need - flow: vertical ? GridView.LeftToRight : GridView.TopToBottom - - // The icon size to display when not using the auto-scaling setting - readonly property int smallIconSize: PlasmaCore.Units.iconSizes.smallMedium - readonly property bool autoSize: plasmoid.configuration.scaleIconsToFit - - readonly property int gridThickness: root.vertical ? root.width : root.height - // Should change to 2 rows/columns on a 56px panel (in standard DPI) - readonly property int rowsOrColumns: autoSize ? 1 : Math.max(1, Math.min(count, Math.floor(gridThickness / (smallIconSize + PlasmaCore.Units.smallSpacing)))) - - // Add margins only if the panel is larger than a small icon (to avoid large gaps between tiny icons) - readonly property int smallSizeCellLength: gridThickness < smallIconSize ? smallIconSize : smallIconSize + PlasmaCore.Units.smallSpacing * 2 - cellHeight: { - if (root.vertical) { - return autoSize ? root.width + PlasmaCore.Units.smallSpacing : smallSizeCellLength - } else { - return autoSize ? root.height : Math.floor(root.height / rowsOrColumns) - } - } - cellWidth: { - if (root.vertical) { - return autoSize ? root.width : Math.floor(root.width / rowsOrColumns) - } else { - return autoSize ? root.height + PlasmaCore.Units.smallSpacing : smallSizeCellLength - } - } - - //depending on the form factor, we are calculating only one dimention, second is always the same as root/parent - implicitHeight: root.vertical ? cellHeight * Math.ceil(count / rowsOrColumns) : root.height - implicitWidth: !root.vertical ? cellWidth * Math.ceil(count / rowsOrColumns) : root.width - - // Used only by AbstractItem, but it's easiest to keep it here since it - // uses dimensions from this item to calculate the final value - readonly property int itemSize: { - if (autoSize) { - const size = Math.min(implicitWidth / rowsOrColumns, implicitHeight / rowsOrColumns) - return PlasmaCore.Units.roundToIconSize(Math.min(size, PlasmaCore.Units.iconSizes.enormous)) - } else { - return smallIconSize - } - } - - model: PlasmaCore.SortFilterModel { - sourceModel: plasmoid.nativeInterface.systemTrayModel - filterRole: "effectiveStatus" - filterCallback: function(source_row, value) { - return value === PlasmaCore.Types.ActiveStatus - } - } - - delegate: ItemLoader {} - - add: Transition { - enabled: itemSize > 0 - - NumberAnimation { - property: "scale" - from: 0 - to: 1 - easing.type: Easing.InOutQuad - duration: PlasmaCore.Units.longDuration - } - } - - displaced: Transition { - //ensure scale value returns to 1.0 - //https://doc.qt.io/qt-5/qml-qtquick-viewtransition.html#handling-interrupted-animations - NumberAnimation { - property: "scale" - to: 1 - easing.type: Easing.InOutQuad - duration: PlasmaCore.Units.longDuration - } - } - - move: Transition { - NumberAnimation { - properties: "x,y" - easing.type: Easing.InOutQuad - duration: PlasmaCore.Units.longDuration - } - } - } - - ExpanderArrow { - id: expander - Layout.fillWidth: vertical - Layout.fillHeight: !vertical - Layout.alignment: vertical ? Qt.AlignVCenter : Qt.AlignHCenter - visible: root.hiddenLayout.itemCount > 0 - } - } - - //Main popup - PlasmaCore.Dialog { - id: dialog - visualParent: root - flags: Qt.WindowStaysOnTopHint - location: plasmoid.location - hideOnWindowDeactivate: !plasmoid.configuration.pin - visible: systemTrayState.expanded - - onVisibleChanged: { - systemTrayState.expanded = visible - } - mainItem: ExpandedRepresentation { - id: expandedRepresentation - - Keys.onEscapePressed: { - systemTrayState.expanded = false - } - - LayoutMirroring.enabled: Qt.application.layoutDirection === Qt.RightToLeft - LayoutMirroring.childrenInherit: true - } - } -} diff --git a/Plasma Widgets/System Tray/metadata.desktop b/Plasma Widgets/System Tray/metadata.desktop deleted file mode 100644 index 408860a..0000000 --- a/Plasma Widgets/System Tray/metadata.desktop +++ /dev/null @@ -1,108 +0,0 @@ -[Desktop Entry] -Name=System Tray -Name[af]=Stelsellaai -Name[ar]=صينية النظام -Name[ast]=Bandexa del sistema -Name[az]=Sistem Çəkməcəsi -Name[be]=Сістэмны трэй -Name[be@latin]=Systemny trej -Name[bg]=Системен панел -Name[bn]=সিস্টেম ট্রে -Name[bn_IN]=সিস্টেম ট্রে -Name[br]=Barlenn ar reizhiad -Name[bs]=Sistemska kaseta -Name[ca]=Safata del sistema -Name[ca@valencia]=Safata del sistema -Name[cs]=Systémová část panelu -Name[csb]=Systemòwi zabiérnik -Name[cy]=Bar Tasgau -Name[da]=Statusområde -Name[de]=Systemabschnitt der Kontrollleiste -Name[el]=Πλαίσιο συστήματος -Name[en_GB]=System Tray -Name[eo]=Sistempleto -Name[es]=Bandeja del sistema -Name[et]=Süsteemne dokk -Name[eu]=Sistema-erretilua -Name[fa]=سینی سیستم -Name[fi]=Ilmoitusalue -Name[fr]=Boîte à miniatures -Name[fy]=Systeemfak -Name[ga]=Tráidire an Chórais -Name[gl]=Bandexa do sistema -Name[gu]=સિસ્ટમ ટ્રે -Name[he]=מגש המערכת -Name[hi]=तंत्र तश्तरी -Name[hne]=तंत्र तस्तरी -Name[hr]=Sistemski blok -Name[hsb]=Systemowa wotkładka -Name[hu]=Paneltálca -Name[ia]=Tabuliero de systema -Name[id]=System Tray -Name[is]=Kerfisbakki -Name[it]=Vassoio di sistema -Name[ja]=システムトレイ -Name[ka]=სისტემური პანელი -Name[kk]=Жүйелік сөре -Name[km]=ថាស​ប្រព័ន្ធ -Name[kn]=ವ್ಯವಸ್ಥಾ ಖಾನೆ (ಟ್ರೇ) -Name[ko]=시스템 트레이 -Name[lt]=Sistemos dėklas -Name[lv]=Sistēmas ikonu josla -Name[mai]=तंत्र तश्तरी -Name[mk]=Системска лента -Name[ml]=സിസ്റ്റം ട്രേ -Name[mr]=प्रणाली ट्रे -Name[ms]=Dulang Sistem -Name[nb]=Systemkurv -Name[nds]=Paneel-Systeemafsnitt -Name[ne]=प्रणाली ट्रे -Name[nl]=Systeemvak -Name[nn]=Systemtrau -Name[or]=ତନ୍ତ୍ର ଧାରକ -Name[pa]=ਸਿਸਟਮ ਟਰੇ -Name[pl]=Tacka systemowa -Name[pt]=Bandeja do Sistema -Name[pt_BR]=Área de notificação -Name[ro]=Tavă de sistem -Name[ru]=Системный лоток -Name[se]=Vuogádatgárcu -Name[si]=පද්ධතිය තැටිය -Name[sk]=Systémová lišta -Name[sl]=Sistemska vrstica -Name[sr]=системска касета -Name[sr@ijekavian]=системска касета -Name[sr@ijekavianlatin]=sistemska kaseta -Name[sr@latin]=sistemska kaseta -Name[sv]=Systembricka -Name[ta]=சாதனத் தட்டு -Name[te]=వ్యవస్థ ట్రె -Name[tg]=Лавҳачаи низомӣ -Name[th]=ถาดระบบ -Name[tr]=Sistem Çekmecesi -Name[ug]=سىستېما قوندىقى -Name[uk]=Системний лоток -Name[vi]=Khay hệ thống -Name[wa]=Boesse ås imådjetes sistinme -Name[xh]=Itreyi Yendlela yokusebenza -Name[x-test]=xxSystem Trayxx -Name[zh_CN]=系统托盘 -Name[zh_TW]=系統匣 -Icon=preferences-desktop-notification -Type=Service -X-KDE-ServiceTypes=Plasma/Applet,Plasma/Containment - -X-Plasma-API=declarativeappletscript -X-Plasma-MainScript=ui/main.qml -X-KDE-PluginInfo-Author=Marco Martin -X-KDE-PluginInfo-Email=mart@kde.org -X-KDE-PluginInfo-Name=org.kde.plasma.private.systemtray -X-KDE-PluginInfo-Version=1.0 -X-KDE-PluginInfo-Website=https://www.kde.org/plasma-desktop -X-KDE-PluginInfo-Category=Windows and Tasks -X-KDE-PluginInfo-License=GPL-2.0+ -X-KDE-PluginInfo-EnabledByDefault=true -X-Plasma-ContainmentType=Panel -#this is the internal implementation: can't be loaded directly -NoDisplay=true -X-KDE-FormFactors=desktop diff --git a/Plasma Widgets/System Tray/metadata.json b/Plasma Widgets/System Tray/metadata.json deleted file mode 100644 index cd635b0..0000000 --- a/Plasma Widgets/System Tray/metadata.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "KPlugin": { - "Authors": [ - { - "Email": "mart@kde.org", - "Name": "Marco Martin" - } - ], - "Category": "Windows and Tasks", - "EnabledByDefault": true, - "FormFactors": [ - "desktop" - ], - "Icon": "preferences-desktop-notification", - "Id": "org.kde.plasma.private.systemtray", - "License": "GPL-2.0+", - "Name": "System Tray", - "Name[af]": "Stelsellaai", - "Name[ar]": "صينية النظام", - "Name[ast]": "Bandexa del sistema", - "Name[az]": "Sistem Çəkməcəsi", - "Name[be@latin]": "Systemny trej", - "Name[be]": "Сістэмны трэй", - "Name[bg]": "Системен панел", - "Name[bn]": "সিস্টেম ট্রে", - "Name[bn_IN]": "সিস্টেম ট্রে", - "Name[br]": "Barlenn ar reizhiad", - "Name[bs]": "Sistemska kaseta", - "Name[ca@valencia]": "Safata del sistema", - "Name[ca]": "Safata del sistema", - "Name[cs]": "Systémová část panelu", - "Name[csb]": "Systemòwi zabiérnik", - "Name[cy]": "Bar Tasgau", - "Name[da]": "Statusområde", - "Name[de]": "Systemabschnitt der Kontrollleiste", - "Name[el]": "Πλαίσιο συστήματος", - "Name[en_GB]": "System Tray", - "Name[eo]": "Sistempleto", - "Name[es]": "Bandeja del sistema", - "Name[et]": "Süsteemne dokk", - "Name[eu]": "Sistema-erretilua", - "Name[fa]": "سینی سیستم", - "Name[fi]": "Ilmoitusalue", - "Name[fr]": "Boîte à miniatures", - "Name[fy]": "Systeemfak", - "Name[ga]": "Tráidire an Chórais", - "Name[gl]": "Bandexa do sistema", - "Name[gu]": "સિસ્ટમ ટ્રે", - "Name[he]": "מגש המערכת", - "Name[hi]": "तंत्र तश्तरी", - "Name[hne]": "तंत्र तस्तरी", - "Name[hr]": "Sistemski blok", - "Name[hsb]": "Systemowa wotkładka", - "Name[hu]": "Paneltálca", - "Name[ia]": "Tabuliero de systema", - "Name[id]": "System Tray", - "Name[is]": "Kerfisbakki", - "Name[it]": "Vassoio di sistema", - "Name[ja]": "システムトレイ", - "Name[ka]": "სისტემური პანელი", - "Name[kk]": "Жүйелік сөре", - "Name[km]": "ថាស​ប្រព័ន្ធ", - "Name[kn]": "ವ್ಯವಸ್ಥಾ ಖಾನೆ (ಟ್ರೇ)", - "Name[ko]": "시스템 트레이", - "Name[lt]": "Sistemos dėklas", - "Name[lv]": "Sistēmas ikonu josla", - "Name[mai]": "तंत्र तश्तरी", - "Name[mk]": "Системска лента", - "Name[ml]": "സിസ്റ്റം ട്രേ", - "Name[mr]": "प्रणाली ट्रे", - "Name[ms]": "Dulang Sistem", - "Name[nb]": "Systemkurv", - "Name[nds]": "Paneel-Systeemafsnitt", - "Name[ne]": "प्रणाली ट्रे", - "Name[nl]": "Systeemvak", - "Name[nn]": "Systemtrau", - "Name[or]": "ତନ୍ତ୍ର ଧାରକ", - "Name[pa]": "ਸਿਸਟਮ ਟਰੇ", - "Name[pl]": "Tacka systemowa", - "Name[pt]": "Bandeja do Sistema", - "Name[pt_BR]": "Área de notificação", - "Name[ro]": "Tavă de sistem", - "Name[ru]": "Системный лоток", - "Name[se]": "Vuogádatgárcu", - "Name[si]": "පද්ධතිය තැටිය", - "Name[sk]": "Systémová lišta", - "Name[sl]": "Sistemska vrstica", - "Name[sr@ijekavian]": "системска касета", - "Name[sr@ijekavianlatin]": "sistemska kaseta", - "Name[sr@latin]": "sistemska kaseta", - "Name[sr]": "системска касета", - "Name[sv]": "Systembricka", - "Name[ta]": "சாதனத் தட்டு", - "Name[te]": "వ్యవస్థ ట్రె", - "Name[tg]": "Лавҳачаи низомӣ", - "Name[th]": "ถาดระบบ", - "Name[tr]": "Sistem Çekmecesi", - "Name[ug]": "سىستېما قوندىقى", - "Name[uk]": "Системний лоток", - "Name[vi]": "Khay hệ thống", - "Name[wa]": "Boesse ås imådjetes sistinme", - "Name[x-test]": "xxSystem Trayxx", - "Name[xh]": "Itreyi Yendlela yokusebenza", - "Name[zh_CN]": "系统托盘", - "Name[zh_TW]": "系統匣", - "ServiceTypes": [ - "Plasma/Applet", - "Plasma/Containment" - ], - "Version": "1.0", - "Website": "https://www.kde.org/plasma-desktop" - }, - "NoDisplay": true, - "X-Plasma-API": "declarativeappletscript", - "X-Plasma-ContainmentType": "Panel", - "X-Plasma-MainScript": "ui/main.qml" -} diff --git a/Window Manager/smaragd-0.1.1/build/bin/kwin_smaragd.so b/Window Manager/smaragd-0.1.1/build/bin/kwin_smaragd.so new file mode 100755 index 0000000000000000000000000000000000000000..b238cc668253cfedab9f1cde6957894292f8d943 GIT binary patch literal 289768 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