From d45b2367167daa1666fafc4fde943351b2df4494 Mon Sep 17 00:00:00 2001 From: Carlin Mangar Date: Tue, 20 Oct 2009 15:21:04 +1100 Subject: [PATCH 1/3] Rewritten installer. :) --- installer/images/hx.bmp | Bin 0 -> 25818 bytes installer/images/hx.png | Bin 0 -> 6515 bytes installer/images/installer-header.svg | 722 +++++++++++++++++++++++ installer/images/installer-wizard.svg | 812 ++++++++++++++++++++++++++ installer/images/tango-install.ico | Bin 0 -> 45182 bytes installer/images/wiz.bmp | Bin 0 -> 154542 bytes installer/picard-setup.nsi.in | 275 +++++++-- 7 files changed, 1770 insertions(+), 39 deletions(-) create mode 100644 installer/images/hx.bmp create mode 100644 installer/images/hx.png create mode 100644 installer/images/installer-header.svg create mode 100644 installer/images/installer-wizard.svg create mode 100644 installer/images/tango-install.ico create mode 100644 installer/images/wiz.bmp diff --git a/installer/images/hx.bmp b/installer/images/hx.bmp new file mode 100644 index 0000000000000000000000000000000000000000..ce7d47047b1fff4bfd19ec6a07bc3d5103e2e95c GIT binary patch literal 25818 zcmeI5hgXw%y2tna0lTwxcJA)Z&Nx-avZF|^ArKM>A(YTU@4fdLdZ+w@74C>=bPIvw{~6uIv&G!N%3E)!^3CKU+nJfZEf#w@4R@jcd-BL@aeNxdrx2O z?Z0@u`)qq>Z)5YxqxGHDwaw*+>x;{)_ZJ?_&Mi&OER0XhjgHL>k4*Fr477E0)HifB zHcj>oY%e_kq&yw|#Hs$Q48e0g-`(5Y+TK~;*jQPeo1AK{t1l@kE-fyuzFX0Budb!O zzOA9Dxvs9ZvZ}PGI6Iw{&P-0GGZHAVg2S+P?Lp>E$0$Ls?B_%H`iV_e+@m-g_ z#wT;_I!+E7ZP5HJxl5D_yJ5jPSAlhEQ9l=|-ch0p%< zh{IpP-|HX4zz0xteuSitq`!UBp3b1V*?V=g^CVNnngKmZhg&O%(uN)l-;fv}N~HWrsw5)ftv zhBoIHofw@IgcK0^>{q`6jMz(8jD^MFA@D#hNw^iUsC z=bkJ-e7Uj3t1Vtj@tvc6TD0g6b^Ar2w6+q;za@NerzZ*dx?Q zUAHxACv3omoazx?_)f?s~6FDPs!fv}W7z#UA*Btga?NQjd2J*oFM37vJ zBGP)_#~*!9WrLlM+_~u8%Ws)(?c_HSVo134To0*s#ZtDP^0J9;d zK>G3(LqQQoDH#VT8F&f63jxH;^{en-h$D5sk3Zxx~$$MHjgK}Jy2;V zIRNM9@87?_u&}VWxVXH$JU21fUR>&^t!pYI=8BMYM#uum(-^_2O3LW{kZ{Z}{_xv~ z?Q?$9U%L1G)v-m{CTgO$Z*^+!+3E(b*T&6k&d6}6wG|>5cs~azWJCyq5}O6|Ky^N{ z7(bLe38j!g$;xVfkaoK(v$(y#sr9u8j~N2MrKKfc_~5~V+3^W?eIrW|2@j;48&b|i zS{7U}V6>Ky2B!+K5h1I4g?8`*_2?V&#-Gja{8rZE6G8o7UL|~c4Pj$yMvICWYU|v4 z@bDF6InXlY^-E7@rys~mCwh8qk3%0k>xsGbF~KxyLOwm|CdDT*NDdo}R?H|HNKPpY z$7_VkE9JO*PmGLmb;uPVm*K;Q59cSRyp2q4#H0W|2>3O|V>N=pA;m$;>Rn^Jx)k^H zTgO@}Co(lOrjVXO52N@wxT;_jWTX%dmR1dSE1p10j??Pq^}J727$0D`I5zHxkad$r zfqqy`3t1hjN$KTuY96b0DmkMfTmerput=unX4TDP-W`l18f7`S47Rk*&CZ@M1Q7zm z`%}|C#%2x@2!E9P8;mG$st_ANd-_qCx*-U5Y-Ra>G4#VkbKNE9jNhC=Q3%Bx?#lVXK;;PeYkBUIc z>4_x0h)HYwM}XX)+(=+xW#u9Q0#_!cUOnPUkvDrfR^ta4K3;p|iR1tbkW&c8;KDGt z2zjL_1!W3Wg>LGQS=5%Gq()aFFd*Hb=4O`PTldNb&yk zjK8UcyOb=rU$~W@tUSCfAhdF&Xd@|&k<*n(d0AdiHa$3We`*Q_8^f*bJ(V@5YZQtf z$=t|zerSZp@GLrfy0uNhC6S3$k-z{Q1y(a!FU(z~F>ro0>0#|(MC^ehaa;T?=q4h8vP zmDAG7QmASF_KJ51+pX$E!yw;NuK!a$1(ab29J*5MHW^CQH{WJD8TG zuA5CD<`7NtD@SuQ^l}KqT;Hf{&(JKVfUFo6{N-3rFJz~4Q&YiKwtg~baK-S7fSeYR z8z?Wi?$llisfgBOS2#@75go3lDrq;{BX=!APr^B-_gjF@M>e>{n za-wTs=IyQ|ke{*!2#=+v4d`+SI(h24h1v!MMJ)xaiUJM20u9}K->CfL+qps19107Z zD(D9wz|1(r%GO^711|?M1_x0QYD=y=g{lRzQyf}Hp7jis$yUnP?`rJ@FA4{U@Pr}s z4f^UDyc{_Uc{)5JLmJT_9;ce(8l0I{2J!>9nd2LsmsXa~xKT*WD=cm==vXP}-@fS^ zRjg%j)6}k@w5PCcx*)SEmqbZZ(H!gT15Y?RITdDOPm;kvJ_K=<>rQ=-L!yf`3K%M( zb+D|b=xnxh23soi6)A73zpZ!TGez4d zr=*)JzkFMdLUMAEcX+Xl$8A0H5@Xw<+`3}stx|2H+vZNUh(<*Lv4w5R`S#xFDw?A` zeem?pj8BByIt0kbM`4c{VmR5UudF=O`%qy3Lp+9v%Y3Sk!kMVg+Fh6qU=W$g%eYZ&{?Ne@n}tRNL@& zD7{?AxI)LI%)zI)dK9k9h{iw?etV;CrcmDu7)}fhfmfWJnu@e@43Nb{W0j9XA~3|B zW~huNDrfF1=CZ+^N~W`gQrLwzDh{`HVDPj$IspKoi`RRvp5)?we|Uta!?!SgpgshK zIac)YCfcZf!JjjV50kJsp#-qSOy^djG?9;?q}M8M3t<4r93t|i;c)&BWUX*ojoTE z0U&hKISgGrfFUm)o{`}VdlydWKp^IW0^Nd&^XjWD9U5G`>(h!GD>{40F$1)ew*IA_ z!t(ye*q*THRtBrSeWpH)Qep3!rELhE(rq}lw&>peCk&z4bL>kwB_iZBke8~UwN5YybpwNcn8AI7OJ0~`~Cf0|l+b5Xm87U+#L-8nN#iu;6eD%8X>hc>X(lyu>`rZe z|9to2e(&JIATzy}k4k%_jBsb*G@N@`GBK&uAoLl|H{jSr&{ zU`WW`Rmo>_)0*hiyPRcF#|!lrheiS5v6eN{+{_K!>rr^MoJGYsUx0# zCzw1tIk~yHxwWy85fPQ-;8NrtknioEWMLDkLV!LEB&9G9hJGmlqp6nlM5Tbk5S8(& zwxafg;nLs;0GybZ=&HIG;>}}tYU;$DB7T@*6D6UU9Np5t*d0Udi=_`y69;dUjTBeT zBxlU0X3dt=EM(-)W))17)%MQr4Bf6CN=)seCwEa9ZIpyt0U>jflN%cwo9i2_$Y_S0 zV}XxAtw*P5Jrfa@)~-1kGTvL8T0eQV<&497y5?AkB_dZnqV&< zo(|s<;Yaz>=6G651f_L$x0}i8k7o?inB$DpDQ5a?YUX@;_I+0Fd`3>+*lN$z=0I)d z5F@pp&g`KkcEr+}qvDEu17TGSFx+^wo*o_@q-O}|GF?5>o!yxZE;L&QiiNe8k_yZZ zfuTdmV?rTEhuW0Z=W81$4Cnd=#>U1*M@PFVYeIeeXZr_vzVt1OAJE~;r_X9*;u>iw z%~hRkgG;?7HGS3X{mn!DT~m{VC9`Q+1A_~_qbof#+k-W2!;I7c8nZW^(HWc28Xeyl z9s_Q3dSU`b5ipC$jiafFOFF3#LJf@LENv2O?BlI$qs=VI#%A6cT3U+Qj-`(+%Qy_( z=+&^6?S$cMZ$CFL?Wm{<^YfqS8{jegXoj#rcxPjij{jDAQ3buM7J1wt@6Aa(1^PcJIgT^Uz z!G~Mg!~IA+hHnA7DHlI~|uVJ9GuD7pcxO;l5w{v0$Vk13y zD1q4@pV$*i>x`kc0l@H>y3ok#pfHxJ=hXNF%pu_5l3aW6aH?;B78tCBMCl@B?UYp9 z)iph}h{l>`*2O#4ciDuT{hp@Q(+sCNx}oz8qo~pLj&Pn1xp~a#^Lu?MGcmEYx_WhK zxtYOiqfp!FDXllktFmw9$0n7=bUk^jD!ktYh1SCBnio8>C_U0-jIYlx za74(};pWa{M;9=JhTTYOdju(fr^AodVPHT2QCnL;K;XyAmr+6@5WBkK8C`Mo)|mL4 zKBTgM;GQ^oUp&1xmP4;II=(G3wk15eF*LF+IJ`PAtinII)R&avF2O&0061)V)~WJk4;tqYI{2a0ghO5g8QBWBAbwAs8;- zzYl8-vq*vAmNqz9lqA0Zq#&J8YD7?SUA@Xl!5z`@U_cM#2lYooXhdx=xr!80?iW<* zLn`+4W4U^88FDdlNuI#uiW9zFoStbZD|hmYLAvHylNf8WbDX@CTjOu;jJI~e^a}1U z+|ot~4&~JrAI%WD-4G17*Vl6cLm;e`1%=TZoN=ImtU$k>`-a+f}zEb;Oy_V6ii^UQQ|t1BoP8ye<9I3Woze|ju0FU-#MHMGz|!gG_;23p!4 z&E5x+uQs021z9S>ntWNvB}K_*vMR2D}@SB6Anxq20O zlWIdF3{})H!lE@nVK+Q{vK(D&gTlah-U|%l$j>+MjyLJHr{7I??*eC!97k7{y>qIy zJ=4yqgqbqb-2;PM!1&Gs5OI&i`T5a~t{X`y`N`=Vk~8yzO)Xr8L(Q!T5mCH;>01Eb zo0slxZ{I2^3MZ5Cc)XN|XquC2O=v`>i^naWfZC973xbA>fM6vlgl=JT+shBMSMD2B z<`V$&yXEe4!__O_**)9QCBxP+#o8X)YBWE%8VrUwrXB4KRAE2S_ zsiq$7;M7=FK0P`4eu8g)v$!}tGTK>D&1E>))XJp9Esu`#eCb;l-|b6J7($Hl_KeT> z@Ksj8+ToN7J$#a^?MrAUWLx?d5*4;MyA?06(y{as*0wI zmR`KE8O6XPLf0TvTQ@+1=u6P>P*HPI#9N~k+_i}%tgMOQ5y&~;Ap5|-;8auN6CRFF z^5%zUVK_HEZR0{O@efLKb`!qN@1?GlYU`M6?EpEa13?olAQ-7{3=t2smu>GHV{C?1 zz?$1Sg(swYl0xx#Weat^a2`T3L@&onOdaTI%e28U%hfA zQqM3--xxw)nzcPq0jH;LSeTu=y0EzYa5X3}2q%vV(jfX1G`&>_Zb~XnSS4GGf&~g~ zEG?@ii6DwgYKe-g3yG);iw3#*bvL)e%BTN@BrwcormRiR@)(|l;o9;83-{zackg^K zH!rfOxumFQh>m`QfpMn2vob9GejVDB@xW z!9!U!#=wMXWNx6KsIIR5>8GE5b?)4+KlwykLj#YLaaU4y#wyukuvRFH84_hEC9T7e zpO}WQsQNKI?#3yylFB$o>gK}I`rQ4#x~Ares;RNDpO74AY`&S9y*0nUV|W&Zkeb4@ zfMH<+6@8kW69mH)8wU*qEI~}%UtKG~#6m_w!bn<%M9}19p4xgSafz?L{`$u&e>;Ev zJW2{-E01-QSG1Lrw~&=HLC6?@{6snO1A2rvn?!LL%1GcH{bHX!g0bOa*lB3%{?bru zNA0bW(fLBIbdd+h`|~}xgW26@%iVM&V2<8Em0VIjDoc++Duv&kQrbXVQb$xAb}8Z}E~lZLzQzel;cOE)ixJA&0h>3ss)z{~~yLes@g(3H1 z0^87}CbVBI+N%oXUWRhHCF@WiW0!-p%#b!sL>N*f^*`LAjpLP+WROULs@mntm#<&Hu1h424Gh-}t;W}` znCCx~N!<}nVGA?;iRMH>5j0%un!u#40eRrgwX43CcYyF7jVnf6UQ zmg2h^K70H`35RpCx38(F4Du)8aZ3Ex`Li=JPWJOY*nfKPWbg6Dc6I+sWaTO`^PwPP z?=(FwLpjRW-s&UXe%`0)aj*aN3_*&}@bvffMaiPHHMN2R0@jxw90UC6p6rKvPY-wZ z4<7Gst!W8tr4q-ERE}ds6(?0PV^+gW=WQTJ$+9H@Lwr?TJw30x=XSqu&iU?l&+Snnq5zFx1T>3_ zLC~^vJKj&jl6_^#-;j8JncrTruUv2*&?3vX=Z{;~j^*!}CFgm|b1!d$Ebe>3vGd2t z@-{5Lz6-ABBG-5Eb6@=WmYiEIetj2Q&&BUET9&urlEWq0s4KYq@s1~!_a5*4&vmSb zAR;*DR20^Aed<`&IjjDTn|N6w_*FOHSB2;IKG*Z$gMa?+Lx&Cwx3_oHSFTz;_M5-) z+b^zMu_}D4V?+c2yz{D2nMy_{pXk@)FLmkZL!E8WXf{jDOwt`r?EJmg`#0TMgm*5- z)H_jQmCNPCC;#!Ue=3vC9lhg&A0GM93wu|Mj2vAxH#ggH@4X-2`|02Monx}lMz6h- zpi!GmHbx#FG86lIm^s{C2+y|Vq-qccBFk>-f%;&r@Ucht<#Ks=hia^MWW@Tm5g|XP*7R;1f?izW%p< z^S8hG(8K@t`cknx`@rx2(cYn=Q@xdTj$&$4Obo{Z6&Qn^fD_f;m-){7S*5#-RO zL@JfVxe7`v(up+ITfDVcr*Y0A;@_5FHJjww*XPo=PfY{^149?>a(eG6m5O?NY&`MC z(IW-tB|S7aFuQHryId-n{)OF}UluM&w*PHlt<{a1tjy?>Tg zVHdevfm&k}XVaw9If6u*WRN12>>-^F2m(l@QX~@zf<%ghNf87|5{Y;*Ccqej)^Dw! ztk-()-ly^xS{cq+H8VSH4!?dV{i7f49S|L^+I7p0jBH5WpB$tpO!Pw->WHYPCWjkog6)0EE(bv0yOs1VwB8f4Ee4CI=2ITWb z0P5i}l=97Uq~axr*MTuja%nCu&<*Df{-7%i8%jioqDW0oPnp+VdnLPn|Gw3^wqWgz zH(%2>yrNqfV*o{?QCA{AJ=IRs1eiK@2w9{x6 zua#0b7lCq!k5l8)=%kb)Q$LxlRLZ(oESeJ|CkvivX!Y8G#sU>!wtK}y1RSAk&z=?inFu5i6Dtn8r6(WT5FV6CvyjeRDaPQJ|*D6EZ?m!EGG;8H`&5DTDGDh6ni41xqAFjpL9|0~~S zsS{kc<36-fB$6q-_XH+QS0Sr!yy2FUAO7%1&ZpB^{_HDX+&Vcn zA&DTV79*CzISoq1QOjx|LaCTs&Iv)F*nYzvw%_%^WdCr_P$KcuZ?jSh5$hL!qkai! zDPmb?m6xOnf&``V6hGYizuBPxLFL31O(`3^9Xa)IvXH(dF1_rL<+~^Z( z^z7kX&wOugdTgegdHwa{ZJlky=tL6LOn>pxj9A2k5G7z8nQV#=yni=)Zv8cSdfUN2M>RX6+^$q`gJ=fm1gMb8l+O5VdT`0xpw;} z2*Vn=YzHWC&ePF8h{!FRI{k7ma&muPCK=F{*+4qG3h&%PgwjgIq;h}=5_$Ujd->q) zH?s5EO|*Ap-$Km)bU63(4~SoCXenZ4vsw4XWHC5=>dSO@ZsyvZA7Ex?l_V-y6fJ>F}&I#*HX7{<9pQ`9+&RW{aBO5?ObA`r2xTR+Tgw_VTr ztA@yCe|GOl1WLs^XHQSd#x4EI7=r?wvv}{7h{)wW6m;1W>-_n1sjq$Qt2;)=&aFRu z_|V#FB~0wueLuZDE18}?Pe*$XsZ@@a_B}|cRN;L$-^uyW<8*Zmkw~Tx=kVI&yhba7 z_ZF=+&MTaa1-eoSrxd6Vyk*no)$F?YYKDe8Nu}OSkS~Y#Fgso4;DO_It~gWdEEE*< zcS7?syw_JE)+K_Gkz@TYyzuCTQWNhXsTrL>4wMlbd>Ar|jfh;`{e|BHY5sZX3feX4hK^nABc zL9U~1fa|WkldYR?Km@Fdm@AHx&9~E4=!1Z#!E0aD0^i+cL69HPqqFpsf6-O&@NNh!z0Ik(BGAX67kuW|s%eTM% zeV%^mS%iSLd?&-hgBYX9$T-PFfHJVUK;pTPqsi{B-ulI&ooaexKTECG<${(V7Q{Mh zbnJX;Z0tm4{ZKnk|2U7Qo&KH<_8rOKB|%^m2ahW@tP0tEU4yYH!;1%!l&T6fAE}%I z1l3Ghfe9AOQKb}(hU3J@7>_>u9bSCt6>_-(y}fHmrLq`f@ZzyHM0pJ=01erMR@JjF z=eh2^^`&h#S}&wRaURt=ylNd{X|1KFyC>}FS?y}BgX^!>3=J3#pGdGW%j=96g<$eAaRMt~!TC5*#{ePzoG?5|oRDxL(o=6oGF(^dx`z^@r%|UB$Y!+sS0& zo}%|2Ya^VCsD_rPT1J^XxH?1?62&7q5t&>n_Lb4p>vcqgVyS}A8u|)ah*$vWbjBwV zDM}T?)(wh>9#2rM>$osa2k0d=RL|`zAR@f~-7{=j9bt69Ye#gGR3=V^;xRfv5vM}& zP_H*ww{|D-hxA+dFsUu_8rNyX^ms$ zAQ){hMx%|!7=sB++>4}XEoe=l&_gDZCrAWnqtV7ttA>n>j4?M?S=gWIbUb?p7|vD` z=gys8_C?khnJ>dZ#p(PCu`W?~@y0pFYi|f2-W}50ZMor^8taD}o2ZkW417UeJ1;Tmj8c0!kqw7#)*ID^00bXJllIlP4#zQA}2)6iOV* zRu|f}GG~J`Cy%6;`c&HJh2EwDz2LTyZfRRfA2yr9^)#`5BU1dS*W zr!{Rb+L23z*sN!2F2&@GVcm)b#t1j<2zla10iY1CFo9XpgHwnXoD;^*&oMqWO{3Ak z`zZFn=0(0ViKWbfX%#4s9ep_ucPy|?silL>DjrO15wsk!W~R%WK3SwQo#n)6j8!yRhiK47=iFR>hAll5;}!*!{mHLhX_oO8x` z$8#^%IDdW?TODV|%Cj6lI>ouOv-IaDSJLIykT+}dEg2F8$7UD4z`}5w5s@Lj?Mx&8fAeI8bqm*um z3Wt_Uh0a;+MOZhSWNa!fF;+_GEhq;2ghGeM4rta4!oq|7mNa4j|z3|UJZt2J? z4jdJFIz7iu3pBkZtvw<>rqcZXUKUp}pZaK~LGjI}(0HsEM)DtGc-u$1#-~nnB@>2J zHbSY`FjXjAvsc&(5v%2hWt}zNgU8a>m0Td!PYwz%9?~df7Q7}C81BDU*tWs)$`P0; z!Vi8dY*;0n9`$r}2qF$-{-3RyJ;8W@S}xE~z>?@CC_H#il{OA<{u~2qhRLz`B*0WU zSa^+sxYYfM#=7KSt<~N}M#M5c*$6!JeFwyf$GAl6{u zIe6SMJ=08M%~Us^u9lO^H=pviy!R(a+#~dkkR-2f{5^)(uUa%iFCa}^e&ZKddAXAc zT8voLYTY=o+WUyJ6AktsY4Fk8(xg+4)q{ff5s4t;z7H8z4miAzsMI5lpSAQB97b8T zt``m-vy^I<$Tn-xn-MEcSFz3l*Cf@F2)0aj2}&GqB=<11ZpB5(G>_@YDswY+thI{~ z>@r77rNUY*44kt%E_{Li{`Cp&*wxNwKG{xWg)jY|GD<@u5=PF3O`}^eT~u6uwPMXs zz%ws}M3E(z)s!l#sj228mV#!_F@8T5>Q2{P5*Ef<@*7IDR%lFlapY zyuZNHFP59*dm3XD8&~J~gFl_cT4BeQ6gS;CM6S?9+p72(5SeUh!5J5s_q=Q~YPp4o zB`lInA&9fIRSt9HP}|$Kdt!1_o_+Rv_J;S~WK*g1<(~&>F=EZk7E|IQyrLOJJfFRP zh?fpknJYW4+nVFp>5#pzlo;quvirI$@7|WCQWLTnM^|qbx88LP{ex`;fni{NTK)X^ zoy6z$;_wR*D^7{h^r>PY-?SOLW&P~Kob#(mUe{TETsvypBvZdC@6d^ZH0c5WncsFX*kMOH+GkEM2Bb-+|xd$La$ld$!PC=%+L{ z$=T8K{?&u~ZLu_MH*ek+-F??bYg;yNv&m#?e&F%4MoST^T5Tk}IFtvagu^36+Vcs% z`tX_9zfwA0MDyw!Wp2HpgMpr2oDc9lTS;dU3+K8}=SXvMYy5l#w_r_p@fVP6QP?YQ zNo&vcexW+@D9^q67wj)Os-b7p^|)16@2T8;^KQHQ=Jz$$uDi-*(iyFmjz(X`XenaV zYL#RrEo@nr=cR*1o_JxL|MZz{{P5*zj-9SA5(~|DpPS^tzn%o8xbybST)#SbQ8Gc? zBP^F1962;j6om^941xJ5<(esSF={FCD6uFUoms=K^;tIeCn+_AYUp{UygA(SPd+`{ zRp_Qr=p<;)IcycQ6tTk4no_yW+3_;Fuj}IZebfBWSC8=VJ61A26;~x>QUS%P4AAPOxr(>122s#Gf>&N=qKx}SV@H6j*R)LH%_X%X*0fmYCw z*0iUSI4?}pw7k%DLwW6*^-&^7YNeEx7D#_f(Ne_n-YM@R&YUk|G~9RRN)(C*zI>qh za2B)Rkoyf_w# zwUkgX!IZdVOer>yV>4RzO{DB0y`y~J{r|9(NF+tI7M~W-QpDP}^{UYa`HqN)I&pTE zKmA6Dn|AiIW-!GYrz#*CC5}_0mTbD8kKfV9vC~x!9Y4(0Eo*o?!~5|kzsols`U^S> z!=TlhBGyu3dGVZ^vwZ$3)tFJ;;k0x|LHkg&VtA$9a?91>KiaY_8t5PNt)izchL-we z3h#Yz_uc>Wv(;*&uqf8eGHo^g+GvfJW=WpZs5K_J>&_3eapRU{H|WseSNYCk-{9ck z1LU$@^!BWyqpcqkB;I5&@o8ZFq}Mbk~3${fEaSw0)@gLJ>9ElZ|f%r;z_DrEYe)hFXH3(L_AuF@9XQ2 zGMTKrRaHYPqopDiKzn=MKJdW5{p-Vr5AA*Z^+ScTXV0{iO2u@sIF~(n>QtATJF{{_ zhc8s3Kuwet6BSLVp+qU86q;PVU8ihXdFPce36)OeC6#JZ$y8PafsTiAmXyaV4n8+~ zfzAP9sO>+$_8XgOj*{E*un+jo{WZQN9=)v6Ow6a`@zCdS9d(?^fK zab$9GJfn@#xlGPyvRQ9}Km{gH&N~w}8m3$>r%I(_DvToIoHb!1H04SqH8)pEmrJ!w ztzJ)sjWAIUBjX}(ym;e%bN-ij$+zjs$3Ax7cyC|7eJ4e!rD!SfK7X#a`h`{Jylyla zLA_o}XsvZBnIe%$DwNXRdo3cyS!bMgK@?fzz0=M)V;@!kT^T9e6Sd?u5LSVB@^;bCf$ z2ofG}&8l_{Gzb3{_Py|nqeaA6>x}nKE2XtDT5E0Qzc}wmyrYQqi-J;$SW5+q#qaNM Z{C_K&T;}pwGV=fc002ovPDHLkV1hzC)~o;k literal 0 HcmV?d00001 diff --git a/installer/images/installer-header.svg b/installer/images/installer-header.svg new file mode 100644 index 000000000..70ea2fc5e --- /dev/null +++ b/installer/images/installer-header.svg @@ -0,0 +1,722 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/installer/images/installer-wizard.svg b/installer/images/installer-wizard.svg new file mode 100644 index 000000000..fdbf7d54e --- /dev/null +++ b/installer/images/installer-wizard.svg @@ -0,0 +1,812 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/installer/images/tango-install.ico b/installer/images/tango-install.ico new file mode 100644 index 0000000000000000000000000000000000000000..e5358d015d5ed014207a56430c6a80ac7a4421ea GIT binary patch literal 45182 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 v�}dn|_VgN8gdJ@5T4ygZ2#kzwZfLPED73Bk@d@_z#3af?Y`HpUM6ofUY!s literal 0 HcmV?d00001 diff --git a/installer/images/wiz.bmp b/installer/images/wiz.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d71c5c60804d8ce564d8d67bafbf04fe8bb52285 GIT binary patch literal 154542 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
    cDAiyc8%jj|eh*a}aIey}*V9FHltNhd z8zoogAK`WzzI{C)Mq)?%nNK8pdL5C+_2&D9*3Zm~RA>RK6aM6Eyz)>e(BhN7vVSSaN8`(W+y`aGEN zKqwGma1-w3ejEg{4`hq0`9I`A7JtJ-HKsYs9L-ngkQHV(qZrhWWN`9*UxOiCTe%_2k6Z zy6WE7m$H zQ>;}ymI=O5wnPo<8R4nL{oFGl88_>Pbq2J-dL#|#adBHeTD|%RF2IxeT9O(p?Z3@t$j&c9!RKiDi<`ZdB=D7mF025$6 zh0R}c80Pqzd*SB7SKM~p+l4er$C?>58*8@MKttS&y)|n|T1c9rSW8_C8!msC0XMBg zEe!Ysb!2$lV9f;dSc=M}(@B<^h?|STIum%?SPv%#WrcM_yah#5N7G0^n zrKc96mY_2RT#DK<;6m4UYUQk@u7}g|zV1nJYj??dBpGMC9PJAZh5~~je`25)vXXU# z`<0Dy(_mP0-(YzG7xP@KD&)@Lu;#W2tV_W^v-ZTRD4#ve�aiRkJ>GoLOh(ULw|{ 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 U;P!yq18xtvJ>d30iF)Aw2dMk1!~g&Q literal 0 HcmV?d00001 diff --git a/installer/picard-setup.nsi.in b/installer/picard-setup.nsi.in index fdd92b7f6..9ae5507fa 100644 --- a/installer/picard-setup.nsi.in +++ b/installer/picard-setup.nsi.in @@ -1,16 +1,24 @@ +; Modified to conform to Modern UI 2.0 + !define PROJECT_PATH ".." !define PRODUCT_NAME "%(name)s" !define PRODUCT_VERSION "%(version)s" +!define PRODUCT_PUBLISHER "MusicBrainz" +!define PRODUCT_DESCRIPTION "%(description)s" +!define PRODUCT_URL "%(url)s" !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" !define PRODUCT_UNINST_ROOT_KEY "HKLM" !define PRODUCT_STARTMENU_REGVAL "NSIS:StartMenuDir" -SetCompressor /SOLID lzma +SetCompressor /FINAL /SOLID LZMA Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" OutFile "picard-setup-${PRODUCT_VERSION}.exe" ShowInstDetails show ShowUnInstDetails show +BrandingText " " +; We need this so Windows 7/Vista lets us install what we need to +RequestExecutionLevel highest ; The default installation directory InstallDir "$PROGRAMFILES\${PRODUCT_NAME}" @@ -18,9 +26,21 @@ InstallDir "$PROGRAMFILES\${PRODUCT_NAME}" ; The default installation directory InstallDirRegKey HKLM "Software\MusicBrainz\${PRODUCT_NAME}" "InstallDir" -!include "MUI.nsh" +!include "MUI2.nsh" +!include "InstallOptions.nsh" ; MUI Settings + +; Make installer pretty +!define MUI_HEADERIMAGE +!define MUI_HEADERIMAGE_RIGHT +!define MUI_HEADERIMAGE_BITMAP "${PROJECT_PATH}\installer\images\hx.bmp" ; +!define MUI_WELCOMEFINISHPAGE_BITMAP "${PROJECT_PATH}\installer\images\wiz.bmp" +!define MUI_ICON "${PROJECT_PATH}\installer\images\tango-install.ico" +!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\classic-uninstall.ico" + + +; Abort Warning !define MUI_ABORTWARNING ; Welcome page @@ -36,11 +56,15 @@ InstallDirRegKey HKLM "Software\MusicBrainz\${PRODUCT_NAME}" "InstallDir" ; Start menu page var ICONS_GROUP !define MUI_STARTMENUPAGE_DEFAULTFOLDER "MusicBrainz" +!define MUI_STARTMENUPAGE_NODISABLE !define MUI_STARTMENUPAGE_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}" !define MUI_STARTMENUPAGE_REGISTRY_KEY "${PRODUCT_UNINST_KEY}" !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${PRODUCT_STARTMENU_REGVAL}" !insertmacro MUI_PAGE_STARTMENU Application $ICONS_GROUP +; Components page +!insertmacro MUI_PAGE_COMPONENTS + ; Instfiles page !insertmacro MUI_PAGE_INSTFILES @@ -56,56 +80,193 @@ UninstPage custom un.RemoveSettingsPage !define MUI_UNPAGE_FINISH_TITLE_3LINES !insertmacro MUI_UNPAGE_FINISH +; Reserve files +ReserveFile "removeSettings.ini" +ReserveFile "${NSISDIR}\Plugins\InstallOptions.dll" + ; Language files !insertmacro MUI_LANGUAGE "English" -; Reserve files -ReserveFile "removeSettings.ini" -!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS +; Adds info to installer +VIProductVersion "0.12.0.0" +VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "${PRODUCT_NAME}" +VIAddVersionKey /LANG=${LANG_ENGLISH} "Comments" "${PRODUCT_DESCRIPTION}" +VIAddVersionKey /LANG=${LANG_ENGLISH} "CompanyName" "${PRODUCT_PUBLISHER}" +VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "© ${PRODUCT_PUBLISHER} under the GNU GPLv2." +VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "Installation for ${PRODUCT_NAME}" +VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "%(version)s" -Function un.onInit - !insertmacro MUI_INSTALLOPTIONS_EXTRACT "removeSettings.ini" +; defines for newer versions +!include Sections.nsh +!define SECTION_ON ${SF_SELECTED} # 0x1 +!include "FileFunc.nsh" +!include "LogicLib.nsh" +; Install +Section !Required req + SectionIn RO + SetOutPath "$INSTDIR" + SetOverwrite on + + ; Files + File "${PROJECT_PATH}\dist\" + + RMDir "$INSTDIR\imageformats" + CreateDirectory "$INSTDIR\imageformats" + SetOutPath "$INSTDIR\imageformats" + File /r "${PROJECT_PATH}\dist\imageformats\" + + ; Write the installation path into the registry + WriteRegStr HKLM "Software\MusicBrainz\${PRODUCT_NAME}" "InstallDir" "$INSTDIR" + + ; Create uninstaller + WriteUninstaller "$INSTDIR\uninst.exe" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "${PRODUCT_NAME}" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\picard.exe" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "InstallSource" "$INSTDIR\" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Comments" "${PRODUCT_DESCRIPTION}" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_URL}" + WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe" + +SectionEnd + +Section !Imageformats imgs + SectionIn RO + RMDir "$INSTDIR\imageformats" + CreateDirectory "$INSTDIR\imageformats" + SetOutPath "$INSTDIR\imageformats" + File /r "${PROJECT_PATH}\dist\imageformats\" +SectionEnd + +Section "Phonon" phonon + RMDir "$INSTDIR\phonon_backend" + CreateDirectory "$INSTDIR\phonon_backend" + SetOutPath "$INSTDIR\phonon_backend" + File /r "${PROJECT_PATH}\dist\phonon_backend\" +SectionEnd + +Section "Languages" lang + RMDir "$INSTDIR\locale" + CreateDirectory "$INSTDIR\locale" + SetOutPath "$INSTDIR\locale" + File /r "${PROJECT_PATH}\dist\locale\" +SectionEnd + +SubSection "Shortcuts" shortcuts + + Section "Startmenu" startmenu + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application + CreateDirectory "$SMPROGRAMS\$ICONS_GROUP" + CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\${PRODUCT_NAME}.lnk" "$INSTDIR\picard.exe" + CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Uninstall ${PRODUCT_NAME}.lnk" "$INSTDIR\uninst.exe" + !insertmacro MUI_STARTMENU_WRITE_END + SectionEnd + + Section "Desktop" desktop + CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\picard.exe" + + SectionEnd + + Section "Quick Launch" quicklaunch + CreateShortCut "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" "$INSTDIR\picard.exe" + SectionEnd + +SubSectionEnd + +Section "Plugins" plugins + CreateDirectory "$APPDATA\MusicBrainz\Picard\plugins" + CreateDirectory "$INSTDIR\plugins" + + Push $R0 + Push $R1 + + ; Moves old plugins to appdata folder + StrCpy $R0 "$INSTDIR\plugins" ;Directory move from + StrCpy $R1 "$APPDATA\MusicBrainz\Picard\plugins" ;Directory move into + + Push $R6 + Push $R7 + Push $R8 + Push $R9 + + ${Locate} "$R0" "/L=D" "CreateDirectory" + ${Locate} "$R0" "/L=F /M=*.* /S= /G=1" "MoveFile" + + Push $R2 + pjump: + StrCpy $R2 0 + ${Locate} "$R0" "/L=DE" "RemoveDir" + StrCmp $R2 0 0 pjump + Pop $R2 + + + IfErrors 0 +2 + MessageBox MB_OK 'error' IDOK + + Pop $R9 + Pop $R8 + Pop $R7 + Pop $R6 + + Pop $R1 + Pop $R0 + + + SetOutPath "$APPDATA\MusicBrainz\Picard\plugins" + ; Moves new plugins in and overwrites old ones + File /r "${PROJECT_PATH}\dist\plugins\" + + CreateDirectory "$INSTDIR\plugins" +SectionEnd + +Function MoveFile + Push $R2 + StrLen $R2 "$R0" + StrCpy $R2 $R9 '' $R2 + StrCpy $R2 "$R1$R2" + IfFileExists "$R2" +3 0 + rename "$R9" "$R2" + goto done + delete "$R2" + rename "$R9" "$R2" + delete "$R9" + done: + Pop $R2 + Push $R1 FunctionEnd +Function CreateDirectory + ${If} $R6 == "" + Push $R2 + StrLen $R2 "$R0" + StrCpy $R2 $R9 '' $R2 + CreateDirectory "$R1$R2" + Pop $R2 + ${EndIf} + Push $R1 +FunctionEnd + +Function RemoveDir + ${If} $R6 == "" + RMDir $R9 + IntOp $R2 $R2 + 1 + ${EndIf} + Push $R1 +FunctionEnd + +; Uninstall + Function un.RemoveSettingsPage !insertmacro MUI_DEFAULT MUI_UNCONFIRMPAGE_TEXT_TOP "" !insertmacro MUI_DEFAULT MUI_UNCONFIRMPAGE_TEXT_LOCATION "" - !insertmacro MUI_INSTALLOPTIONS_DISPLAY "removeSettings.ini" + !insertmacro INSTALLOPTIONS_DISPLAY "removeSettings.ini" FunctionEnd -; Install -Section "MainSection" SEC01 - - SetOutPath "$INSTDIR" - - ; Files - File /r "${PROJECT_PATH}\dist\" - CreateDirectory "$INSTDIR\plugins" - - ; Shortcuts - !insertmacro MUI_STARTMENU_WRITE_BEGIN Application - CreateDirectory "$SMPROGRAMS\$ICONS_GROUP" - CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\picard.exe" - CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\${PRODUCT_NAME}.lnk" "$INSTDIR\picard.exe" - !insertmacro MUI_STARTMENU_WRITE_END - - ; Write the installation path into the registry - WriteRegStr HKLM "Software\MusicBrainz\${PRODUCT_NAME}" "InstallDir" "$INSTDIR" - - ; Create uninstaller - WriteUninstaller "$INSTDIR\uninst.exe" - WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)" - WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\picard.exe" - WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}" - WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe" - -SectionEnd - -; Uninstall Section Uninstall !insertmacro MUI_STARTMENU_GETFOLDER "Application" $ICONS_GROUP @@ -114,13 +275,49 @@ Section Uninstall Delete "$DESKTOP\${PRODUCT_NAME}.lnk" Delete "$SMPROGRAMS\$ICONS_GROUP\${PRODUCT_NAME}.lnk" + Delete "$SMPROGRAMS\$ICONS_GROUP\Uninstall ${PRODUCT_NAME}.lnk" RMDir "$SMPROGRAMS\$ICONS_GROUP" DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" DeleteRegKey HKLM "Software\MusicBrainz\${PRODUCT_NAME}" - !insertmacro MUI_INSTALLOPTIONS_READ $R0 "removeSettings.ini" "Field 1" "State" + !insertmacro INSTALLOPTIONS_READ $R0 "removeSettings.ini" "Field 1" "State" StrCmp $R0 "1" 0 +2 - DeleteRegKey HKCU "Software\MusicBrainz\${PRODUCT_NAME}" + ; Even more attempts + DeleteRegKey HKCU "Software\MusicBrainz\Picard\persist" + DeleteRegKey HKCU "Software\MusicBrainz\Picard\setting" + DeleteRegKey HKCU "Software\MusicBrainz\Picard" + ;RMDir "$APPDATA\MusicBrainz\Picard\plugins" SectionEnd + +; Checks whether program is running. +!define WNDCLASS "QWidget" +!define WNDTITLE "${PRODUCT_NAME}" +Function un.onInit + !insertmacro INSTALLOPTIONS_EXTRACT "removeSettings.ini" + FindWindow $0 "${WNDCLASS}" "${WNDTITLE}" + StrCmp $0 0 continueInstall + MessageBox MB_ICONSTOP|MB_OK "The application you are trying to remove is running. Close it and try again." + Abort + continueInstall: +FunctionEnd +Function .onInit + FindWindow $0 "${WNDCLASS}" "${WNDTITLE}" + StrCmp $0 0 continueInstall + MessageBox MB_ICONSTOP|MB_OK "The application you are trying to install is running. Close it and try again." + Abort + continueInstall: + !insertmacro UnselectSection ${plugins} + !insertmacro UnselectSection ${quicklaunch} +FunctionEnd + +!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${req} "Installs ${PRODUCT_NAME} along with the necessary files for it run." + !insertmacro MUI_DESCRIPTION_TEXT ${phonon} "Installs support for limited music playback in ${PRODUCT_NAME}." + !insertmacro MUI_DESCRIPTION_TEXT ${lang} "Installs translations of ${PRODUCT_NAME} in different languages." + !insertmacro MUI_DESCRIPTION_TEXT ${plugins} "Installs all of the plugins that are bundled with this release." + !insertmacro MUI_DESCRIPTION_TEXT ${desktop} "Installs a shortcut on the desktop." + !insertmacro MUI_DESCRIPTION_TEXT ${startmenu} "Installs shortcuts in the Start Menu." + !insertmacro MUI_DESCRIPTION_TEXT ${quicklaunch} "Installs a shortcut in the quicklaunch bar." +!insertmacro MUI_FUNCTION_DESCRIPTION_END \ No newline at end of file From 37f6a47434f966e9e49b77448e268c19a0ce84ae Mon Sep 17 00:00:00 2001 From: Carlin Mangar Date: Wed, 21 Oct 2009 00:17:18 +1100 Subject: [PATCH 2/3] Install plugins to program files folder and shortcut in start menu simply. --- installer/picard-setup.nsi.in | 111 ++-------------------------------- 1 file changed, 6 insertions(+), 105 deletions(-) diff --git a/installer/picard-setup.nsi.in b/installer/picard-setup.nsi.in index 9ae5507fa..e050e707e 100644 --- a/installer/picard-setup.nsi.in +++ b/installer/picard-setup.nsi.in @@ -9,7 +9,6 @@ !define PRODUCT_URL "%(url)s" !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" !define PRODUCT_UNINST_ROOT_KEY "HKLM" -!define PRODUCT_STARTMENU_REGVAL "NSIS:StartMenuDir" SetCompressor /FINAL /SOLID LZMA Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" @@ -53,15 +52,6 @@ InstallDirRegKey HKLM "Software\MusicBrainz\${PRODUCT_NAME}" "InstallDir" ; Directory page !insertmacro MUI_PAGE_DIRECTORY -; Start menu page -var ICONS_GROUP -!define MUI_STARTMENUPAGE_DEFAULTFOLDER "MusicBrainz" -!define MUI_STARTMENUPAGE_NODISABLE -!define MUI_STARTMENUPAGE_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}" -!define MUI_STARTMENUPAGE_REGISTRY_KEY "${PRODUCT_UNINST_KEY}" -!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${PRODUCT_STARTMENU_REGVAL}" -!insertmacro MUI_PAGE_STARTMENU Application $ICONS_GROUP - ; Components page !insertmacro MUI_PAGE_COMPONENTS @@ -96,13 +86,6 @@ VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" " VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "Installation for ${PRODUCT_NAME}" VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" "%(version)s" - -; defines for newer versions -!include Sections.nsh -!define SECTION_ON ${SF_SELECTED} # 0x1 -!include "FileFunc.nsh" -!include "LogicLib.nsh" - ; Install Section !Required req SectionIn RO @@ -133,7 +116,7 @@ Section !Required req SectionEnd -Section !Imageformats imgs +Section "" imgs SectionIn RO RMDir "$INSTDIR\imageformats" CreateDirectory "$INSTDIR\imageformats" @@ -158,11 +141,7 @@ SectionEnd SubSection "Shortcuts" shortcuts Section "Startmenu" startmenu - !insertmacro MUI_STARTMENU_WRITE_BEGIN Application - CreateDirectory "$SMPROGRAMS\$ICONS_GROUP" - CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\${PRODUCT_NAME}.lnk" "$INSTDIR\picard.exe" - CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\Uninstall ${PRODUCT_NAME}.lnk" "$INSTDIR\uninst.exe" - !insertmacro MUI_STARTMENU_WRITE_END + CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}.lnk" "$INSTDIR\picard.exe" SectionEnd Section "Desktop" desktop @@ -177,88 +156,12 @@ SubSection "Shortcuts" shortcuts SubSectionEnd Section "Plugins" plugins - CreateDirectory "$APPDATA\MusicBrainz\Picard\plugins" CreateDirectory "$INSTDIR\plugins" - - Push $R0 - Push $R1 - - ; Moves old plugins to appdata folder - StrCpy $R0 "$INSTDIR\plugins" ;Directory move from - StrCpy $R1 "$APPDATA\MusicBrainz\Picard\plugins" ;Directory move into - - Push $R6 - Push $R7 - Push $R8 - Push $R9 - - ${Locate} "$R0" "/L=D" "CreateDirectory" - ${Locate} "$R0" "/L=F /M=*.* /S= /G=1" "MoveFile" - - Push $R2 - pjump: - StrCpy $R2 0 - ${Locate} "$R0" "/L=DE" "RemoveDir" - StrCmp $R2 0 0 pjump - Pop $R2 - - - IfErrors 0 +2 - MessageBox MB_OK 'error' IDOK - - Pop $R9 - Pop $R8 - Pop $R7 - Pop $R6 - - Pop $R1 - Pop $R0 - - - SetOutPath "$APPDATA\MusicBrainz\Picard\plugins" - ; Moves new plugins in and overwrites old ones + SetOutPath "$INSTDIR\plugins" File /r "${PROJECT_PATH}\dist\plugins\" - - CreateDirectory "$INSTDIR\plugins" SectionEnd -Function MoveFile - Push $R2 - StrLen $R2 "$R0" - StrCpy $R2 $R9 '' $R2 - StrCpy $R2 "$R1$R2" - IfFileExists "$R2" +3 0 - rename "$R9" "$R2" - goto done - delete "$R2" - rename "$R9" "$R2" - delete "$R9" - done: - Pop $R2 - Push $R1 -FunctionEnd - -Function CreateDirectory - ${If} $R6 == "" - Push $R2 - StrLen $R2 "$R0" - StrCpy $R2 $R9 '' $R2 - CreateDirectory "$R1$R2" - Pop $R2 - ${EndIf} - Push $R1 -FunctionEnd - -Function RemoveDir - ${If} $R6 == "" - RMDir $R9 - IntOp $R2 $R2 + 1 - ${EndIf} - Push $R1 -FunctionEnd - ; Uninstall - Function un.RemoveSettingsPage !insertmacro MUI_DEFAULT MUI_UNCONFIRMPAGE_TEXT_TOP "" @@ -269,14 +172,12 @@ FunctionEnd Section Uninstall - !insertmacro MUI_STARTMENU_GETFOLDER "Application" $ICONS_GROUP + ;!insertmacro MUI_STARTMENU_GETFOLDER "Application" $ICONS_GROUP RMDir /r "$INSTDIR" Delete "$DESKTOP\${PRODUCT_NAME}.lnk" - Delete "$SMPROGRAMS\$ICONS_GROUP\${PRODUCT_NAME}.lnk" - Delete "$SMPROGRAMS\$ICONS_GROUP\Uninstall ${PRODUCT_NAME}.lnk" - RMDir "$SMPROGRAMS\$ICONS_GROUP" + Delete "$SMPROGRAMS\${PRODUCT_NAME}.lnk" DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" DeleteRegKey HKLM "Software\MusicBrainz\${PRODUCT_NAME}" @@ -288,7 +189,7 @@ Section Uninstall DeleteRegKey HKCU "Software\MusicBrainz\Picard\setting" DeleteRegKey HKCU "Software\MusicBrainz\Picard" ;RMDir "$APPDATA\MusicBrainz\Picard\plugins" - + SectionEnd ; Checks whether program is running. From a85f433a616c52abec68e240923d500315a4120c Mon Sep 17 00:00:00 2001 From: Carlin Mangar Date: Wed, 21 Oct 2009 01:59:16 +1100 Subject: [PATCH 3/3] Install shortcuts for all users. --- installer/picard-setup.nsi.in | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/installer/picard-setup.nsi.in b/installer/picard-setup.nsi.in index e050e707e..37d012737 100644 --- a/installer/picard-setup.nsi.in +++ b/installer/picard-setup.nsi.in @@ -141,15 +141,17 @@ SectionEnd SubSection "Shortcuts" shortcuts Section "Startmenu" startmenu + SetShellVarContext all CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}.lnk" "$INSTDIR\picard.exe" SectionEnd Section "Desktop" desktop + SetShellVarContext all CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\picard.exe" - SectionEnd Section "Quick Launch" quicklaunch + SetShellVarContext all CreateShortCut "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" "$INSTDIR\picard.exe" SectionEnd @@ -175,9 +177,15 @@ Section Uninstall ;!insertmacro MUI_STARTMENU_GETFOLDER "Application" $ICONS_GROUP RMDir /r "$INSTDIR" - + + SetShellVarContext all Delete "$DESKTOP\${PRODUCT_NAME}.lnk" + + SetShellVarContext all Delete "$SMPROGRAMS\${PRODUCT_NAME}.lnk" + + SetShellVarContext all + Delete "$QUICKLAUNCH\${PRODUCT_NAME}.lnk" DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" DeleteRegKey HKLM "Software\MusicBrainz\${PRODUCT_NAME}"