From c4aa90090bab5cb75f7cf078aecd86fe4233ca7b Mon Sep 17 00:00:00 2001 From: Juan Pablo Caram Date: Sat, 29 Nov 2014 00:31:06 -0500 Subject: [PATCH] Settings and recent items now saved to propper location. Added missing icons. --- FlatCAMApp.py | 52 ++++++++++++++++++++++++++++---- share/cancel_edit16.png | Bin 0 -> 517 bytes share/cancel_edit32.png | Bin 0 -> 788 bytes share/circle32.png | Bin 0 -> 501 bytes share/copy32.png | Bin 0 -> 624 bytes share/edit16.png | Bin 0 -> 526 bytes share/edit32.png | Bin 0 -> 997 bytes share/edit_ok16.png | Bin 0 -> 540 bytes share/edit_ok32.png | Bin 0 -> 835 bytes share/flatcam_icon128_inv.png | Bin 0 -> 1934 bytes share/graylight12.png | Bin 0 -> 445 bytes share/greenlight12.png | Bin 0 -> 421 bytes share/join16.png | Bin 0 -> 508 bytes share/join32.png | Bin 0 -> 869 bytes share/move32.png | Bin 0 -> 659 bytes share/new_geo16.png | Bin 0 -> 329 bytes share/new_geo32.png | Bin 0 -> 464 bytes share/path32.png | Bin 0 -> 648 bytes share/pointer.svg | 55 ++++++++++++++++++++++++++++++++++ share/pointer32.png | Bin 0 -> 495 bytes share/polygon32.png | Bin 0 -> 680 bytes share/rectangle32.png | Bin 0 -> 310 bytes share/redlight12.png | Bin 0 -> 347 bytes share/shell16.png | Bin 0 -> 346 bytes share/shell32.png | Bin 0 -> 512 bytes share/union16.png | Bin 0 -> 503 bytes share/union32.png | Bin 0 -> 704 bytes share/yellowlight12.png | Bin 0 -> 420 bytes 28 files changed, 101 insertions(+), 6 deletions(-) create mode 100644 share/cancel_edit16.png create mode 100644 share/cancel_edit32.png create mode 100644 share/circle32.png create mode 100644 share/copy32.png create mode 100644 share/edit16.png create mode 100644 share/edit32.png create mode 100644 share/edit_ok16.png create mode 100644 share/edit_ok32.png create mode 100644 share/flatcam_icon128_inv.png create mode 100644 share/graylight12.png create mode 100644 share/greenlight12.png create mode 100644 share/join16.png create mode 100644 share/join32.png create mode 100644 share/move32.png create mode 100644 share/new_geo16.png create mode 100644 share/new_geo32.png create mode 100644 share/path32.png create mode 100644 share/pointer.svg create mode 100644 share/pointer32.png create mode 100644 share/polygon32.png create mode 100644 share/rectangle32.png create mode 100644 share/redlight12.png create mode 100644 share/shell16.png create mode 100644 share/shell32.png create mode 100644 share/union16.png create mode 100644 share/union32.png create mode 100644 share/yellowlight12.png diff --git a/FlatCAMApp.py b/FlatCAMApp.py index fc3709cc..a0b57bb7 100644 --- a/FlatCAMApp.py +++ b/FlatCAMApp.py @@ -76,9 +76,49 @@ class App(QtCore.QObject): """ App.log.info("FlatCAM Starting...") - self.path = os.path.dirname(sys.argv[0]) + + ################### + ### OS-specific ### + ################### + + if sys.platform == 'win32': + from win32com.shell import shell, shellcon + App.log.debug("Win32!") + self.data_path = shell.SHGetFolderPath(0, shellcon.CSIDL_APPDATA, None, 0) + \ + '/FlatCAM' + else: # Linux/Unix/MacOS + self.data_path = os.path.expanduser('~') + \ + '/.FlatCAM' + + ############################### + ### Setup folders and files ### + ############################### + + if not os.path.exists(self.data_path): + os.makedirs(self.data_path) + App.log.debug('Created data folder: ' + self.data_path) + + try: + f = open(self.data_path + '/defaults.json') + f.close() + except IOError: + App.log.debug('Creating empty defaults.json') + f = open(self.data_path + '/defaults.json', 'w') + json.dump({}, f) + f.close() + + try: + f = open(self.data_path + '/recent.json') + f.close() + except IOError: + App.log.debug('Creating empty recent.json') + f = open(self.data_path + '/recent.json', 'w') + json.dump([], f) + f.close() + + #self.path = os.path.dirname(sys.argv[0]) #App.log.debug("Running in " + os.path.realpath(__file__)) - App.log.debug("Running in " + self.path) + #App.log.debug("Running in " + self.path) QtCore.QObject.__init__(self) @@ -571,7 +611,7 @@ class App(QtCore.QObject): :return: None """ try: - f = open(self.path + "/defaults.json") + f = open(self.data_path + "/defaults.json") options = f.read() f.close() except IOError: @@ -612,7 +652,7 @@ class App(QtCore.QObject): self.recent.pop() try: - f = open('recent.json', 'w') + f = open(self.data_path + '/recent.json', 'w') except IOError: App.log.error("Failed to open recent items file for writing.") self.inform.emit('Failed to open recent files file for writing.') @@ -787,7 +827,7 @@ class App(QtCore.QObject): ## Read options from file ## try: - f = open(self.path + "/defaults.json") + f = open(self.data_path + "/defaults.json") options = f.read() f.close() except: @@ -2209,7 +2249,7 @@ class App(QtCore.QObject): # Open file try: - f = open('recent.json') + f = open(self.data_path + '/recent.json') except IOError: App.log.error("Failed to load recent item list.") self.inform.emit("[error] Failed to load recent item list.") diff --git a/share/cancel_edit16.png b/share/cancel_edit16.png new file mode 100644 index 0000000000000000000000000000000000000000..6ee2bae7bd617a245ca01b903724cf2b47308cda GIT binary patch literal 517 zcmV+g0{Z=lP)Ia%bV+l z=p+6UAq1IB<}sN}s)H}Wq~npgG_ zT`7tJMNtAhI0M+W%^HoycPJD(_%Z?P_j_X7_Sr%`+`GWP)aWtir7>!1snEAUK0AaTTLWnqkAE&3M z*xlWo8RYi%7Ohqb0DhUK`JS17IwoM|sRw{K0KU1o;d#pE^BfEYITDGCHa0fe0AAU} zojg400V0BBS*TPhQV8)*)3mQn=XwGlrG#mk&~+WfVv&?mAB7N~R|Y^tFijHxkWQzO z&1Ru#+7}_jhm`?XmNh=l=krJ;5|C1U6GFV6HP_aLZX~6IWm(8%G9V%l5n{0zwcG8G zQmO&q?NR~4;V_cPB<}9+pp=4TSx`!0dwW}Ze0+@0oa}`S?R0T*!GBUL*@pikR{+&& z70qVTcHA%w6bc1*1WuRW>gtL&H#gbm^Kqlmcv0^A`+JT?qYQv^xt#Y)aCv!&;c$q4 zzmMbN<9{k)7zPdw4)E~s005{|Di{m~-d4agO+Gt2V*m_bT#4sT4uExC=clJ9#}#np zf=P(2tu5Z!*_oQ$DS)eefQV2kl>h+cav6icU|ecl*HN$65ekLegmiC1BEtFkIsAVA z-yoWXTrTH2`9c7OVc_ua5WQY+d`&5ZR4O&oqMiUucKiPRK2AUo_siKn+j;Nl(+0gp{}%uZn>sk>hQJ(H0&n_! z0QSJqd;ir4=)I3>zye5t3*bxIMPnAx+=##fU;|{iU}xZ6?VRh&=KG5(;T#z0eOJ)m)BDN3R}R~l7>69YQoyfTk${_8=bURBKn#0m)e6|_IRReU z3J_zGV^<0|0$07SIuH;TSF!Ky=?c+PlwvvecNhuK?{O^HjP@6jS!IlfKkDyFR%iKIIW00000NkvXXu0mjf+Q-cT literal 0 HcmV?d00001 diff --git a/share/copy32.png b/share/copy32.png new file mode 100644 index 0000000000000000000000000000000000000000..1666def5866b64376065d4e2bba735224bc53396 GIT binary patch literal 624 zcmV-$0+0QPP)f{l!$Oo zc<$=`K>&DiYM_(~0zntPOcD8gp%sy<1^5iS0OC@9y#A-t6nq497ttT^>9xXX3KT#- zpQqVuUTriUk7+a-NBg%B03aL=lgs6CX32VCpi9`Zj*D(x()oKOoW`bH`M0000< KMNUMnLSTZ@`3fcg literal 0 HcmV?d00001 diff --git a/share/edit16.png b/share/edit16.png new file mode 100644 index 0000000000000000000000000000000000000000..9b64793d5e7e1d27b571d594cbc2cd7d95123095 GIT binary patch literal 526 zcmV+p0`dKcP)G#Y&YaIvZ9kmTdOKmZWBt~<3_ExA}MR>fk`S+CdAWHR|V91j28 z1|7$_3Vha{WLrXP#NCjEY&&#`TrmSsIfB9SYS*cLW_a4w~6 z)$4ViBwMZ4I-O2)KA-OdmSxfNJSGx}Apq@#U?Vw`QeIc9)!!u9>2#RMWH^~jNRov@ zfwpZkl}a%hjou#!HjP#N~vGDTuuuH zgU~b$rfDLZ&F(Vsc>K2wO$bdAH(4g zhG85p005;Flv3|S4o5halLc>%FdmQpU*LJ(_k2G8X47)HY;WHOcW^BK09mE{9sDp$ Q+W-In07*qoM6N<$f{1(Ba{vGU literal 0 HcmV?d00001 diff --git a/share/edit32.png b/share/edit32.png new file mode 100644 index 0000000000000000000000000000000000000000..5e29fe177f1b5edeb9606e9a08e40f8a0226443d GIT binary patch literal 997 zcmVDfNR8qUo^##N8AKA-qz` z@4LIZ8xx5Hv)Qa}n&xLDUkM><0lX;FmjGfcC%+_-d+#GDWxA)Q$GEt-;K9KGTU%QV zrPLvSX8=4o<8s@Vx89|iAPFHvjg;~ix7+=GBodJhhXVi*kH^v9-*29so&9PU#!CR- zhC(6ue7<`pw7k5GP$-0KHcOJ9ll=O@6#$^5lz)0W9wU`X@ve@KkLhx`{+3ey4uH{U zl%+I3KhL(dHja#pTuUkc0`R=l3fxV>hf>PlIyyRxWHMP`no6bUcDqd}CD+&2O9Ct` zEU=}eg_%r-E|<$tO8o@jy$1nu5FaR|j@sMXjd(m>V4O~;>GS#Ma5%WXzke@4Fc@T0 zQxi!t7K^d2uFkYrEMJuckb`)pl=|7}bQ-#@7no-<8TR(}(r&kNcXziaz~bT}tyXLP zd2Ma&c2j;)7C;W7MJe@Tb91w?x3^ai;PUd40|NtWY;0sC5_tn)X=#ZTi-i*t6P%o! zDe9~v6s`1p8L0F_+F z*Ca7EHilR%23^;2etr%B@Or&CJUpzxs?1IJ+6s7(E5%b&Q~68BX0y@hbW$lr(=;ny z0a*?7>gpNRR~6{y=0+6lsI(NnWqYF(7yKEOk`ST>!1Jo6|F8ZanJMrs7vQn<7t1ZKG00C*AB$UU|hs(1ra9p z57u};L0I-DWRv{>L&31Y4t#)tnzXD6LWA2XI(;XQ8JukyS*D|)va4DAp{>0 z@AW~J<)6`L^s6LEPcOE^;UH}`o4>2o>a!5y=pYCoUNw`+{F=|_;#&IszGya^=R_j$ z``Y(Ky$<3(B1sbIblMY-#~)&`*tg|!`Q!TDeYZ!im*H@Ts;VJbmcIvs!7u*>NG6k1 zDizl2HPveMQzR03e3Rf-(004UG)+>e6ackajZi3ruIqFpTW-EKGM^BI8IY(}wI z#P9dt2S}0xT>gj0;{m|u^D&)H9l-9f@K;X&Y3G8+|$+E0B e3+4LgIzI#FfU`8=cBn`I0000DW`K~z|U<(I!pn?V@IKlk1R3t2QEY7wl8Ns5%BlTby-B&f54 zNa3AILC8Pg;N+CSg3v)wGCLHDV`xy}RZucEpbjyEE>aLgH1B)Yq4;WSe!SYKL%(qF zyqD*>=fgdB&k1kbb$omruNmBkYgkPyD=X$tiYLB? z|DwPp$mjE{t*ucg6o|!Q*tSh162WmCc6WCH7#kZS9_GrmS68xsM931rRbUIye9v~Kr0dRhP&feZ$;{fL8=jrL`0r2m4B9UNv zdb-Rn8jbpP&@u#S#eIE!6MvuyTPsW(aEwdKDbLqv;z;B{MNpWsz6{P?G N002ovPDHLkV1np+c^Uu! literal 0 HcmV?d00001 diff --git a/share/flatcam_icon128_inv.png b/share/flatcam_icon128_inv.png new file mode 100644 index 0000000000000000000000000000000000000000..60782f3261b8182f5d6542c1e228b9b715759ad2 GIT binary patch literal 1934 zcmaKtc{tnY7RU1wYm3%Wy9BjXDPmVt?MqWirxQjkxemzV-3oTZB&CA zZ53@4$u%;Tu{3r{iy=*Hky|vA{&Vl0`^P-*bKdj3pXWK}`Tp^q^UZWeI*OcZ`Fd)48;iI^DAEaqgFvM2 ze+@vWneaOo3Pd|!vlmzt5|cC(b=Yv%`+`lU22M(`x$gxv*`||#)3t>u?PIrvr%z|mv}X;lX)kwm zFvi|`q56lceTo?|excXmaIvEs_vs{QIUsU0z8c3mem#1$cbtdGv8lVHjKT9NsX~+i zL7^*7kgGgrPlB^~{0$1qThfCxmyUAf!34Y($ue(6!0eqa;0W3x*>dcsmu|oP-Ol~Z z5BnGrzkkiJsUj)J|J;}gz+2jWrQUOQb;Xov80nq}F1O1xT_dp}5@1BtEE@bCT-Jlr zHlr%GKm#EXCxdCzHJ2A_YS52nS^9$|AJT zJQO=xjrsTPhwYh;bQX(MjTm@VW`N+{i&G4gX|f zimjugqc0DyX>TuVZf@pD11`iZ8Fa3qTpk67hhxb=#h9APx7L`zrKxI30%OsCVscf*oY7#kX^ zFXYfL=e~1&BH@Ud*RK~VO`}vwF3%Nj932e0EoYOS=#xXBFaayKKIDUj35VQ^vk5T*vKzP%90p{OFZ{Y*)e;_y zztj`=a{;B^kDN~x+qPAbZ!?J+uvOC=(q2tKLBA8I96Yf}H};1yqbiX6NMMowQ*=B> zw((ca?R?%samg|BSy5n>bhiN%TP-yQo5k)(MJQRgnDI9zrD$?k;OiYV>Ky~F|cI*IYBJxtbM~{o` zkw_$aR9X#`)UzVx$Rd8ced)r5KoY3kL*mHOoRuHP@*r~b;i`Q&pM;mt#+_BlAq}8X zsfLdEFp+%DO?L~ttd{%kJ19eq-GZmVu~cA=u>R%b2=z;_*woaNugQn?bx#y(Xdv@e zd_uf+TL;|gDKKAh+zBg5!&q7_zfCsRY zp!&v&92qp3Zzj7OZh=4Fc5C)WkGw;8#Re}dx*^6lR|>zmKW>sZ5iiM<9JfxLmL|WU zF46qhmGu2T5-KzzAk+Q~i6)WHJQ>__6IRhqwg<_w8st4=@he5)eSEcCbi|7#)tQ6Y2%r37Rcs*mG< zA~5uQMl9?ID$F&5+Nio6fk+qiZ9hQJ2>7e+jAbUA63M2^f%dvwvxGR?BkhP+{geL$ DL<4!$ literal 0 HcmV?d00001 diff --git a/share/graylight12.png b/share/graylight12.png new file mode 100644 index 0000000000000000000000000000000000000000..b4dcf78000bc88a3a328c0b9be50a0ca8c2bdefa GIT binary patch literal 445 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&kmSQK*5Dp-y;YjHK@;M7UB8!2P z6$mqaNSWjX6qGD+jVKAuPb(=;EJ|f4FE7{2%*!rLPAo{(%P&fw{mw>;fq~J=)5S4F zV`A&2jaf{NBCQXNjmz&lC?@P*)Y{tWq@WWW$?ciBatQ~=qvD9CygJF*3w0unux#|) z%6E&sDPqay6L032a3v}IE7-k$H@k|X5Q9iVUx$zDlivlw46+QbUWj;VEag%%Qi{wr zk=hla#mKN`>kJ>YIL)mk=k8Aa6T+~iW6!gqowpJUCM0d_xP0xkY1Q6&x8Ig|Kfg1V z>4S#S`NIz{v?O-?zm;Q_u{COD@jK6M592PST25vMiMEbK9^D?n%qzmRL`wtZt!C`n z$9Dd*ig@O%Pf|XYr>KZqo!%5UNoC8mxFgr1R6GyqoOWY7&~B(U@BH)DtgTs}e*Tfa z^ZtANx8Hwff8SSKbEmgsPsRKE#};8viy|2hWNm$vW48F(ue+At9X@fVU(S$DKISNp l)2whqD)|`0EsL4Q^fh|s@gDAM*$WJ622WQ%mvv4FO#nP6wY~rV literal 0 HcmV?d00001 diff --git a/share/greenlight12.png b/share/greenlight12.png new file mode 100644 index 0000000000000000000000000000000000000000..d15ca432e346e06bd4cf9ccb2069dadb15dc0446 GIT binary patch literal 421 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&kmSQK*5Dp-y;YjHK@;M7UB8!2P z6$mqaNSWjX6qGD+jVKAuPb(=;EJ|f4FE7{2%*!rLPAo{(%P&fw{mw>;fq_xU)5S4F zV`A&2jb2WLBF8_z|M~y_^ZH`}_WmTjkR&WSWiI=7MaoFU7dHx}Qf z88{p~baC0kZ^_fAgf}ntylXz?|G~&pa#w1b7iT(Tg%oXy(hoYx>2Y?#-Sk+oV+*WO zWM1EDEnKsLkC#*S*FvMtu*aS(e*-*UL_84GR=-m})#A>EoZI_{T`st*7F literal 0 HcmV?d00001 diff --git a/share/join16.png b/share/join16.png new file mode 100644 index 0000000000000000000000000000000000000000..be9eb596c701af134f24235de32198f4934a9e88 GIT binary patch literal 508 zcmV|$_dh$g{MjY|l*{F{X0v&bPN!v|P`K@OyVvb@d;8adR4TQUOeUq260ulpbvm6g zDJ2}o`CWxZqY)$$i96f2?_JkD4jMC+weX(N}*fw7mn7-RI~3jo0P{eXzxgx^EqXA(kenWlLzrSt$mDaHH! y{+?~y$3h4%49sRT?z-+luh+YLBls^1kMa|DwyVX(0~1#O0000oClzy(P+teCv9qKN^#E9rF=C! z2hIePJO!25?CdP!@i^Ms+u`^7;cz%kO+emev&EK|moEeOWf+EQY-~(SPENAX(NW8g zTDHKpGHzCAp03kxiyFefy zQ>j#a1bDq(w6?ZN0B?Lg-=+2SbLffkIKbZC-f??wZccH|j{u~klvmwuwhurcfxn0&svb#*!>9>Rs{qq5 zjGF#z%5Fg-k-)^nL{Wb_oj%!=i9`ZJLqq>{vbD8UcC6&9SP1ce5HeP75vBA<*Yz6! vu4|h16o8du_d(b7N0tPfrZxOccqZTv={Z_MWVEXX00000NkvXXu0mjf#T<(P literal 0 HcmV?d00001 diff --git a/share/move32.png b/share/move32.png new file mode 100644 index 0000000000000000000000000000000000000000..839ecffc60df3d41c3177e635f36f79ff8ff9b25 GIT binary patch literal 659 zcmV;E0&M+>P)7aHw%tau3<%Q< z+uK+v2%APw{0G|z+eT)v67&xk23dpwtHEZqSOgVxExg_>WCr|##MQC!h1;B*k0&|j zCO3+dl5@&)*6J4k!0R?ZQIr4>IG~o0QvTVpN+}&L;4APKkO!`xn>pRK;4`2daQAQe zvT1PJ0tFzENKh;m9S1d=P4fBtd;I?Z01ylYxxKx0?BDD4_Fg;tF1P?}&46i|UQN?( zgb-T;qwD&o@pyb%0H4qIO9*kZ%Q+H>VB7Xl0oGbznx-bD+*$lo+Pe)6!ypt2t=V2* zUyuF-_5x^{hTrdBclNH_2ZI4mPfw1EJU>6X2iPT#XVo#=wn-+FZbIL*bPXV-q}^^~ zSr&~(165TKLL5?D06!c9bh}+19v|f`5ah%1McqboaT0CKQRe5}TMA!9qTObf17K?ohz+$oB{{EiP zXhbv`$1see7Kc4EU|AL~FE5nKWv;KU z>2x}jN+qV#DeZQ9XQJ6`b`*dmuoOagQmGWv>6CiC?kb_8C<|Bqn}0@yLZJYp*l~Pv tpx=t3e9LCD-Gc!>T4z6yTma4v@DCuu;pph}yy5@=002ovPDHLkV1g2h8Eyao literal 0 HcmV?d00001 diff --git a/share/new_geo16.png b/share/new_geo16.png new file mode 100644 index 0000000000000000000000000000000000000000..fd495e807eb4e11314c989896467400a3787620b GIT binary patch literal 329 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ zFzbRaqtoSo=|Dlr64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1T!dAc}; zSo9|U`TyUZS+#+6=HU}3PN*v@8&97+d9rNepUcbrdGzD=@%#sZavtG-|NrwJ=i%WI zs;jHhpJ!kHPhN8N?AiZ;YHxR~5o?RQ!29IEgCFXOij7KYii!s%1OyV4)z!m)zqq(K zEyYqT>Cex{$NAe{yvVT2&3$X5sHm7fiPyl?H1);1cWDzQPZmy0Pk(<*nk_Lg@%+EX zj9y+|%O`#nc*<0haHZj30z*~Mzv34c7Ur|Dv6&ZU{`mU(dTxrH^3t1<3;{pdO7`3J RD*%1O;OXk;vd$@?2>^D)e>4C9 literal 0 HcmV?d00001 diff --git a/share/new_geo32.png b/share/new_geo32.png new file mode 100644 index 0000000000000000000000000000000000000000..6fa8c21446fddab932d3b013ca96d1edf5406df9 GIT binary patch literal 464 zcmV;>0WbcEP)2vbC6gm5(BEp#Y`+n32BL%fwSbv_uHQ=TX#oQMVIDvS{;DY z1xcO(xY#4#tExWlMWCvc4&WMqHg(VQJ^)-9d3F=^8dv^Iny0^j#BpU!iy zY&Ijw2a-2O0}v4uMF9YqPNx`;$0{O^B*UWs7-Nvni{Wqx0H#XU8o*#MI7rv|UEly5fCF#< z4!{98fJX0u$z%fG_d5Z2Be_~GmprrpNmbRC%J{$k9e)8JenFz*WiWOC0000}l`LCSGAFhZ*)cwzTCg z6!0=5J>7sgs^#?z?gEy~%3V-=AR~=9uGZ7E4qH6(IlaX!1jwTx_c_;ESgH_!M zIG9L2VNu%VMjI-*hqGQVfx&JBTulVGve=~*ds1Luz7vz!+^K-qGyZ3>p^S8WO->JX z;s(BD*e^I&EC6e>eXG?c`a7}!hjRZbYZuenV{A%K$Hz+H z``Blee$Y<9cp|!8vo=&IHZwnK^@5+g?nc0y>NYpn5VhVFPGV(g;kE*>uFn4o<~;6T zkA}b6UlDMm$^Q&f)az%PO>abf>3T25I8_ITF-|w+b~Hk|n;(NA^kFw{#u(qvMWK!a i{K@h6e3<;R0=@%U`~XUscD(KY0000 + + + + + + + + + + 11 + computer + + + + + + + + + + + + + + + + + + + image/svg+xml + + + en + + + + + + + + + + + + + + + + + + + + + diff --git a/share/pointer32.png b/share/pointer32.png new file mode 100644 index 0000000000000000000000000000000000000000..d2b030c4b69276d124e899219f21cc99e72ab5fe GIT binary patch literal 495 zcmVtw=~?BUqTmLbS9HMAG^M z+KB0V2eI-MM6eSjg@vG%zJP*3L@d(8LIfp@MfTv3#GNyHIg1QTv+Ugd_7hH2l`LZ< z)6s_jA3#J3nF4?v5xEkPO%WMQMWCuZ6W9XO6;Tw&Kc`*<7LOnkbfJs#fgmojMTx7nVJ(74 z5DJuNV+%KdyZQ%|AOe@BL_!N8TD1rxX&LlGcnU>C@D>_A!m`NI;+;pA`{vEuner*v zg~QC9bHC^Nx%V=67*SPrvhCYZ_x}L99zaBLBC@TJNyVQ6t0Hn~+Xz&(ZUCPFwYUvP z-1sb!1aQXzP~Z`8sF47tJOBk=0UZqiFo-2H{sL^-eF^9fHi33v444B>rv(@{(>35S z@YVX8z;J-+O9xzm2WbI1oB|ht9^ivha01w$VCu$XDgZ0|%*6B7KL#u~MHlLrmVp`I zf~}weBUu23P5c9Bwr2-`sfZb_1NVXRz(E_^;^fa{0muX2tiY(3yACV@)4)L0)Ejfw z0m!EYup$qwz+&oG4Q`nBqn`^p=S3tB^ji0Oh{kK(c75X~LO(Q9z;WOwaPuz!-qvIS zmhT#W_HQih@>`8{(_g8{B?!BL4HG{m!^eoq*-)K8Z!iGR1iUlhC*Wwt*`Ko-zknt` zpNrYIyFix-2UT@7X`@A?6(|6m76ss>rQfUShOdbP5RoC^s&#Lv>T@U8?3q-JP5_5v z_-3OX)&Ph|0k~(~H6SM O0000Ns12CcB*NS+&jj0ONlKiRJuh+Zg%|>-@;eWz%28i!T)~KwKIM*ci)O<=-*&| zK+Sl;`Onf1c-AyTF8mbzqQmgNVPOMv7IU1Emvij;p4*8)=QDV^`njxgN@xNAZPIW5 literal 0 HcmV?d00001 diff --git a/share/redlight12.png b/share/redlight12.png new file mode 100644 index 0000000000000000000000000000000000000000..9a1817e31cfada8aeba81de0863f36a8647cdf06 GIT binary patch literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&kmSQK*5Dp-y;YjHK@;M7UB8!2P z6$mqaNSWjX6qGD+jVKAuPb(=;EJ|f4FE7{2%*!rLPAo{(%P&fw{mw=TsOW~Li(`n! z#MVoOs}2PSv_5>VwsQxoV}bM|s~p|XJDpFXdt1YrI+T>w9e#B+t0;b=i%yMI!LItY znZ<5io?e_xX%kDIY`-XF+@gN{z}^#f%Vj3lN%eYKrl$1A9X_SB+wQyZ*Br7Q{#B#MM+GXi*%sGU z%O*?;o@e)_KI_d<7N?ZU&%dpE8FIU-J4fKwgIyDI-7FVHO%Urfj+DJ4b~pW!{(8f+ kk!3r|c0AKDtgY>}_p+L|evYCK3($`Yp00i_>zopr0D-ZDO8@`> literal 0 HcmV?d00001 diff --git a/share/shell16.png b/share/shell16.png new file mode 100644 index 0000000000000000000000000000000000000000..573f4b93b26b3a654ea0e66b3bfb8378a2e80bd6 GIT binary patch literal 346 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ zFzbRaqtoSo=|Dlr64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1U9d%8G= zSo9v9ywQs}P{8%PY4nXBoQ$8jZ{0Y0?4G=U&e3E18!n{TJ9zwRs2AY4G0SVih7DV` z2?gEkIJz-1G5qM+Ne+586=w?G?J+;&k}8_J)`gkXVUqKMHOkei&n=pi!t{oz-20I8 z17};ktb^=&osk~5YHmUIn3$@ z{3c!2+8VHYE!zQ^8^Q6DVwl`R|L|s*2h7j?hD0f3vIWq9RvBkyICKw8_=iScqT758#)u zvQA+eu(hzb=2BWKVG$G**+$`D1G29ACQY)(#a%g)souO{e*FJ$=83BEmB=JripV#h zdZll#s%rrGs6a$)$8pvoa_czGMW-=_{eEv$wWX?0NeZ%26y5fEJ&MKRMe%Sr(C_!H z)oOJI`~`@}58&s!txP6Er_;FrjK^bK*NyWSkj-X)RjbvTN~J`2@=sS7hJ<05NQ_t6b=~LF>C{MD-{bLk tG{)Sks+S0O`#|5X$p53Nt5gM_jaNF;pW5A(=KlZy002ovPDHLkV1ka#T2jBrJBtHNHLnMYuAq&C-5Ot~tM+|hxWC^Pn+t;DBg=>oKUW}AR9P7+^sFDOhO?< z7x)RFsw&-Xx7KBcVaRkkO`8KLWj}3HeFP#s+1=e`ZEdX<0Dx`VoS&cPYSjVAw7R;= z;^HE`UawOA_4PHL=droDnF8cg8vsDlH2VF1c_MImd5PzF|BV*_gb?q5k3i?4yry(t z;V*#kR0CE4cn#3$blBeBMpe};&}y|%6onuNI5;>cbX;Cu#xzZY5QSJB004G&cG%e1 zDELxJqA0?3-9pTDT~=0B*xK59JV1KomSxdyw=;i#e;-ZLuq-Q=e{pev<2b}|OdXX@ zE?w8rbv@@Pio(*;QqI#ft=7Oo?k~9lo znkJ{Grv*QKsl{M@oml{ez#E{jq12EBoGOWh&+@-NAa8;8y*;XF mET#ND6Tow8?#poQ0KWkR;Od-UC}8#g0000;fq_xc)5S4F zV`A$hdvB*giPrhw%kRtAv9vzub856u>C`pb+7;mJJ^Rvy<1d9(E?sC<6E7?w=c?V;sPZf4M-C}H9%~}vA*9UWqiQ0Bj~BxK2?opKg0d? z19qwS3ay)~^)*U#J1?8YvxQ+tR|b_cJ@sO|*|$DaQ-LX!UBUXJ{;`>cGQJyQ8!w6& zC%>39MdMZC9}Dx%=5?`)1zAdr=2adu=4Y~UXwJX>gTYs8;x literal 0 HcmV?d00001