From f3b76757f25e5d87bd23b39912d192525ace52b5 Mon Sep 17 00:00:00 2001 From: ivan Date: Wed, 16 Jun 2010 00:36:06 +0400 Subject: [PATCH] Added choice of instalation parameters. Redesigned UI. Added new logo. Fixed some errors. --- resources/img/calculate-icon.png | Bin 0 -> 2457 bytes resources/img/calculate-logo.png | Bin 13314 -> 15351 bytes resources/licenses/en.txt | 1 - resources/licenses/ru.txt | 1 - resources/systeminstaller.qrc | 1 + resources/texts/complete_en.txt | 4 - resources/texts/welcome_en.txt | 6 - src/installerpage.h | 2 +- src/libparted.cpp | 13 +- src/pagecfdisk.cpp | 14 +- src/pagecfdisk.h | 2 +- src/pageconfiguration.cpp | 802 +++++++++++++++++++++++++++--- src/pageconfiguration.h | 41 +- src/pagefinish.cpp | 16 +- src/pagefinish.h | 3 +- src/pageinstall.cpp | 35 +- src/pageinstall.h | 1 - src/pagelicense.cpp | 14 +- src/pagelicense.h | 1 - src/pagemanager.cpp | 3 - src/pagemanager.h | 1 - src/pagepartitioning.cpp | 12 +- src/pagewelcome.cpp | 19 +- src/pagewelcome.h | 3 + src/systeminstaller.cpp | 83 ++-- src/systeminstaller.h | 17 +- src/tools.h | 11 +- translations/cl-install-gui_ru.ts | 92 +++- 28 files changed, 990 insertions(+), 208 deletions(-) create mode 100644 resources/img/calculate-icon.png delete mode 100644 resources/licenses/en.txt delete mode 100644 resources/licenses/ru.txt delete mode 100644 resources/texts/complete_en.txt delete mode 100644 resources/texts/welcome_en.txt diff --git a/resources/img/calculate-icon.png b/resources/img/calculate-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0742e647ba80fab46a2254f86cff4a3d3c560dad GIT binary patch literal 2457 zcmV;K31;?*P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2igV; z6c!hwRNV9c00|jML_t(o!=0CTj8)Yg$3N%X``*l(H_Mxa8J1y~VL(Swv@KO&Mk#5f z)m9VRYT7C$(jW#zn2opJ z?VQs;-Y_t1MQ?I*Zq7aT_xqmj_j~R+KfxEc{}$FNXsC^rGvd@h=TvRjV@v%x{3( z0HKsd2l@wS@P&xFaAn8h^ zolk7pr=Eon7XorjD0A!LmZGiy7r?V^CKPziQ^37pY4}=IhOtH7$ot+T9PGE~OouT- zVA)ol30oqiI3LdjgJ%p2mo`WKc0mBEw&Y&Ha7SraF>_3cXh@^A!4DLEpzs2PA80b3 zrXx{AuUi6^HHwwT=Ey7O1n|t}?9Yu5zb`LPG*>4uT8$*mC)fD?>3y19 z0KI-CS*sjrORQmEh;y=G3<%E%GiT|nqK`%aczR2=SsFGLT1H%3Ie?}8Q;Ge2veOg$ zfg(8VIcK6|qxFbTLEanZGiY9pc%d$A`e}c`7vNv0hVX@^AG zC7E$aW*m|kmsG|jm2pUAM)&8EeFQz95F`f(e1!@$D$wV$r2xh|!g+XvfmK_w-^YkI z#@Hz)h~80J=VyBM>__*X_Fh4B+~pLHnJ{8b>kLT*7$eB~LN(gMs2&wYQ{wlM^qtcJ zo(g=lrh=-&%u?G@vjeV}s$bL;JQ-qaap29%Bqfn-N)t*QUS_4Pz}8 zD>u2*gw&r#gF#Ajoo5B}1I@O!4gC7Sd#R|1VcU7kN-5&U`}ozLUZAXc${F6!C<9kq zJCA5AcIuxo%!m*I3`PjLteX}tTPWb0;dD1%Hcig;hwp%#>yvdn?zrW8>g#G57#N_f zt&R5fcCy(llk4l5TvyGe9i8NyfSeoPxIQ^AAm@1W_Z??^-4qb{MTj}6fj~$hfHElz z*8$`b{Ue4tWj2?so8D!@*c#&TI13gmVEOXpY}~k!Y15{$XU`s*rc5T;v4vF5Bb{|g zWlyz7dwTeE=XR8@P`=JH<7O~hYcGxP&a8TyW=jt%F`bxjpqj(@9LuUsjKMt_%UAdAIh_!O}+(Wfy72o zn@Xhl?~Xynj0qEo7<^yjt2`LTRb(?cDl04L>gpPC@`@EJXliOAnM|QPMLO%^tGstS zPZ8h$Dap16kX8YW*WJuRiS<0TV{YD%CJ!Q1U?TycgMj|QH2V*xIdITp=!8cy?UG8n zgvVY@>(-CB;f8t4ojZ2~KsX#`*|KHy9PeZA=iQ{T?g;hqBZryOm_P_?MDv2!L>`&d zHX?`ePf7qF4Zd@JjJrjh{V^pGgvx4lmsu=j!n}0KA@E zghPsk+Hs(dVRRqJYJ^qEB@HnS^neYbRS4Mjh82xKVx9jZ{Lr90#aa?4j@a%Ac|th0w1G#iRWhJJ)oso zD-Dm-HZ&0LIE*$LeFli~Xq5g$f)j&1s1tE+ywc~+Yx?;1)CAU;CSb7loUj)NuGz=JI>rnA+=)fJd{i*aZNFPJU5Hb>@ucVoQ zl4`<1@-4Ys2rZ;}GE!V3reE7k5I6+N8EO3>hp%$jA|PUGE~(0}=taRTj|(>KSE!-G zU|U#~jTAI~kI>|K$fD|Vo{Eh2QJFs4?As9-6B4N>EP&hYT(Q%${JX|Zs4LyGV~cQ{ zOn%QAUJ)3B!H`QOm{~W#{MkO`QCPDR`nwNs)kK38t3wu5VU^S(Bc&MSVw@9jh9sTE z^VnOy0E2k>o|c+Fi&IDN++Dz5d%HV$#jYrgRd8tUZp=wT4l@xBhv_()qrmc+F);%`RSA4$5*#|xOYgodl-Yw= zg{6q1D(qMTcJ)`0Wp#Ku#QPObkPB4<;-1CLk^h`^D1Elg6a}91AuywT*EZI_{SSh` z2L#qI6KKJaz596jhaJqWPn@N5%7M-SxNK6C@~SE#MI~e?XI=55oCq~ymYyX?O6 z*999g;{sd04a_*!eT22IK2JKCPb8&{CByiRqVvEZmNa*BP3^#WD=RM$94)+t$h?(^ zNCi$N@%M>CHS=%3U8oCIMvu3eNCD3Cz>fppHQP6@7dtku$M;->kXSNI;2ApF4|C=C z6yK^lfDmR>47;q3lIEXLcJDW-N+uXf! z&bfD^ekw|#A`u`#KtQ0%NQ*9xa&WfDy5uK-fFOgA z5f@SO%)ZF+@Fg04`P^db^x$>VYOvK}O14FOf?CP=g1~WqTau0eg-Bhn<_viYy&Gz7 zJ28St4hKb!*d6gj-l25GkkBN=uKkIoGPk&MBj*KF?@`9LA;TL&IFh$)Q_{VWxw_gt zE%@~Bj{h!pM!S*pt-e<5@&xUC)c+hU!>0rK?Mpo7XvSHzIvO0B%2)^r9Xbap<-~nP zcy(%Bh)Bur5A~u$$|2Fg79p($_lsA7jjKGUA^*jLh@!T(wk*WnyOL79t!|&EZ1TZy zUU(AEL?Zx=woU5Xw}WkNq|y5FHT9C-5AWPY)0;0vEv2t=2iysJH~czUTJ3I1TN6Fe zAn{MgZ*+8YoQB5k>Qg+ldCt+?`36FCp~46dkjHq1^in(AXf1o&E1WGRCOVv3j2}xc zyN%Nqhoy&|Sr^;;4`<6lNQ&m=4CL2oR7P`FdTIfav+npCH+I=3;o*2(*U(pJS zi-#=wnl8fxYIyhlHHPl6vJ?kJQgqNyk~7TemDf1hMjQ%51c(X5#VKftAjgfcqZS(l z2A2v`l6F1myX3dOG#ylG^mfu-xfu-j7hXX`M@RE|mAuUMQ-(j0@|#8)Nkdyn>sm1- ziHeH5L9$!2Yg-W=V4%R2*VdNF8KE=vT=Vmjpf7T`#r8g+@0XPAJb2Fvv)~y%9_0b! z;y(7$YBXo3Q)jaeKd%$T(218il}N4dYN!%uyfy7G$)jrYN{gCD z>WSau{L`wm2Tjn0#=;-YR_lzQyS*PorP23BV`=E=2?rBbS_aeN&W^Lsev$h39AE#Y z*YK~8aQKu;038lf{ZvueO)2kUHQeqi2n*XN!EX8)9)hLdIxBh~c?gBMI9yLmKuE~5 z6KYUrf5FSt`@YQ1&dy>ygkVp=5go{BX>UES_t0Q=$D8YSt^I@74Se<*&^usasykq$ zS0AssS>5N7?!B#k%V+`eKd%fw9NtY%9`t$m{v)`b?9zO;VXFZ)7&16$=16z}2gMjR zMD5ovBOs2;(UjS2p#=ZU5Z1SnKX!j;Ep^xzmR&4&%vZScct`_8Wn`2{s_@+Q_?XuX zd~Thj^uC8;5I=bfX`A$(&Y^{3G$_^X(ssIDc-!|vLZb|_u*hqev7!`7aHS^$00b=# zwS_IE;jgdW;De+&GD^yv;9${cpY)mIr$#d%=LfeD)ZO9aL2qr>0KP@8Odj;>ZJE$} zP;4v%)ZzrbTk=R2KrF8ZJ|!hZ%32>?yi6a4c)XL;58u=8@H{Fnp!b3mI-jfEONRG=?#b+O))=(~;_Sw!E|A-f1U8M|Z3)U8^sl z#>K&EyuU-l?#gm^IDJ&)u_eNX<2Axr!_(i_01F8mu^}jaQ5hfmM?+nNq2w*tE+8v& zH5XEG3J2PuMLz7gKdc&WJksa^hxc0P#=WM0>Wb1m=TB{wAG7JnyruVn(5A@adNTH~ z&wLer9G7m4g!YQcE=t8ER`IvuH+^||`G@{R_&8H&e$_by;FQzpWXzn`?NWaE((LQg z$wbSA|EYDwb(CaqkoNfqLCYe0;K67MgRPwjkRV7BNf^K#FXI2C5*6gHc*OTq{-4X8&LNo%5BK8EwN=Wc*HBn$WyluDOSri~XK~q!mtQ$NBcu=+p3G4b zar6zo5)897wmO~%)$Cs`Rr77!#*|wj)Op>hr=H8U)FO_yIA)XmRc40`{zehYvUA zc1X$nZ^fDE>3Gy^HXYDl{AzRzC{XL=N<4M0@n-0ioWwH~tZ*g7AaJTuykE=UO3L7>E?K z^n51i)jl~n$qwj;eShWBm;vL5&=mSm42JhZ!jV`e3oWw)^z-_iT+y*P{b3KAeognE(S)V_zcdU6QMooEtvc3pe@s&Y zuGzMHQ*=hR_kZzeA@#(PH6b1irtC8#TsKroe z7VIx8i?qDu39X^;#xa+ebX%!WefaJ&RZvlZBn2>CO0TK;m^XYzj-(`Mf7%{*+H^zJeQ##>NmOoI97`UM(p&EIct|{YNAS{yP&nHFcP9 zzShebVUy^1n&|>ms3e()rLdt^+QzYit|73$RoOW01V#vCztK^FMmnN|AjDgUPQX3} z)V&IjmcE%-XmS;U?mvWxpRX70{1_o@+bPWo^mJ}LZ%uWOL+bq035ZWWoVBB(@OIr` zKJp!xILbp8R#(S)(d#hw=J(Wg*n}As&2lDEuhp+!s@9|D1mDw&^7D^695E@~T_r5><&E5}OBRD;KC~GvY2fJDVAS;UmoT6@(eqDXe zVstnCIW{DZTW)ORb9*d#MVV;%Q(H^9vi|XumYX}JIxQ&n2?n$?}gd1>t8l-nbNAE>#p-bSMe1DW6hvL^NPw=DIBz)vIW1LfpGGJ zWNh>?@9)0e*x1UtDqo~tAI_G}&^H67d(9V5`MN(A;BoA=o>P!`o|VB@RJ{LVkcE_q z;rtS^jv)qcY7NK&Dsg210Dr;PGuS5*vMarb)9*3nuSl`cRiayH5Othh)C>+u$6cq< zM&B3buFbFOKBzP~k4(;}bYl}||ML4oxR3L9JXO0e2e>%6&NK}COHMi+a5pQ9yFSa3 z2~28fUaxls1vqpnOUp{i3>J%|l&ttT)6DAa&Ts&LHQM&&vx6-q!F~~V(sS89Jhu|N z;Hx?ie-JO0}|nmwsIj3`0}j_bj`s$!9aattrb^{pH;>|wye zK@Q|-W>ak?yAR`ROiWB?rfAn(vrWH9&Rr*7i_5)!+b zzdFQhkFQJ>J(=>4rME zeT6PGG&@R!C3S0x*i-a)xAb<=j0KXz(63-nM^)lzy}DPPfd)8)cPpb(oQ(AA43`z}Tw z)I8Neue)rCPYGOgams9_ss5oXY^9w90(3WWQxJB?N%Y}QW~E4Wayu{W??}4!nZY^U z)YN?U##35Ou4wkEtiC?!0@#X$0tc)jj03w>P1~)k_x(9O`8$_EK=tQcZNOHq``)Y2 zx!hUKN#ZV3@JuzL91mMmb1;(9epJnAGZ-TwL7tJtfeP zB@*NEM`ERVwed+ZwHi~k>Bd?!J15Oy6-KZ~2)xUSLx7y5q-5yzr{Bx(@XzkowZ%Ie z#%B?uOdsS&g2E>{x^^Bu`nMV}$@o;Je!aqgPD}ES@OVZezt{VnX0Fc&BRtGPsT6+9 zejufXXrnQFsDqx6^2XyBNq57>Fs|;{NE{*0=KwM*ij2QME>sXisa0ZD79riy-OJe6 zn7AxvyOf7jCQWb@kaKc!(wFm0)!gqE(ar599A}V)=OT8V8}zSHo9L(P&2=ok zLGR}dyhRNdJh?>}4Cu#p2OpbJQwRK;oanqrOp5qh_qCNFtM+J8K~_&jLBZ^>^Xli% zpEFG3y$Sjxai+i0#4nl;sGvmY*M`w#%apQ4VtYSxz*WY_`|(`DU6B*)xkVKf(H(2r zvJ-!=J^A+!4@dNXEp|)QI%TbP8{v|aVGI3+iEC@x8|&*-))hAUd=9;n>$N@6sxEVE zKb{}3H5`wPA|!}@O{6obvXMLkFC4m`E(KntI(}@D(0W@r-T1-6h8<9%5z}3KOAg?$ z-~`Js&VleBA7s7UH$!7T_KlLIDp{^UaQQ~(k?al|`Zmc@SFO~GNB?pssd4p(nz?k9 zTJ6J%OJB#Pr$<@jZGjZEE*9Xd1>XlwqvaZ(Zxz{ZiyA;K+m-7aJH9P4*Af$;O(;fb zL#h3H(mmj$DNeFn~6U~<7pY>&DXP-CQEJdPkeUfQvX<1oTQ(_q-BO$dJE&Lfn zKDhDp{8+VE?!A9^p$%v@?5`oDyP`N(2E&2W_j;*m{nj{c)8Z!E>gr0H8oKbnrTI%7&1+A#mTvzo<+7h$0j%h;Lsfz5ozYshc$-rlh3tCx@6PymG zL!necZbo>Jq^hcF(RUgpO!{=jyrQPN*oD^v>Pn4T>C=L+|F}6l<9C6!&%mD1hvUV& zmEZL0D9_GQ+3%;P1bq9KxA&wodAB!v<6y(=-PBp_(fD0l1$ev-NW@&u`Dn{tLOkNl zPDFd>Wu47S9RTP2)pM?;JNcHvav z3E|7gsFZ*V;h2)HxPD6=aR)g!E5^kVTV;cI{&&aMd%6Sk)-6dF7dESMtFG&Jm&bV} z!IHBxLi3EjJr*|r4#H$_O_|-@80O2Mz3eX2@nj>^2h>sS_<0Rk8KbAmC2$pp+f(B1 zf8YAt+|J2lOEBp1e(2=8TkHJdLxtQ2NliVdGC!ZoeUhqbdM}@iJ&{hU;2g-hH!_^q zH9Yr4&fW3ijHGc7=tdOrjW=R524~KCO+%~jdzky)uZ++EiMGR$W0C7baxtxDYixRr zs=g}+)7x&W#lvcyyqj-6>kT>b*DPQ-IqudsxHAn-C0c)5(6^eLR96obvXD0cFX}<= zwn0|@?esOhm36=3#go#)Y;_>u1^7kRkBDeAcew^V;W(R z*-1aDFWXgjP&sQhcg5Bx#YYf1Be*p;zaK8A^T_gyUfCyK$*oj>>2BZroN?-X9`4V% zyOYo~v$D3{Pe~ArO$iU%=wxdz4E}sSGjO^fa=q>+;(y=fMwYX&BGLcuBo$6>1ZrCp z*=@Q{{7nUQG4&W#-+hvn7~%-L+-b>?nay3VfrW($>CYG5Qfaqdl(Kv98VE&fC>;?J zm-S0svTeBN%bG7!`rK5GDw2#7kVmlkr6#{leLDV!b#HpEC4WS;Lyv%W`8k7nZO&(chwGmz}?TdeE zEm6#vsgB&>HH)nT4#BvGoiK=>Z#M}jS>Lz+w8yW7Rcc_tO9`5JrM5br2nx8A?ncC-@wBl41th8P z3whlRc^Wr`Y!r5+K3sxgb_;i-^FZ%^GS0d|OY#8i;nY0$krTD`0HMsx%=f3?8oNXU zdL6Dt&ykpn$qAl*{D6JoKf1{nWF<23VC)I%Z4Ik0ws)4!JFgPPPrLAd|qY zt7!?x-zwe_ScaF*QJZB-dC<-cjRw3|!N{RzT9{s30h_v<4r^akAG?s5_78O&qK-G2 z`9F1aeKbBVJs=RNJ&|{?xWkf7z2y+9Bae4yWJ%Fwo)ZyiOj!{PxSA3W0))@fJi*m$ zMz-Kf2Du4*jlI?&`$ICP@o)*}2efqGfV6+Sj0`gS~)9v6l?W#%QNCZAG<`--( zJFj}iaQV#tW%$c_okvIeq`578pze)6v7{1wCu$I3%He(JsU2u}t*q@?OG!%dOMI(x z?Y+Id#a1nqk1{305sf6An211*g?7BJ$j-iJE)1A-F9)j>^b@kI0uG?Zzm>+foz*&> z@m?-RBdOizw+1c~r1o(b)>G%qnvJ~bVQdO1$V?q9qK9>p{OW+wN>-+1lMW0+=_o5{ z6uQLlAr=&k3c@dg2y&jQ#&_}cQLWPN*T^OWaQI+6WoDk7n+8TDa9Wx8o&t>RX@%YPX<~5lQo&7fJb5IsX?qdm;|r!c5cJ#*#QDM+y1sexFM2_yk{efK9G4jc-SZCnFp*s3)8*fn{{ z##`_x5)uojm~uf_tpoh#b%CXEooeZe(3U9oTk@W-AEIrE>kD8^a)i? z?=Xfn;Ops%&t-cV0T~9uie(Q3Z>vVFRKg}G(BJYV0URRg5Nc}j-V(@8HRTWJ`tc)( zo;Y*`{`$(SCneXc)dyvlxu;9|8{klUW`8G`qy$^jADYE(t{4{TSI|sZJOM`q;W-8I ze-yDekJxP?FC2xKrcfY{x%*mFe(b`^B73U371Z1I`sw*h4%QUfAV1lPLoD$`qku!P?`Xi(Cc%6=v1>#zx6Eqgtm6dTBc$3y&udaL2P`4qWQk&;>L%E0`fr z1=~obCv@^Viz3V`BpE)!a$dR?J~4hj-6*R%AD&kfq72{93wXr0QE!d)Qsll7zs$HU z<5mR@vYG!W%k%vnzYn{C1SUs=PTAZ?i7Iwd-@_$?WS)eK=@8Myiv)`5VJTs7196}V z+^EF+h&98h9$JPDExYYV@>z@JzfCqTEi5cBpz8^i3Y(aWET7=}kIuZ38JeGU92{_w z*32d#wweD;jkNFKnA1j(-8QWOm3xZg@`m4 z1bAE{4d8#>fqt6&6A+hGomcx|<$iMWKCKmc_-0xawAa3dSi%H3aXbe3Ve zpS&J&^!9RcXbWhyJ5x6besJHu9E}o9Zal5W7!BRN+>DaUqYGXOGbSQE7fyqAhp-^E zWiJ0fT7>R1nqINcP(x}<;k5wc74zSaF>iiKD86)1^{875hVJShbW{Bhf5ov$dZtp| zz-PO(B+?VSG>hx;TKIFrtdzrh)0t6&$bqj=ZGmN1|)uHgBJV++pPAZ3k7_ttZ^4@N0Sn^R~@UM66=r)RRX8 zw9vG4=q+{m_N(XX`mB+4-@*kXa&gnZ<#k)$(osn{Y_DT*4W6(*dxs?74~&+4e>$an;==DDTs8 z+V+6cg}|@bRqS~!_HS)_2?>O@BYzkml#@xc*Pjc}WwxYr6m!H6DBeP=;>2a1W@2b# zKG7{^K^TAH%bCH#1OiAl?DRCP4sz6qMV_a#`pie(som^sI&7g9d_6g(%{M)1-jP3b zgSS~=xD@jIpVR|oQfOYJ(i3!I5094hJkC%iWUc;=S+mfVY4nw+C3JoLP zFTqQ@pdO=zj2pu2{2Qm~TTSFXI#XQkr&L;9e$TW~7ex<{&?bRS|ArX?4LXPx;c z;bQIeGATy?ordWfGqaGiH4n6KR2s^-mlxfyX1A6w&iLMw(i{3xg{-#yc)m-7coG47 zq~lvVirJdzd`>L9`3_s-T=4{cir{Lu4}5w9@!wt#Voo2e z9_3D?T0KeKMhCtP3*OF%O%?lGRbvLH*pYKuRqwt2Qqv`>m!^6Q9?{k-{#T z8&0HM(_RisGh`u$k+lk~Wjkb5B6p7Hu;|vp3z0NJ>B1=?;!5{!`injHX$PdCWp+?( zds*_!;dU|>SmV|k)FJR<6lKKF{)8`pM`-IZzV&+=Rhx+wnHkP9c2JzYc36&Vgv~}Y z#A>i?f*k$9JR5u!x-^|d;*%mt8n%=k4&QR=qF#i-E=?`iO5B5G$+&G)?bewfw54^s z1_426`QI$Simf0@SDCUwEP+6aveiqM@H&KVh`DFmIv7S42*0c5J0!v>g(g^7lqt;| zBNb%kH?4oCVz%n%69pb5U6sZeR2DnMa*wPFI-d2~w?BO9WdM1ULihe=Wo5O$O$Urz zJ%I()4nl|RTYBTk=EcRu_g)?QdZD-bd1i%!>_*Q?0BX0-gW#9!1nto*-@6M6`2={N zlOqv4u*Hc8+e{k;Q;&}8`MWJgQq2V)8~e?&_rcF5A^&rlPT~-+So-Y3lGFHnw>ouK zouoG>K)+-2j}jsP0BR*(j9ab$qBh7XV_|WrV(KNQTimwzf)5%je`w@4tIxLFiQ@_R z`xdBFxX%^K5KpVxhS}8SBqrrvPDi>UHIMv<%@7uf?ebXn;)(xKID*x!A6=V(f90xW z_O`X_;K=nQjv9l@H!gv@brWEb zw}+}^3AY07%wwm}7{P`R`Tb*k-+2U%PfWxtR999XBt?*@C<(pni%RiusnzJOS{E~T zd&{RB_th%4=j<9w7;|A`ZBdknAJ;7rT0On3pQ07HRe74 zn)hB`2-+GWXmhzWdLejW5b&{bax;HSwdoy zT=emO)O!znLa?{-LaTkAn8c;Hae*m{WT9BS%PSNCr&tfnO52`gpsSr&jq8{9wzQ!d8P$FkDWXqo^q2beN5#!aWBo6A z6*^vZvdumvpLr?gkjT6FC>lLzlQ#FDwxJAJuQhb%S|5^2wns*F<1hpuT|w5agRH4?>7=NZRqbrH`hep+BrY)M7-W-f-AkP z^ZCHnO^yyPLhp;SKh3p+>q1B-+Yfl48U}IiJophP)!ho%3arP;Z@gGN%(Gm6vDzTn zf2^wyEC^T|y*R({gm$%&WrK1iqdbjV7(~EJ&`Ny zV1N-o+RYq#pW7i;$ZXJjIt=ao^zj0Fl+CrkvY!tb0vE@>J4WdzXkZ<;wWY@4x7I{$ z;QKmkA(EY-UZq*j(=Ij3Sxos3B`v2^)-x4{i-gs~VGQqG0GUh1o<*WDfE<-GH=2FC8-CgfY*^&ozv!Ere~a$~*hTqe#8`+rOf`8H#GdA2W!N=uB&J`K`Y3 z-3KnurwIf6wge5=E0n^_5KiAQa%DY{w0k2l=&To!R~j8KS1vSV^mYo8=VsHvBTLE) zVeWLP7;!BoG3#CYoDQxQXM8OoCVZ@tsp4trEH}SZ$f#v)Le-@gchk0rSCmuiJhL%d ziuO(`Bg&g=O{P20)SOqHupUdySs!)E5bstjn#NA=;0-yix2`s}FNO1w-a-tFP&yDz zu8&bXaDH>6jX{7Yxb=@F5V_@2GU+eFw=b3$AjbO=D>mzGJHCD$;sWAC+9D&)= zBc6;~o+v>>wex$4+xn>lIhK@#_7@_=V4{5?_26-_O}gdVJfT0vIOQal{m{oT7Zh#2 zh!EUR?Pce($R0y>G-!Mg0^d>qtJ*+@u)`}uIcyi4C*J=GzI|8AW^3~@@68`bd9 z*;aEMA^mrH$c%?^1~j4F$Tqx`rJW9lP$EfLtFMYNY&3{NuwfSvtAh_Ztts-vRvDh% z`k{%U)t&@;o$N+ht9PdVl2WiYvlA2NATdg34_Kgum-TBelxnd$yp?tJn$HnkKew!s zX3u_D2B^>0gpLtMABD~k#gtBJFZ$9h{KfrQ`2{Z=;wXzQvJ1N3y6?qak}!?{&#YJU zo*y=IUMVG+kP+viTd@%OnehGd;l=l!kcGwhyqCF`2umJYfSxvaOG09}C-eiTJb#`n zGNdLG>;zFSLL1fHv=ihs5nC3&-2pKD`v z7oDTLQ~wO5p=(F?HYb*Nj$faP+bBG~jRc-S;Dm5P|B3ZC?dzK1#Iou#j%@>$ar#l! zotmsUsS8H1zE1~omk-8Y5d4ECv30BBWBKJSaL(^_%D0y3QRavvM5I&rE7ApTWaj45 z1ycq3Q#dj!sO==or$k)I#x}dz_e8}G4-N#68c&q>a+sC0`e0OkN%Il=`>^7-sYelX zN@vRw!Kjll1tsMTosp95y#+Dfaonn?aujj@9xJN?8$x90_n1UH%1gw6%ycZd+a*uJ zp}er#Mi#jA(Y$7YnYb+BvyhZL!?uZf5^hp%Ort6;v<|(PDdN%Ru}fM*lrG3nT@)fn zT^Xq4L4Dc#S}wa=hxNJ-zQ7$yDanP@lljYp(E7hK`=*%DR#7Cj;Ux`x-|P_g6ySEo zL}|aGRSguQUsV3t+W{Tl&c3x=P?c=?@RJm$)RyP4?$`Z5D*lOU6!UGMD&Cg6cyWL6py2Q`#rZ3e_`*=eYr8>o-NJb`_G(j zB|griHMP|a9_S2|R*^D@Je!kTrY7@N+`7Jeli8HSc>c;U|<1hOqA%kPZHLBBMB)zDIegt6hUea_q;kQCB?wFHxe6F9L1)< zwZxzO)K#6&T#~Fx9yk+AN(k<&I$fm^cannI4?HvWaa!!c{&LG``JfEq!M3^Ab-=uO zx%Xb%tK5jrnn^rDI?)!6K={O6&LLq5Ym8rxHfssvkd!%H-2|ButlLEOIPMG>E~Zs; zEi9;|001M~MuQNZPZu7R*4EDR&G>MoR=W@0U#1YO@rygqsPYHfT&2ptHE3f(>8P`h z6Egsvg!tS;w;3x>R+G%ElYRS%$Z*XH2zP0FVq&ES%8ADX&(ajGFg-+U~ zCtDoM8-$jJ;LoHI|E4KRCovOEQ!T-QN70R~Z$TGn2D{-bLa$O9c3vai%0RCr^&8ss zw3IO)i>enJ^Otvo{Hy)ObFF3suILPSAONyQ1TQk%--%XS@$=fgt1%z-d{G=;v)BFM z_wN|oqSW0`RbAk<4x2@T*WF>H+LNa|SU&#}ej6?XBril>R>gt8FgVJ^rJ$<6(42!4 zqe8D_CZFrHAqg8JQSn&kP4k)Dk0c>5Jg@Q09*a%w#@~X9JnsRo=03EP+w{G4^x`<^ zlVsMQ)Rc&>>ja)p@|7$}E0G4(Kv*a47rWg?)AcMguCCtAON4>|Qb6u}IaWvn+Cf%r z@8JTLlJQhmdq!!L3R1$ToVz*>M>8Y-92f=>(^Am^DZB>>W;jXahw3kI-n_mM{3yI> zYA8B${OY(8LhxFfx`tVMn&5mfr5Ec90d=z^x?!w39mBT@=gv2q!{uGV)4!h8Ondg7 zvM9e&iv_PM6TtyzE-UETH1NbFz&Qs(vMwm%l33AXl9Qk^-BHpbiwg<)d73Zld62R7 zwv6vH)(T)*ee>dLN++S`7n4FI|5ztZTcWxfZ$+rrOQ599Y&#lddh&&W>iNqb2u3&T z9dhA}^(2GT4Lpt)0mHq?Q_JrgQ$e&plFF-B6{}glk|}=+sfpURCP+O$@F1KGQF`G1 zWyLdmZAMC_G8c9q4%I?L-vryoxxqoHhJj&e7BU|zgHa2A-lXQ7I{YGK?zCeBcm-%^ zy+~q(No@tOs9t-@tEl=}R+lIIz4_BjGjl%DG_l@q7p-l|nss5J#4OjwO*s%vA(Np;z_KO#^l zl5^z7Ds|`{_A0%|3Mx9BkkP34kxF;<; zF&Ttl&SrynUF*<-A24i%xfO~d$?!=cP-;U)9qVirqL+tOo_QCiiNrw>T!jFeM3v;^ zWKnl@^;qiC`f|kTuZ4HloShYEo%DZPPv&5&vqLx4iLs@yRgu|UYi&iPki zmXgxq=1%K~dbs02(psw4xE}ir&(Z3!Q{qj9@Z(V^zs1LwC@IYEku`eXg-Ov+6g5k+ z-5F=|&eE>9<}^yZyEWK>fRVrf1A~b9HWE9oppA3;G&yJDDs;>)G^pldLtg@O{Fz zy-RU7LJ-Pdx;OS^g>jAp3T?Aro|?4AGCgQ5yDUL4+ha0Q|QKK54R^kb#ni0>(LXo}~>D{N`# zsfFET6WMDk#o+BMEtl9Cy|V%7iiJj#qbq4)(`VF_8w&dSPh3z?S}QG-124DkKRLU- z-D#P*a4q>{>mO)B$>`Zqm|kA?4-S&j(xSf_FEaUz2oYrkhNk2{Eb-(spn5YT;%JbO zSU`p>lxjtlIGQ^+rl?IScy5N_dSZwxS@ai&7K|AEi6h-s6ND2*8JXmtsSyXaA!^rV z_}8-L%9~2T(;b1vKHURbRV=8Ep+RU1qAqdt{aLL=XG_~vpQ+(yR}Ixn!eYXdsFbo5 zT=|Sb12-mrX!v2quHnXIBF@Kv=0ejfgN2UVRGNQTpd5T^%R`j2;UHZ&gnVGIr6V!ZsSyff?KiGa$ zbdxAqtn1SI&@YJ*ia*s3YTe^P7UIs#&M~a!mlfDv{CjhG*J7J=yG6L6wxjw1s|eAJ z(WdF}0(I2c>$c(r?tL70$i@*mzf-d`R5x_mvH&v8*R>p0**Vu1INQfX_{{M3i+w~^ z^RYXu2-)q#pwo)V?UvNI+CqBP8KA*;kf1d<(UKOy9pap(X(Q4VfC=SWI)bsy+Lt)< zH8dYOo)Uv_v%qR1ojYPZu1u8=vFI0;bRP#QZ^7I7m+ z`FT*v`wSmG0~jW&7a7-=@X8TB+f#?6ky)uH>`g^ESLWLc*+}CsJ3QbX#uUckj80NX zI*QnsQjkTUl2eXM3_`hVXY8??2sL4q9TcGI)HCUi{V%3ZgI5HoKE@MT@{AN}r zg1b{Xj=)g`jiB6oM%CdOtV00OA9cU@3+uH?j;wc{Re}8s4Y2N&a}HcrEVmR3SF!o- zk-s+8914*jWegGSDt%+=OHxOK37{`XA|xpkY{L<_h?jrg!gwqX;ZA=a2N_BJ04M3xzY=D>N^-qcKIP*79>R`AOubJ zvl^T#2eer5^*Dr#_8PV=LX9U3pw%HWHQoLwkQUkW*sOjTdJZKAa|yIwxgxtN05zfk zoE``1+hhtR{&1us2$KgIg9ntf;h!5UKfYlmuGH@8_qPynz{XCAjzB%TxydGdYGu-` zW{>*RqP%}@0iIoij|f0MHa#Ks(n{?{Y}EJ2E1^2``<4U?C4p>_QhFM~u3eEdie~f^ zPG_^0%JH?axY(0bHXy1>KZ7M`S_xqyuuP&X2$wKKYKI{sH9vAh>-A5Tz9>M{^tVVI z&PH1Shz!aBXQV)NkPV%(()JHyUWCPyM{FwpKg!R7BoauHe?=sVOIftTliALlxlzaL-$W?-aw6|8XZmBV9BTe4+2j`c>S30zMyA@bs8XsfLZub*{GmX@ zB^O3^h)@nUQd_34ct_*#kFf3?Ow*1)1=^}Rw64@G4mbca=9HU*NG zq`rT)3=^;)M*6Tyt)n_SEdOw)tAXua!}El0*dBY7`wslw7e~0pOpEd_2|Kb$6mng{ z8B5YQYwY`=%e#wqF*d@spkeqJ15U0>hshFGlPk z^Wqne7Ypp)q10U=a1b1LBXcoUF407D$f8v0@#jo!#IXAFjGy$JA!?#dEt{&eDBw2LsuLoQh?u~M;w2|uM zbM%Behz<6YXXFnE1@Lh|>+>;`WBPm&Pc-sP2=mBw@^nxC8zgU_2KN?-xcP%|nfHFa z9~Z&tOZbu5U1YBXZw^V{%VVwKg(jy(5*LcgkO25M5LZwZDYl&YMiiZ-5ey(|u$nlt z24!DLEmk|y{9e_c;uYbwU=pqk`eD5q@H0z@wqVQ7L)KNY+Rpn((%_TCrh)`!XIyp= z$i-Iuy!W@G5dZ)j>T`%m9qV_lX4HRJIsMuj@hWyB-sSzBZQg|CXkr-b-=h92iBe#4 z^L_G@#65SfhHU+@sxp2X-XHND`WtQzy5KPXtx*uxjQ1Nme$+R4^+K;F(&UwpV@asUV1Do=vZWsLSH<(&{=-Ml$H{IgJR&<2s%Sm_m z7-{B)3F+c2GIrnlytd+4E*nI|TzPS84X!MEZ7y-efY{_l4mvNR95*ykT}9u2?QkEl z7@yFf3e9}u?*RL$GrnkSE;jzPo^ z>0K1!)`V0hCe~VB(Y*SfD_qYsq{<80>%JV$q;Yr7=!b&Dw-WMTK7>+VTRn{5Awb}V PbRlFU6vb;q4TJv&w<}~% literal 13314 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 E0pr&QO8@`> diff --git a/resources/licenses/en.txt b/resources/licenses/en.txt deleted file mode 100644 index 3156759..0000000 --- a/resources/licenses/en.txt +++ /dev/null @@ -1 +0,0 @@ -License EN \ No newline at end of file diff --git a/resources/licenses/ru.txt b/resources/licenses/ru.txt deleted file mode 100644 index e575717..0000000 --- a/resources/licenses/ru.txt +++ /dev/null @@ -1 +0,0 @@ -Лицензия Русский \ No newline at end of file diff --git a/resources/systeminstaller.qrc b/resources/systeminstaller.qrc index 1f9a919..59f9419 100644 --- a/resources/systeminstaller.qrc +++ b/resources/systeminstaller.qrc @@ -1,5 +1,6 @@ img/calculate-logo.png + img/calculate-icon.png diff --git a/resources/texts/complete_en.txt b/resources/texts/complete_en.txt deleted file mode 100644 index 8e2a86b..0000000 --- a/resources/texts/complete_en.txt +++ /dev/null @@ -1,4 +0,0 @@ -Congratulations, the instalation is complete! - -Press "Next" to exit. - diff --git a/resources/texts/welcome_en.txt b/resources/texts/welcome_en.txt deleted file mode 100644 index 2a79521..0000000 --- a/resources/texts/welcome_en.txt +++ /dev/null @@ -1,6 +0,0 @@ - -Welcome to Calculate Linux.
-http://calculate-linux.org -
-
- \ No newline at end of file diff --git a/src/installerpage.h b/src/installerpage.h index 60907b5..84ce12c 100644 --- a/src/installerpage.h +++ b/src/installerpage.h @@ -17,7 +17,7 @@ public: QString getTitle() const { return m_Title; } void setTitle(const QString& title ) { m_Title = title; } - virtual bool validate() const { return true; } + virtual bool validate() { return true; } virtual void retranslateUi() = 0; signals: diff --git a/src/libparted.cpp b/src/libparted.cpp index f214bf0..4788951 100644 --- a/src/libparted.cpp +++ b/src/libparted.cpp @@ -6,13 +6,11 @@ LibParted::LibParted(QObject *parent) : QObject(parent) { -// ped_exception_set_handler( ) Init(); } LibParted::~LibParted() { - } QString LibParted::getVersion() @@ -25,11 +23,8 @@ void LibParted::Init() ped_device_probe_all(); PedDevice* dsk = NULL; - while ( (dsk = ped_device_get_next(dsk)) != NULL ) - { m_DeviceList[ QString(dsk->path) ] = dsk; - } } QStringList LibParted::getDevices() @@ -90,13 +85,12 @@ QList LibParted::getPartitionList(const QString& path) throw(LibP part_inf.end = (part->geom.end + 1) * dev->sector_size - 1; part_inf.size = sizeHuman( part->geom.length * dev->sector_size ); - if (!(part->type & PED_PARTITION_FREESPACE)) + if ( !(part->type & PED_PARTITION_FREESPACE) ) { if (has_extended) { char* type = const_cast( ped_partition_type_get_name(part->type) ); part_inf.type = QString(type); - //free(type); } part_inf.fs = part->fs_type ? QString(part->fs_type->name) : ""; @@ -105,7 +99,6 @@ QList LibParted::getPartitionList(const QString& path) throw(LibP { char* name = const_cast( ped_partition_get_name(part) ); part_inf.name = QString(name); - //free(name); } } else { @@ -143,7 +136,7 @@ QString LibParted::sizeHuman(const long long size) float conv_size; float coef = 1; - for (int i = 0; i < sizeof(unit); ++i) + for (quint32 i = 0; i < sizeof(unit); ++i) { conv_size = size/coef; QString res = QString::number(conv_size, 'f', 2); @@ -152,5 +145,7 @@ QString LibParted::sizeHuman(const long long size) coef *= 1000; } + + return ""; } diff --git a/src/pagecfdisk.cpp b/src/pagecfdisk.cpp index 8ffe181..924c775 100644 --- a/src/pagecfdisk.cpp +++ b/src/pagecfdisk.cpp @@ -11,7 +11,8 @@ PageCfdisk::PageCfdisk( const QString& command, const QString& disk) : InstallerPage(), m_Cmd(command), - m_Disk(disk) + m_Disk(disk), + m_Lang("C") { setupUi(); @@ -52,20 +53,13 @@ void PageCfdisk::setupUi() void PageCfdisk::retranslateUi() { - qDebug() << "PageCfdisk::retranslateUi()"; - setTitle( tr("Partitioning") ); - m_labelHelp->setText( tr("Do manual partitioning. To finish, exit from %1") ); -} - -bool PageCfdisk::validate() -{ - return true; + m_labelHelp->setText( tr("Do manual partitioning. To finish, exit from %1").arg(m_Cmd) ); } void PageCfdisk::show() { - QString cmd = m_Cmd + " " + m_Disk + "; exit \r\n"; + QString cmd = QString("LANGUAGE=""%1"" %2 %3").arg(m_Lang).arg(m_Cmd).arg(m_Disk) + "; exit \r\n"; m_Term->sendText( cmd ); m_Term->setFocus(); } diff --git a/src/pagecfdisk.h b/src/pagecfdisk.h index 5dc2eb1..23023ed 100644 --- a/src/pagecfdisk.h +++ b/src/pagecfdisk.h @@ -12,7 +12,6 @@ class PageCfdisk : public InstallerPage public: explicit PageCfdisk(const QString& command, const QString& disk); - bool validate(); void retranslateUi(); protected: @@ -29,6 +28,7 @@ signals: private: const QString m_Cmd; const QString m_Disk; + const QString m_Lang; QWidget* m_widgetTerm; QLabel* m_labelHelp; diff --git a/src/pageconfiguration.cpp b/src/pageconfiguration.cpp index 7dc9c7e..19604eb 100644 --- a/src/pageconfiguration.cpp +++ b/src/pageconfiguration.cpp @@ -4,74 +4,115 @@ #include #include #include +#include #include -PageConfiguration::PageConfiguration() : - InstallerPage( ) +PageConfiguration::PageConfiguration(const QString* language) : + InstallerPage( ), + m_Lang(language) { setupUi(); } void PageConfiguration::setupUi() { - m_labelText = new QLabel; + // + m_labelHelp = new QLabel; - QHBoxLayout* hbox_1 = new QHBoxLayout; + // mode + m_chkboxBuilder = new QCheckBox; + m_chkboxForce = new QCheckBox; + // hostname + QHBoxLayout* hbox_hostname = new QHBoxLayout; m_labelHostName = new QLabel; - m_Hostname = new QLineEdit( "calculate" ); - - hbox_1->addWidget(m_labelHostName); - hbox_1->addWidget(m_Hostname); - - QHBoxLayout* hbox_2 = new QHBoxLayout; - - m_langText = new QLabel; - m_Language = new QComboBox; - - //"en_US", "de_DE", "es_ES", "fr_FR", "it_IT", "pl_PL", "pt_BR", "ru_RU", "uk_UA" - m_Language->addItem("en_US"); - m_Language->addItem("ru_RU"); - - hbox_2->addWidget(m_langText); - hbox_2->addWidget(m_Language); - - QHBoxLayout* hbox_3 = new QHBoxLayout; - - m_labelFormat = new QLabel; - m_Format = new QComboBox; - - m_Format->addItem( "reiserfs" ); - m_Format->addItem( "ext2" ); - m_Format->addItem( "ext3" ); - m_Format->addItem( "ext4" ); - m_Format->addItem( "jfs" ); - m_Format->addItem( "xfs" ); - - hbox_3->addWidget(m_labelFormat); - hbox_3->addWidget(m_Format); - - QHBoxLayout* hbox_4 = new QHBoxLayout; - + m_editHostname = new QLineEdit; + hbox_hostname->addWidget(m_labelHostName); + hbox_hostname->addWidget(m_editHostname); + + // language + QHBoxLayout* hbox_language = new QHBoxLayout; + m_labelLanguage = new QLabel; + m_cmbboxLanguage = new QComboBox; + hbox_language->addWidget(m_labelLanguage); + hbox_language->addWidget(m_cmbboxLanguage); + + // timezone + QHBoxLayout* hbox_timezone = new QHBoxLayout; m_labelTimezone = new QLabel; - m_Timezone = new QComboBox; + m_cmbboxTimezone = new QComboBox; + hbox_timezone->addWidget(m_labelTimezone); + hbox_timezone->addWidget(m_cmbboxTimezone); - // TODO: load list timezones - m_Timezone->addItem( "Europe/Moscow" ); - m_Timezone->addItem( "Europe/Minsk" ); - m_Timezone->addItem( "Europe/Kiev" ); - - hbox_4->addWidget(m_labelTimezone); - hbox_4->addWidget(m_Timezone); + // erase + m_chkboxErase = new QCheckBox; + m_chkboxErase->setChecked(true); + // fs format + QHBoxLayout* hbox_fsformat = new QHBoxLayout; + m_labelFormat = new QLabel; + m_cmbboxFormat = new QComboBox; + hbox_fsformat->addWidget(m_labelFormat); + hbox_fsformat->addWidget(m_cmbboxFormat); + + // #-mbr-# [w] "on" + m_chkboxWriteMbr = new QCheckBox; + m_chkboxWriteMbr->setChecked(true); + + // #-uuid-# [w] "off" + m_chkboxUseUUID = new QCheckBox; + + // #-type-# [w] ["hdd", "flash", "usb-hdd"] + QHBoxLayout* hbox_disktype = new QHBoxLayout; + m_labelDiskType = new QLabel; + m_cmbboxDiskType = new QComboBox; + hbox_disktype->addWidget(m_labelDiskType); + hbox_disktype->addWidget(m_cmbboxDiskType); + + // #-video_drv-# [w] "radeon" [fglrx, intel, nv, nvidia, vesa, vmware] + QHBoxLayout* hbox_videodrv = new QHBoxLayout; + m_labelVideoDrv = new QLabel; + m_cmbboxVideoDrv = new QComboBox; + hbox_videodrv->addWidget(m_labelVideoDrv); + hbox_videodrv->addWidget(m_cmbboxVideoDrv); +/* + // #-video_resolution-# [w] "1366x768" + QHBoxLayout* hbox_videores = new QHBoxLayout; + m_labelVideoRes = new QLabel; + m_editVideoRes = new QLineEdit; + hbox_videores->addWidget(m_labelVideoRes); + hbox_videores->addWidget(m_editVideoRes); +*/ + // composite + m_chkboxComposite = new QCheckBox; + m_chkboxComposite->setChecked(true); +/* + // #-scheduler-# [w] "cfq" [noop, deadline] + QHBoxLayout* hbox_cpushed = new QHBoxLayout; + m_labelIOShed = new QLabel; + m_cmbboxIOShed = new QComboBox; + hbox_cpushed->addWidget(m_labelIOShed); + hbox_cpushed->addWidget(m_cmbboxIOShed); +*/ + // QVBoxLayout* vbox_1 = new QVBoxLayout; + vbox_1->addWidget( m_labelHelp ); + vbox_1->addWidget(m_chkboxBuilder); + vbox_1->addWidget(m_chkboxForce); + vbox_1->addLayout(hbox_hostname); + vbox_1->addLayout(hbox_language); + vbox_1->addLayout(hbox_timezone); + vbox_1->addWidget(m_chkboxErase); + vbox_1->addLayout(hbox_fsformat); + vbox_1->addWidget(m_chkboxWriteMbr); + vbox_1->addWidget(m_chkboxUseUUID); + vbox_1->addLayout(hbox_disktype); + vbox_1->addLayout(hbox_videodrv); + //vbox_1->addLayout(hbox_videores); + vbox_1->addWidget(m_chkboxComposite); + //vbox_1->addLayout(hbox_cpushed); - vbox_1->addWidget( m_labelText ); - vbox_1->addLayout(hbox_1); - vbox_1->addLayout(hbox_2); - vbox_1->addLayout(hbox_3); - vbox_1->addLayout(hbox_4); vbox_1->addStretch(); // @@ -82,28 +123,667 @@ void PageConfiguration::setupUi() void PageConfiguration::retranslateUi() { - qDebug() << "PageConfiguration::retranslateUi()"; - setTitle( tr("Configuring") ); - m_labelText->setText( tr("Select parameters: ") ); + m_labelHelp->setText( tr("Select parameters: ") ); + + m_chkboxBuilder->setText( tr("Installation for assembling") ); + m_chkboxForce->setText( tr("Do not prompt before overwriting") ); + m_labelHostName->setText( tr("Hostname: ") ); - m_langText->setText( tr("Language:") ); - m_labelFormat->setText( tr("Format") ); + m_editHostname->setText( "calculate" ); + + m_labelLanguage->setText( tr("Language:") ); + m_cmbboxLanguage->clear(); + m_cmbboxLanguage->addItem( tr("English"), QVariant("en_US") ); + m_cmbboxLanguage->addItem( tr("German"), QVariant("de_DE") ); + m_cmbboxLanguage->addItem( tr("Spanish"), QVariant("es_ES") ); + m_cmbboxLanguage->addItem( tr("French"), QVariant("fr_FR") ); + m_cmbboxLanguage->addItem( tr("Italian"), QVariant("it_IT") ); + m_cmbboxLanguage->addItem( tr("Polish"), QVariant("pl_PL") ); + m_cmbboxLanguage->addItem( tr("Brazilian Portugal"), QVariant("pt_BR") ); + m_cmbboxLanguage->addItem( tr("Russian"), QVariant("ru_RU") ); + m_cmbboxLanguage->addItem( tr("English"), QVariant("uk_UA") ); + + int lang_index = m_cmbboxLanguage->findData(QVariant(*m_Lang)); + if (lang_index >= 0) + m_cmbboxLanguage->setCurrentIndex( lang_index ); + + m_labelFormat->setText( tr("File system:") ); + m_cmbboxFormat->clear(); + m_cmbboxFormat->addItem( "reiserfs" ); + m_cmbboxFormat->addItem( "ext2" ); + m_cmbboxFormat->addItem( "ext3" ); + m_cmbboxFormat->addItem( "ext4" ); + m_cmbboxFormat->addItem( "jfs" ); + m_cmbboxFormat->addItem( "xfs" ); + m_labelTimezone->setText( tr("Timezone:") ); + m_cmbboxTimezone->clear(); + m_cmbboxTimezone->addItem( "Africa/Abidjan" ); + m_cmbboxTimezone->addItem( "Africa/Accra" ); + m_cmbboxTimezone->addItem( "Africa/Addis_Ababa" ); + m_cmbboxTimezone->addItem( "Africa/Algiers" ); + m_cmbboxTimezone->addItem( "Africa/Asmara" ); + m_cmbboxTimezone->addItem( "Africa/Asmera" ); + m_cmbboxTimezone->addItem( "Africa/Bamako" ); + m_cmbboxTimezone->addItem( "Africa/Bangui" ); + m_cmbboxTimezone->addItem( "Africa/Banjul" ); + m_cmbboxTimezone->addItem( "Africa/Bissau" ); + m_cmbboxTimezone->addItem( "Africa/Blantyre" ); + m_cmbboxTimezone->addItem( "Africa/Brazzaville" ); + m_cmbboxTimezone->addItem( "Africa/Bujumbura" ); + m_cmbboxTimezone->addItem( "Africa/Cairo" ); + m_cmbboxTimezone->addItem( "Africa/Casablanca" ); + m_cmbboxTimezone->addItem( "Africa/Ceuta" ); + m_cmbboxTimezone->addItem( "Africa/Conakry" ); + m_cmbboxTimezone->addItem( "Africa/Dakar" ); + m_cmbboxTimezone->addItem( "Africa/Dar_es_Salaam" ); + m_cmbboxTimezone->addItem( "Africa/Djibouti" ); + m_cmbboxTimezone->addItem( "Africa/Douala" ); + m_cmbboxTimezone->addItem( "Africa/El_Aaiun" ); + m_cmbboxTimezone->addItem( "Africa/Freetown" ); + m_cmbboxTimezone->addItem( "Africa/Gaborone" ); + m_cmbboxTimezone->addItem( "Africa/Harare" ); + m_cmbboxTimezone->addItem( "Africa/Johannesburg" ); + m_cmbboxTimezone->addItem( "Africa/Kampala" ); + m_cmbboxTimezone->addItem( "Africa/Khartoum" ); + m_cmbboxTimezone->addItem( "Africa/Kigali" ); + m_cmbboxTimezone->addItem( "Africa/Kinshasa" ); + m_cmbboxTimezone->addItem( "Africa/Lagos" ); + m_cmbboxTimezone->addItem( "Africa/Libreville" ); + m_cmbboxTimezone->addItem( "Africa/Lome" ); + m_cmbboxTimezone->addItem( "Africa/Luanda" ); + m_cmbboxTimezone->addItem( "Africa/Lubumbashi" ); + m_cmbboxTimezone->addItem( "Africa/Lusaka" ); + m_cmbboxTimezone->addItem( "Africa/Malabo" ); + m_cmbboxTimezone->addItem( "Africa/Maputo" ); + m_cmbboxTimezone->addItem( "Africa/Maseru" ); + m_cmbboxTimezone->addItem( "Africa/Mbabane" ); + m_cmbboxTimezone->addItem( "Africa/Mogadishu" ); + m_cmbboxTimezone->addItem( "Africa/Monrovia" ); + m_cmbboxTimezone->addItem( "Africa/Nairobi" ); + m_cmbboxTimezone->addItem( "Africa/Ndjamena" ); + m_cmbboxTimezone->addItem( "Africa/Niamey" ); + m_cmbboxTimezone->addItem( "Africa/Nouakchott" ); + m_cmbboxTimezone->addItem( "Africa/Ouagadougou" ); + m_cmbboxTimezone->addItem( "Africa/Porto-Novo" ); + m_cmbboxTimezone->addItem( "Africa/Sao_Tome" ); + m_cmbboxTimezone->addItem( "Africa/Timbuktu" ); + m_cmbboxTimezone->addItem( "Africa/Tripoli" ); + m_cmbboxTimezone->addItem( "Africa/Tunis" ); + m_cmbboxTimezone->addItem( "Africa/Windhoek" ); + m_cmbboxTimezone->addItem( "America/Adak" ); + m_cmbboxTimezone->addItem( "America/Anchorage" ); + m_cmbboxTimezone->addItem( "America/Anguilla" ); + m_cmbboxTimezone->addItem( "America/Antigua" ); + m_cmbboxTimezone->addItem( "America/Araguaina" ); + m_cmbboxTimezone->addItem( "America/Argentina/Buenos_Aires" ); + m_cmbboxTimezone->addItem( "America/Argentina/Catamarca" ); + m_cmbboxTimezone->addItem( "America/Argentina/ComodRivadavia" ); + m_cmbboxTimezone->addItem( "America/Argentina/Cordoba" ); + m_cmbboxTimezone->addItem( "America/Argentina/Jujuy" ); + m_cmbboxTimezone->addItem( "America/Argentina/La_Rioja" ); + m_cmbboxTimezone->addItem( "America/Argentina/Mendoza" ); + m_cmbboxTimezone->addItem( "America/Argentina/Rio_Gallegos" ); + m_cmbboxTimezone->addItem( "America/Argentina/Salta" ); + m_cmbboxTimezone->addItem( "America/Argentina/San_Juan" ); + m_cmbboxTimezone->addItem( "America/Argentina/San_Luis" ); + m_cmbboxTimezone->addItem( "America/Argentina/Tucuman" ); + m_cmbboxTimezone->addItem( "America/Argentina/Ushuaia" ); + m_cmbboxTimezone->addItem( "America/Aruba" ); + m_cmbboxTimezone->addItem( "America/Asuncion" ); + m_cmbboxTimezone->addItem( "America/Atikokan" ); + m_cmbboxTimezone->addItem( "America/Atka" ); + m_cmbboxTimezone->addItem( "America/Bahia" ); + m_cmbboxTimezone->addItem( "America/Barbados" ); + m_cmbboxTimezone->addItem( "America/Belem" ); + m_cmbboxTimezone->addItem( "America/Belize" ); + m_cmbboxTimezone->addItem( "America/Blanc-Sablon" ); + m_cmbboxTimezone->addItem( "America/Boa_Vista" ); + m_cmbboxTimezone->addItem( "America/Bogota" ); + m_cmbboxTimezone->addItem( "America/Boise" ); + m_cmbboxTimezone->addItem( "America/Buenos_Aires" ); + m_cmbboxTimezone->addItem( "America/Cambridge_Bay" ); + m_cmbboxTimezone->addItem( "America/Campo_Grande" ); + m_cmbboxTimezone->addItem( "America/Cancun" ); + m_cmbboxTimezone->addItem( "America/Caracas" ); + m_cmbboxTimezone->addItem( "America/Catamarca" ); + m_cmbboxTimezone->addItem( "America/Cayenne" ); + m_cmbboxTimezone->addItem( "America/Cayman" ); + m_cmbboxTimezone->addItem( "America/Chicago" ); + m_cmbboxTimezone->addItem( "America/Chihuahua " ); + m_cmbboxTimezone->addItem( "America/Coral_Harbour" ); + m_cmbboxTimezone->addItem( "America/Cordoba" ); + m_cmbboxTimezone->addItem( "America/Costa_Rica" ); + m_cmbboxTimezone->addItem( "America/Cuiaba" ); + m_cmbboxTimezone->addItem( "America/Curacao" ); + m_cmbboxTimezone->addItem( "America/Danmarkshavn" ); + m_cmbboxTimezone->addItem( "America/Dawson" ); + m_cmbboxTimezone->addItem( "America/Dawson_Creek" ); + m_cmbboxTimezone->addItem( "America/Denver" ); + m_cmbboxTimezone->addItem( "America/Detroit" ); + m_cmbboxTimezone->addItem( "America/Dominica" ); + m_cmbboxTimezone->addItem( "America/Edmonton" ); + m_cmbboxTimezone->addItem( "America/Eirunepe" ); + m_cmbboxTimezone->addItem( "America/El_Salvador" ); + m_cmbboxTimezone->addItem( "America/Ensenada" ); + m_cmbboxTimezone->addItem( "America/Fortaleza" ); + m_cmbboxTimezone->addItem( "America/Fort_Wayne" ); + m_cmbboxTimezone->addItem( "America/Glace_Bay" ); + m_cmbboxTimezone->addItem( "America/Godthab" ); + m_cmbboxTimezone->addItem( "America/Goose_Bay" ); + m_cmbboxTimezone->addItem( "America/Grand_Turk" ); + m_cmbboxTimezone->addItem( "America/Grenada" ); + m_cmbboxTimezone->addItem( "America/Guadeloupe" ); + m_cmbboxTimezone->addItem( "America/Guatemala" ); + m_cmbboxTimezone->addItem( "America/Guayaquil" ); + m_cmbboxTimezone->addItem( "America/Guyana" ); + m_cmbboxTimezone->addItem( "America/Halifax" ); + m_cmbboxTimezone->addItem( "America/Havana" ); + m_cmbboxTimezone->addItem( "America/Hermosillo" ); + m_cmbboxTimezone->addItem( "America/Indiana/Indianapolis" ); + m_cmbboxTimezone->addItem( "America/Indiana/Knox" ); + m_cmbboxTimezone->addItem( "America/Indiana/Marengo" ); + m_cmbboxTimezone->addItem( "America/Indiana/Petersburg" ); + m_cmbboxTimezone->addItem( "America/Indiana/Tell_City" ); + m_cmbboxTimezone->addItem( "America/Indiana/Vevay" ); + m_cmbboxTimezone->addItem( "America/Indiana/Vincennes" ); + m_cmbboxTimezone->addItem( "America/Indiana/Winamac" ); + m_cmbboxTimezone->addItem( "America/Indianapolis" ); + m_cmbboxTimezone->addItem( "America/Inuvik" ); + m_cmbboxTimezone->addItem( "America/Iqaluit" ); + m_cmbboxTimezone->addItem( "America/Jamaica" ); + m_cmbboxTimezone->addItem( "America/Jujuy" ); + m_cmbboxTimezone->addItem( "America/Juneau" ); + m_cmbboxTimezone->addItem( "America/Kentucky/Louisville" ); + m_cmbboxTimezone->addItem( "America/Kentucky/Monticello" ); + m_cmbboxTimezone->addItem( "America/Knox_IN" ); + m_cmbboxTimezone->addItem( "America/La_Paz" ); + m_cmbboxTimezone->addItem( "America/Lima" ); + m_cmbboxTimezone->addItem( "America/Los_Angeles" ); + m_cmbboxTimezone->addItem( "America/Louisville" ); + m_cmbboxTimezone->addItem( "America/Maceio" ); + m_cmbboxTimezone->addItem( "America/Managua" ); + m_cmbboxTimezone->addItem( "America/Manaus" ); + m_cmbboxTimezone->addItem( "America/Marigot" ); + m_cmbboxTimezone->addItem( "America/Martinique" ); + m_cmbboxTimezone->addItem( "America/Matamoros" ); + m_cmbboxTimezone->addItem( "America/Mazatlan" ); + m_cmbboxTimezone->addItem( "America/Mendoza" ); + m_cmbboxTimezone->addItem( "America/Menominee" ); + m_cmbboxTimezone->addItem( "America/Merida" ); + m_cmbboxTimezone->addItem( "America/Mexico_City" ); + m_cmbboxTimezone->addItem( "America/Miquelon" ); + m_cmbboxTimezone->addItem( "America/Moncton" ); + m_cmbboxTimezone->addItem( "America/Monterrey" ); + m_cmbboxTimezone->addItem( "America/Montevideo" ); + m_cmbboxTimezone->addItem( "America/Montreal" ); + m_cmbboxTimezone->addItem( "America/Montserrat" ); + m_cmbboxTimezone->addItem( "America/Nassau" ); + m_cmbboxTimezone->addItem( "America/New_York" ); + m_cmbboxTimezone->addItem( "America/Nipigon" ); + m_cmbboxTimezone->addItem( "America/Nome" ); + m_cmbboxTimezone->addItem( "America/Noronha" ); + m_cmbboxTimezone->addItem( "America/North_Dakota/Center" ); + m_cmbboxTimezone->addItem( "America/North_Dakota/New_Salem" ); + m_cmbboxTimezone->addItem( "America/Ojinaga" ); + m_cmbboxTimezone->addItem( "America/Panama" ); + m_cmbboxTimezone->addItem( "America/Pangnirtung" ); + m_cmbboxTimezone->addItem( "America/Paramaribo" ); + m_cmbboxTimezone->addItem( "America/Phoenix" ); + m_cmbboxTimezone->addItem( "America/Port-au-Prince" ); + m_cmbboxTimezone->addItem( "America/Porto_Acre" ); + m_cmbboxTimezone->addItem( "America/Port_of_Spain" ); + m_cmbboxTimezone->addItem( "America/Porto_Velho" ); + m_cmbboxTimezone->addItem( "America/Puerto_Rico" ); + m_cmbboxTimezone->addItem( "America/Rainy_River" ); + m_cmbboxTimezone->addItem( "America/Rankin_Inlet" ); + m_cmbboxTimezone->addItem( "America/Recife" ); + m_cmbboxTimezone->addItem( "America/Regina" ); + m_cmbboxTimezone->addItem( "America/Resolute" ); + m_cmbboxTimezone->addItem( "America/Rio_Branco" ); + m_cmbboxTimezone->addItem( "America/Rosario" ); + m_cmbboxTimezone->addItem( "America/Santa_Isabel" ); + m_cmbboxTimezone->addItem( "America/Santarem" ); + m_cmbboxTimezone->addItem( "America/Santiago" ); + m_cmbboxTimezone->addItem( "America/Santo_Domingo" ); + m_cmbboxTimezone->addItem( "America/Sao_Paulo" ); + m_cmbboxTimezone->addItem( "America/Scoresbysund" ); + m_cmbboxTimezone->addItem( "America/Shiprock" ); + m_cmbboxTimezone->addItem( "America/St_Barthelemy" ); + m_cmbboxTimezone->addItem( "America/St_Johns" ); + m_cmbboxTimezone->addItem( "America/St_Kitts" ); + m_cmbboxTimezone->addItem( "America/St_Lucia" ); + m_cmbboxTimezone->addItem( "America/St_Thomas" ); + m_cmbboxTimezone->addItem( "America/St_Vincent" ); + m_cmbboxTimezone->addItem( "America/Swift_Current" ); + m_cmbboxTimezone->addItem( "America/Tegucigalpa" ); + m_cmbboxTimezone->addItem( "America/Thule" ); + m_cmbboxTimezone->addItem( "America/Thunder_Bay" ); + m_cmbboxTimezone->addItem( "America/Tijuana" ); + m_cmbboxTimezone->addItem( "America/Toronto" ); + m_cmbboxTimezone->addItem( "America/Tortola" ); + m_cmbboxTimezone->addItem( "America/Vancouver" ); + m_cmbboxTimezone->addItem( "America/Virgin" ); + m_cmbboxTimezone->addItem( "America/Whitehorse" ); + m_cmbboxTimezone->addItem( "America/Winnipeg" ); + m_cmbboxTimezone->addItem( "America/Yakutat" ); + m_cmbboxTimezone->addItem( "America/Yellowknife" ); + m_cmbboxTimezone->addItem( "Antarctica/Casey" ); + m_cmbboxTimezone->addItem( "Antarctica/Davis" ); + m_cmbboxTimezone->addItem( "Antarctica/DumontDUrville" ); + m_cmbboxTimezone->addItem( "Antarctica/Macquarie" ); + m_cmbboxTimezone->addItem( "Antarctica/Mawson" ); + m_cmbboxTimezone->addItem( "Antarctica/McMurdo" ); + m_cmbboxTimezone->addItem( "Antarctica/Palmer" ); + m_cmbboxTimezone->addItem( "Antarctica/Rothera" ); + m_cmbboxTimezone->addItem( "Antarctica/South_Pole" ); + m_cmbboxTimezone->addItem( "Antarctica/Syowa" ); + m_cmbboxTimezone->addItem( "Antarctica/Vostok" ); + m_cmbboxTimezone->addItem( "Arctic/Longyearbyen" ); + m_cmbboxTimezone->addItem( "Asia/Aden" ); + m_cmbboxTimezone->addItem( "Asia/Almaty" ); + m_cmbboxTimezone->addItem( "Asia/Amman" ); + m_cmbboxTimezone->addItem( "Asia/Anadyr" ); + m_cmbboxTimezone->addItem( "Asia/Aqtau" ); + m_cmbboxTimezone->addItem( "Asia/Aqtobe" ); + m_cmbboxTimezone->addItem( "Asia/Ashgabat" ); + m_cmbboxTimezone->addItem( "Asia/Ashkhabad" ); + m_cmbboxTimezone->addItem( "Asia/Baghdad" ); + m_cmbboxTimezone->addItem( "Asia/Bahrain" ); + m_cmbboxTimezone->addItem( "Asia/Baku" ); + m_cmbboxTimezone->addItem( "Asia/Bangkok" ); + m_cmbboxTimezone->addItem( "Asia/Beirut" ); + m_cmbboxTimezone->addItem( "Asia/Bishkek" ); + m_cmbboxTimezone->addItem( "Asia/Brunei" ); + m_cmbboxTimezone->addItem( "Asia/Calcutta" ); + m_cmbboxTimezone->addItem( "Asia/Choibalsan" ); + m_cmbboxTimezone->addItem( "Asia/Chongqing" ); + m_cmbboxTimezone->addItem( "Asia/Chungking" ); + m_cmbboxTimezone->addItem( "Asia/Colombo" ); + m_cmbboxTimezone->addItem( "Asia/Dacca" ); + m_cmbboxTimezone->addItem( "Asia/Damascus" ); + m_cmbboxTimezone->addItem( "Asia/Dhaka" ); + m_cmbboxTimezone->addItem( "Asia/Dili" ); + m_cmbboxTimezone->addItem( "Asia/Dubai" ); + m_cmbboxTimezone->addItem( "Asia/Dushanbe" ); + m_cmbboxTimezone->addItem( "Asia/Gaza" ); + m_cmbboxTimezone->addItem( "Asia/Harbin" ); + m_cmbboxTimezone->addItem( "Asia/Ho_Chi_Minh" ); + m_cmbboxTimezone->addItem( "Asia/Hong_Kong" ); + m_cmbboxTimezone->addItem( "Asia/Hovd" ); + m_cmbboxTimezone->addItem( "Asia/Irkutsk" ); + m_cmbboxTimezone->addItem( "Asia/Istanbul" ); + m_cmbboxTimezone->addItem( "Asia/Jakarta" ); + m_cmbboxTimezone->addItem( "Asia/Jayapura" ); + m_cmbboxTimezone->addItem( "Asia/Jerusalem" ); + m_cmbboxTimezone->addItem( "Asia/Kabul" ); + m_cmbboxTimezone->addItem( "Asia/Kamchatka" ); + m_cmbboxTimezone->addItem( "Asia/Karachi" ); + m_cmbboxTimezone->addItem( "Asia/Kashgar" ); + m_cmbboxTimezone->addItem( "Asia/Kathmandu" ); + m_cmbboxTimezone->addItem( "Asia/Katmandu" ); + m_cmbboxTimezone->addItem( "Asia/Kolkata" ); + m_cmbboxTimezone->addItem( "Asia/Krasnoyarsk" ); + m_cmbboxTimezone->addItem( "Asia/Kuala_Lumpur" ); + m_cmbboxTimezone->addItem( "Asia/Kuching" ); + m_cmbboxTimezone->addItem( "Asia/Kuwait" ); + m_cmbboxTimezone->addItem( "Asia/Macao" ); + m_cmbboxTimezone->addItem( "Asia/Macau" ); + m_cmbboxTimezone->addItem( "Asia/Magadan" ); + m_cmbboxTimezone->addItem( "Asia/Makassar" ); + m_cmbboxTimezone->addItem( "Asia/Manila" ); + m_cmbboxTimezone->addItem( "Asia/Muscat" ); + m_cmbboxTimezone->addItem( "Asia/Nicosia" ); + m_cmbboxTimezone->addItem( "Asia/Novokuznetsk" ); + m_cmbboxTimezone->addItem( "Asia/Novosibirsk" ); + m_cmbboxTimezone->addItem( "Asia/Omsk" ); + m_cmbboxTimezone->addItem( "Asia/Oral" ); + m_cmbboxTimezone->addItem( "Asia/Phnom_Penh" ); + m_cmbboxTimezone->addItem( "Asia/Pontianak" ); + m_cmbboxTimezone->addItem( "Asia/Pyongyang" ); + m_cmbboxTimezone->addItem( "Asia/Qatar" ); + m_cmbboxTimezone->addItem( "Asia/Qyzylorda" ); + m_cmbboxTimezone->addItem( "Asia/Rangoon" ); + m_cmbboxTimezone->addItem( "Asia/Riyadh" ); + m_cmbboxTimezone->addItem( "Asia/Riyadh87" ); + m_cmbboxTimezone->addItem( "Asia/Riyadh88" ); + m_cmbboxTimezone->addItem( "Asia/Riyadh89" ); + m_cmbboxTimezone->addItem( "Asia/Saigon" ); + m_cmbboxTimezone->addItem( "Asia/Sakhalin" ); + m_cmbboxTimezone->addItem( "Asia/Samarkand" ); + m_cmbboxTimezone->addItem( "Asia/Seoul" ); + m_cmbboxTimezone->addItem( "Asia/Shanghai" ); + m_cmbboxTimezone->addItem( "Asia/Singapore" ); + m_cmbboxTimezone->addItem( "Asia/Taipei" ); + m_cmbboxTimezone->addItem( "Asia/Tashkent" ); + m_cmbboxTimezone->addItem( "Asia/Tbilisi" ); + m_cmbboxTimezone->addItem( "Asia/Tehran" ); + m_cmbboxTimezone->addItem( "Asia/Tel_Aviv" ); + m_cmbboxTimezone->addItem( "Asia/Thimbu" ); + m_cmbboxTimezone->addItem( "Asia/Thimphu" ); + m_cmbboxTimezone->addItem( "Asia/Tokyo" ); + m_cmbboxTimezone->addItem( "Asia/Ujung_Pandang" ); + m_cmbboxTimezone->addItem( "Asia/Ulaanbaatar" ); + m_cmbboxTimezone->addItem( "Asia/Ulan_Bator" ); + m_cmbboxTimezone->addItem( "Asia/Urumqi" ); + m_cmbboxTimezone->addItem( "Asia/Vientiane" ); + m_cmbboxTimezone->addItem( "Asia/Vladivostok" ); + m_cmbboxTimezone->addItem( "Asia/Yakutsk" ); + m_cmbboxTimezone->addItem( "Asia/Yekaterinburg" ); + m_cmbboxTimezone->addItem( "Asia/Yerevan" ); + m_cmbboxTimezone->addItem( "Atlantic/Azores" ); + m_cmbboxTimezone->addItem( "Atlantic/Bermuda" ); + m_cmbboxTimezone->addItem( "Atlantic/Canary" ); + m_cmbboxTimezone->addItem( "Atlantic/Cape_Verde" ); + m_cmbboxTimezone->addItem( "Atlantic/Faeroe" ); + m_cmbboxTimezone->addItem( "Atlantic/Faroe" ); + m_cmbboxTimezone->addItem( "Atlantic/Jan_Mayen" ); + m_cmbboxTimezone->addItem( "Atlantic/Madeira" ); + m_cmbboxTimezone->addItem( "Atlantic/Reykjavik" ); + m_cmbboxTimezone->addItem( "Atlantic/South_Georgia" ); + m_cmbboxTimezone->addItem( "Atlantic/Stanley" ); + m_cmbboxTimezone->addItem( "Atlantic/St_Helena" ); + m_cmbboxTimezone->addItem( "Australia/ACT" ); + m_cmbboxTimezone->addItem( "Australia/Adelaide" ); + m_cmbboxTimezone->addItem( "Australia/Brisbane" ); + m_cmbboxTimezone->addItem( "Australia/Broken_Hill" ); + m_cmbboxTimezone->addItem( "Australia/Canberra" ); + m_cmbboxTimezone->addItem( "Australia/Currie" ); + m_cmbboxTimezone->addItem( "Australia/Darwin" ); + m_cmbboxTimezone->addItem( "Australia/Eucla" ); + m_cmbboxTimezone->addItem( "Australia/Hobart" ); + m_cmbboxTimezone->addItem( "Australia/LHI" ); + m_cmbboxTimezone->addItem( "Australia/Lindeman" ); + m_cmbboxTimezone->addItem( "Australia/Lord_Howe" ); + m_cmbboxTimezone->addItem( "Australia/Melbourne" ); + m_cmbboxTimezone->addItem( "Australia/North" ); + m_cmbboxTimezone->addItem( "Australia/NSW" ); + m_cmbboxTimezone->addItem( "Australia/Perth" ); + m_cmbboxTimezone->addItem( "Australia/Queensland" ); + m_cmbboxTimezone->addItem( "Australia/South" ); + m_cmbboxTimezone->addItem( "Australia/Sydney" ); + m_cmbboxTimezone->addItem( "Australia/Tasmania" ); + m_cmbboxTimezone->addItem( "Australia/Victoria" ); + m_cmbboxTimezone->addItem( "Australia/West" ); + m_cmbboxTimezone->addItem( "Australia/Yancowinna" ); + m_cmbboxTimezone->addItem( "Brazil/Acre" ); + m_cmbboxTimezone->addItem( "Brazil/DeNoronha" ); + m_cmbboxTimezone->addItem( "Brazil/East" ); + m_cmbboxTimezone->addItem( "Brazil/West" ); + m_cmbboxTimezone->addItem( "Canada/Atlantic" ); + m_cmbboxTimezone->addItem( "Canada/Central" ); + m_cmbboxTimezone->addItem( "Canada/Eastern" ); + m_cmbboxTimezone->addItem( "Canada/East-Saskatchewan" ); + m_cmbboxTimezone->addItem( "Canada/Mountain" ); + m_cmbboxTimezone->addItem( "Canada/Newfoundland" ); + m_cmbboxTimezone->addItem( "Canada/Pacific" ); + m_cmbboxTimezone->addItem( "Canada/Saskatchewan" ); + m_cmbboxTimezone->addItem( "Canada/Yukon" ); + m_cmbboxTimezone->addItem( "Chile/Continental" ); + m_cmbboxTimezone->addItem( "Chile/EasterIsland" ); + m_cmbboxTimezone->addItem( "Etc/GMT" ); + m_cmbboxTimezone->addItem( "Etc/GMT0" ); + m_cmbboxTimezone->addItem( "Etc/GMT-0" ); + m_cmbboxTimezone->addItem( "Etc/GMT+0" ); + m_cmbboxTimezone->addItem( "Etc/GMT-1" ); + m_cmbboxTimezone->addItem( "Etc/GMT+1" ); + m_cmbboxTimezone->addItem( "Etc/GMT-10" ); + m_cmbboxTimezone->addItem( "Etc/GMT+10" ); + m_cmbboxTimezone->addItem( "Etc/GMT-11" ); + m_cmbboxTimezone->addItem( "Etc/GMT+11" ); + m_cmbboxTimezone->addItem( "Etc/GMT-12" ); + m_cmbboxTimezone->addItem( "Etc/GMT+12" ); + m_cmbboxTimezone->addItem( "Etc/GMT-13" ); + m_cmbboxTimezone->addItem( "Etc/GMT-14" ); + m_cmbboxTimezone->addItem( "Etc/GMT-2" ); + m_cmbboxTimezone->addItem( "Etc/GMT+2" ); + m_cmbboxTimezone->addItem( "Etc/GMT-3" ); + m_cmbboxTimezone->addItem( "Etc/GMT+3" ); + m_cmbboxTimezone->addItem( "Etc/GMT-4" ); + m_cmbboxTimezone->addItem( "Etc/GMT+4" ); + m_cmbboxTimezone->addItem( "Etc/GMT-5" ); + m_cmbboxTimezone->addItem( "Etc/GMT+5" ); + m_cmbboxTimezone->addItem( "Etc/GMT-6" ); + m_cmbboxTimezone->addItem( "Etc/GMT+6" ); + m_cmbboxTimezone->addItem( "Etc/GMT-7" ); + m_cmbboxTimezone->addItem( "Etc/GMT+7" ); + m_cmbboxTimezone->addItem( "Etc/GMT-8" ); + m_cmbboxTimezone->addItem( "Etc/GMT+8" ); + m_cmbboxTimezone->addItem( "Etc/GMT-9" ); + m_cmbboxTimezone->addItem( "Etc/GMT+9" ); + m_cmbboxTimezone->addItem( "Etc/Greenwich" ); + m_cmbboxTimezone->addItem( "Etc/UCT" ); + m_cmbboxTimezone->addItem( "Etc/Universal" ); + m_cmbboxTimezone->addItem( "Etc/UTC" ); + m_cmbboxTimezone->addItem( "Etc/Zulu" ); + m_cmbboxTimezone->addItem( "Europe/Amsterdam" ); + m_cmbboxTimezone->addItem( "Europe/Andorra" ); + m_cmbboxTimezone->addItem( "Europe/Athens" ); + m_cmbboxTimezone->addItem( "Europe/Belfast" ); + m_cmbboxTimezone->addItem( "Europe/Belgrade" ); + m_cmbboxTimezone->addItem( "Europe/Berlin" ); + m_cmbboxTimezone->addItem( "Europe/Bratislava" ); + m_cmbboxTimezone->addItem( "Europe/Brussels" ); + m_cmbboxTimezone->addItem( "Europe/Bucharest" ); + m_cmbboxTimezone->addItem( "Europe/Budapest" ); + m_cmbboxTimezone->addItem( "Europe/Chisinau" ); + m_cmbboxTimezone->addItem( "Europe/Copenhagen" ); + m_cmbboxTimezone->addItem( "Europe/Dublin" ); + m_cmbboxTimezone->addItem( "Europe/Gibraltar" ); + m_cmbboxTimezone->addItem( "Europe/Guernsey" ); + m_cmbboxTimezone->addItem( "Europe/Helsinki" ); + m_cmbboxTimezone->addItem( "Europe/Isle_of_Man" ); + m_cmbboxTimezone->addItem( "Europe/Istanbul" ); + m_cmbboxTimezone->addItem( "Europe/Jersey" ); + m_cmbboxTimezone->addItem( "Europe/Kaliningrad" ); + m_cmbboxTimezone->addItem( "Europe/Kiev" ); + m_cmbboxTimezone->addItem( "Europe/Lisbon" ); + m_cmbboxTimezone->addItem( "Europe/Ljubljana" ); + m_cmbboxTimezone->addItem( "Europe/London" ); + m_cmbboxTimezone->addItem( "Europe/Luxembourg" ); + m_cmbboxTimezone->addItem( "Europe/Madrid" ); + m_cmbboxTimezone->addItem( "Europe/Malta" ); + m_cmbboxTimezone->addItem( "Europe/Mariehamn" ); + m_cmbboxTimezone->addItem( "Europe/Minsk" ); + m_cmbboxTimezone->addItem( "Europe/Monaco" ); + m_cmbboxTimezone->addItem( "Europe/Moscow" ); + m_cmbboxTimezone->addItem( "Europe/Nicosia" ); + m_cmbboxTimezone->addItem( "Europe/Oslo" ); + m_cmbboxTimezone->addItem( "Europe/Paris" ); + m_cmbboxTimezone->addItem( "Europe/Podgorica" ); + m_cmbboxTimezone->addItem( "Europe/Prague" ); + m_cmbboxTimezone->addItem( "Europe/Riga" ); + m_cmbboxTimezone->addItem( "Europe/Rome" ); + m_cmbboxTimezone->addItem( "Europe/Samara" ); + m_cmbboxTimezone->addItem( "Europe/San_Marino" ); + m_cmbboxTimezone->addItem( "Europe/Sarajevo" ); + m_cmbboxTimezone->addItem( "Europe/Simferopol" ); + m_cmbboxTimezone->addItem( "Europe/Skopje" ); + m_cmbboxTimezone->addItem( "Europe/Sofia" ); + m_cmbboxTimezone->addItem( "Europe/Stockholm" ); + m_cmbboxTimezone->addItem( "Europe/Tallinn" ); + m_cmbboxTimezone->addItem( "Europe/Tirane" ); + m_cmbboxTimezone->addItem( "Europe/Tiraspol" ); + m_cmbboxTimezone->addItem( "Europe/Uzhgorod" ); + m_cmbboxTimezone->addItem( "Europe/Vaduz" ); + m_cmbboxTimezone->addItem( "Europe/Vatican" ); + m_cmbboxTimezone->addItem( "Europe/Vienna" ); + m_cmbboxTimezone->addItem( "Europe/Vilnius" ); + m_cmbboxTimezone->addItem( "Europe/Volgograd" ); + m_cmbboxTimezone->addItem( "Europe/Warsaw" ); + m_cmbboxTimezone->addItem( "Europe/Zagreb" ); + m_cmbboxTimezone->addItem( "Europe/Zaporozhye" ); + m_cmbboxTimezone->addItem( "Europe/Zurich" ); + m_cmbboxTimezone->addItem( "Indian/Antananarivo" ); + m_cmbboxTimezone->addItem( "Indian/Chagos" ); + m_cmbboxTimezone->addItem( "Indian/Christmas" ); + m_cmbboxTimezone->addItem( "Indian/Cocos" ); + m_cmbboxTimezone->addItem( "Indian/Comoro" ); + m_cmbboxTimezone->addItem( "Indian/Kerguelen" ); + m_cmbboxTimezone->addItem( "Indian/Mahe" ); + m_cmbboxTimezone->addItem( "Indian/Maldives" ); + m_cmbboxTimezone->addItem( "Indian/Mauritius" ); + m_cmbboxTimezone->addItem( "Indian/Mayotte" ); + m_cmbboxTimezone->addItem( "Indian/Reunion" ); + m_cmbboxTimezone->addItem( "Mexico/BajaNorte" ); + m_cmbboxTimezone->addItem( "Mexico/BajaSur" ); + m_cmbboxTimezone->addItem( "Mexico/General" ); + m_cmbboxTimezone->addItem( "Mideast/Riyadh87" ); + m_cmbboxTimezone->addItem( "Mideast/Riyadh88" ); + m_cmbboxTimezone->addItem( "Mideast/Riyadh89" ); + m_cmbboxTimezone->addItem( "Pacific/Apia" ); + m_cmbboxTimezone->addItem( "Pacific/Auckland" ); + m_cmbboxTimezone->addItem( "Pacific/Chatham" ); + m_cmbboxTimezone->addItem( "Pacific/Easter" ); + m_cmbboxTimezone->addItem( "Pacific/Efate" ); + m_cmbboxTimezone->addItem( "Pacific/Enderbury" ); + m_cmbboxTimezone->addItem( "Pacific/Fakaofo" ); + m_cmbboxTimezone->addItem( "Pacific/Fiji" ); + m_cmbboxTimezone->addItem( "Pacific/Funafuti" ); + m_cmbboxTimezone->addItem( "Pacific/Galapagos" ); + m_cmbboxTimezone->addItem( "Pacific/Gambier" ); + m_cmbboxTimezone->addItem( "Pacific/Guadalcanal" ); + m_cmbboxTimezone->addItem( "Pacific/Guam" ); + m_cmbboxTimezone->addItem( "Pacific/Honolulu" ); + m_cmbboxTimezone->addItem( "Pacific/Johnston" ); + m_cmbboxTimezone->addItem( "Pacific/Kiritimati" ); + m_cmbboxTimezone->addItem( "Pacific/Kosrae" ); + m_cmbboxTimezone->addItem( "Pacific/Kwajalein" ); + m_cmbboxTimezone->addItem( "Pacific/Majuro" ); + m_cmbboxTimezone->addItem( "Pacific/Marquesas" ); + m_cmbboxTimezone->addItem( "Pacific/Midway" ); + m_cmbboxTimezone->addItem( "Pacific/Nauru" ); + m_cmbboxTimezone->addItem( "Pacific/Niue" ); + m_cmbboxTimezone->addItem( "Pacific/Norfolk" ); + m_cmbboxTimezone->addItem( "Pacific/Noumea" ); + m_cmbboxTimezone->addItem( "Pacific/Pago_Pago" ); + m_cmbboxTimezone->addItem( "Pacific/Palau" ); + m_cmbboxTimezone->addItem( "Pacific/Pitcairn" ); + m_cmbboxTimezone->addItem( "Pacific/Ponape" ); + m_cmbboxTimezone->addItem( "Pacific/Port_Moresby" ); + m_cmbboxTimezone->addItem( "Pacific/Rarotonga" ); + m_cmbboxTimezone->addItem( "Pacific/Saipan" ); + m_cmbboxTimezone->addItem( "Pacific/Samoa" ); + m_cmbboxTimezone->addItem( "Pacific/Tahiti" ); + m_cmbboxTimezone->addItem( "Pacific/Tarawa" ); + m_cmbboxTimezone->addItem( "Pacific/Tongatapu" ); + m_cmbboxTimezone->addItem( "Pacific/Truk" ); + m_cmbboxTimezone->addItem( "Pacific/Wake" ); + m_cmbboxTimezone->addItem( "Pacific/Wallis" ); + m_cmbboxTimezone->addItem( "Pacific/Yap" ); + m_cmbboxTimezone->addItem( "US/Alaska" ); + m_cmbboxTimezone->addItem( "US/Aleutian" ); + m_cmbboxTimezone->addItem( "US/Arizona" ); + m_cmbboxTimezone->addItem( "US/Central" ); + m_cmbboxTimezone->addItem( "US/Eastern" ); + m_cmbboxTimezone->addItem( "US/East-Indiana" ); + m_cmbboxTimezone->addItem( "US/Hawaii" ); + m_cmbboxTimezone->addItem( "US/Indiana-Starke" ); + m_cmbboxTimezone->addItem( "US/Michigan" ); + m_cmbboxTimezone->addItem( "US/Mountain" ); + m_cmbboxTimezone->addItem( "US/Pacific" ); + m_cmbboxTimezone->addItem( "US/Pacific-New" ); + m_cmbboxTimezone->addItem( "US/Samoa" ); + m_cmbboxTimezone->addItem( "CET" ); + m_cmbboxTimezone->addItem( "CST6CDT" ); + m_cmbboxTimezone->addItem( "Cuba" ); + m_cmbboxTimezone->addItem( "EET" ); + m_cmbboxTimezone->addItem( "Egypt" ); + m_cmbboxTimezone->addItem( "Eire" ); + m_cmbboxTimezone->addItem( "EST" ); + m_cmbboxTimezone->addItem( "EST5EDT" ); + m_cmbboxTimezone->addItem( "Factory" ); + m_cmbboxTimezone->addItem( "GB" ); + m_cmbboxTimezone->addItem( "GB-Eire" ); + m_cmbboxTimezone->addItem( "GMT" ); + m_cmbboxTimezone->addItem( "GMT0" ); + m_cmbboxTimezone->addItem( "GMT-0" ); + m_cmbboxTimezone->addItem( "GMT+0" ); + m_cmbboxTimezone->addItem( "Greenwich" ); + m_cmbboxTimezone->addItem( "Hongkong" ); + m_cmbboxTimezone->addItem( "HST" ); + m_cmbboxTimezone->addItem( "Iceland" ); + m_cmbboxTimezone->addItem( "Iran" ); + m_cmbboxTimezone->addItem( "Israel" ); + m_cmbboxTimezone->addItem( "Jamaica" ); + m_cmbboxTimezone->addItem( "Japan" ); + m_cmbboxTimezone->addItem( "Kwajalein" ); + m_cmbboxTimezone->addItem( "Libya" ); + m_cmbboxTimezone->addItem( "MET" ); + m_cmbboxTimezone->addItem( "MST" ); + m_cmbboxTimezone->addItem( "MST7MDT" ); + m_cmbboxTimezone->addItem( "Navajo" ); + m_cmbboxTimezone->addItem( "NZ" ); + m_cmbboxTimezone->addItem( "NZ-CHAT" ); + m_cmbboxTimezone->addItem( "Pacific" ); + m_cmbboxTimezone->addItem( "Poland" ); + m_cmbboxTimezone->addItem( "Portugal" ); + m_cmbboxTimezone->addItem( "PRC" ); + m_cmbboxTimezone->addItem( "PST8PDT" ); + m_cmbboxTimezone->addItem( "ROC" ); + m_cmbboxTimezone->addItem( "ROK" ); + m_cmbboxTimezone->addItem( "Singapore" ); + m_cmbboxTimezone->addItem( "Turkey" ); + m_cmbboxTimezone->addItem( "UCT" ); + m_cmbboxTimezone->addItem( "Universal" ); + m_cmbboxTimezone->addItem( "UTC" ); + m_cmbboxTimezone->addItem( "WET" ); + m_cmbboxTimezone->addItem( "W-SU" ); + m_cmbboxTimezone->addItem( "Zulu" ); + + m_chkboxErase->setText( tr("Format root partition before installing") ); + m_chkboxWriteMbr->setText( tr("Install bootloader to MBR") ); + m_chkboxUseUUID->setText( tr("Use UUID for mounting partitions") ); + m_labelDiskType->setText( tr("Disk type:") ); + + m_cmbboxDiskType->clear(); + m_cmbboxDiskType->addItem("hdd"); + m_cmbboxDiskType->addItem("flash"); + m_cmbboxDiskType->addItem("usb-hdd"); + + m_labelVideoDrv->setText("Video driver:"); + m_cmbboxVideoDrv->clear(); + m_cmbboxVideoDrv->addItem("fglrx"); + m_cmbboxVideoDrv->addItem("intel"); + m_cmbboxVideoDrv->addItem("nv"); + m_cmbboxVideoDrv->addItem("nvidia"); + m_cmbboxVideoDrv->addItem("radeon"); + m_cmbboxVideoDrv->addItem("vesa"); + m_cmbboxVideoDrv->addItem("vmware"); +/* + m_labelVideoRes->setText( tr("Video resolution") ); + m_editVideoRes->setText( "800x600" ); +*/ + m_chkboxComposite->setText( tr("Use composite") ); +/* + m_labelIOShed->setText( tr("IO sheduler:") ); + m_cmbboxIOShed->clear(); + m_cmbboxIOShed->addItem("cfq"); + m_cmbboxIOShed->addItem("noop"); + m_cmbboxIOShed->addItem("deadline"); +*/ } bool PageConfiguration::validate() { - if ( !m_Hostname->text().isEmpty() ) + if ( !m_editHostname->text().isEmpty() ) { InstallerSettings settings; - settings.host = m_Hostname->text(); - settings.language = m_Language->currentText(); - settings.fs = m_Format->currentText(); - settings.timezone = m_Timezone->currentText(); + settings.builder = m_chkboxBuilder->isChecked(); + settings.force = m_chkboxForce->isChecked(); + settings.host = m_editHostname->text(); + settings.language = m_cmbboxLanguage->itemData( m_cmbboxLanguage->currentIndex() ).toString(); + settings.timezone = m_cmbboxTimezone->currentText(); + settings.erase = m_chkboxErase->isChecked(); + settings.fs = m_cmbboxFormat->currentText(); + settings.mbr = m_chkboxWriteMbr->isChecked(); + settings.uuid = m_chkboxUseUUID->isChecked(); + settings.disktype = m_cmbboxDiskType->currentText(); + settings.videodrv = m_cmbboxVideoDrv->currentText(); emit selectedSettings(settings); return true; diff --git a/src/pageconfiguration.h b/src/pageconfiguration.h index 2be1971..a76e879 100644 --- a/src/pageconfiguration.h +++ b/src/pageconfiguration.h @@ -6,12 +6,13 @@ class QComboBox; class QLineEdit; class QLabel; +class QCheckBox; class PageConfiguration : public InstallerPage { Q_OBJECT public: - explicit PageConfiguration(); + explicit PageConfiguration(const QString* language); bool validate(); void retranslateUi(); @@ -25,15 +26,37 @@ signals: void selectedSettings(InstallerSettings); private: - QLabel* m_labelText; + const QString* m_Lang; + + QLabel* m_labelHelp; + + QCheckBox* m_chkboxBuilder; + QCheckBox* m_chkboxForce; + QLabel* m_labelHostName; - QLabel* m_langText; - QLabel* m_labelFormat; + QLineEdit* m_editHostname; + + QLabel* m_labelLanguage; + QComboBox* m_cmbboxLanguage; + QLabel* m_labelTimezone; - QLineEdit* m_Hostname; - QComboBox* m_Language; - QComboBox* m_Format; - QComboBox* m_Timezone; - QComboBox* m_Composite; + QComboBox* m_cmbboxTimezone; + + QCheckBox* m_chkboxErase; + QLabel* m_labelFormat; + QComboBox* m_cmbboxFormat; + QCheckBox* m_chkboxWriteMbr; + QCheckBox* m_chkboxUseUUID; + QLabel* m_labelDiskType; + QComboBox* m_cmbboxDiskType; + + QLabel* m_labelVideoDrv; + QComboBox* m_cmbboxVideoDrv; + QLabel* m_labelVideoRes; + QLineEdit* m_editVideoRes; + QCheckBox* m_chkboxComposite; + + QLabel* m_labelIOShed; + QComboBox* m_cmbboxIOShed; }; diff --git a/src/pagefinish.cpp b/src/pagefinish.cpp index c7fed68..f9db76c 100644 --- a/src/pagefinish.cpp +++ b/src/pagefinish.cpp @@ -32,10 +32,9 @@ void PageFinish::setupUi() void PageFinish::retranslateUi() { - qDebug() << "PageFinish::retranslateUi()"; - setTitle( tr("Complete") ); - m_labelComplete->setText( "" + + m_labelComplete->setText( + "" + tr( "

Congratulation!

" "

Installation complete." @@ -45,16 +44,7 @@ void PageFinish::retranslateUi() ); } - -bool PageFinish::validate() -{ - // last page, need finish - emit finish(); - - return true; -} - void PageFinish::show() { - emit changePrev(false); + emit toggleButtons(false); } diff --git a/src/pagefinish.h b/src/pagefinish.h index 887802d..386a574 100644 --- a/src/pagefinish.h +++ b/src/pagefinish.h @@ -10,7 +10,6 @@ class PageFinish : public InstallerPage public: explicit PageFinish(); - bool validate(); void retranslateUi(); protected: @@ -20,7 +19,7 @@ public slots: void show(); signals: - void finish(); + void toggleButtons(bool); private: static const QString m_messageComplete; diff --git a/src/pageinstall.cpp b/src/pageinstall.cpp index 38a7899..9dcbb4c 100644 --- a/src/pageinstall.cpp +++ b/src/pageinstall.cpp @@ -1,6 +1,7 @@ #include "pageinstall.h" #include +#include #include #include @@ -39,8 +40,6 @@ void PageInstall::setupUi() void PageInstall::retranslateUi() { - qDebug() << "PageInstall::retranslateUi()"; - setTitle( tr("Installing") ); m_LabelEta->setText( tr("Eta: unknown") ); @@ -49,9 +48,6 @@ void PageInstall::retranslateUi() void PageInstall::show() { - emit changeNext(false); - emit changePrev(false); - qDebug() << "install show()"; emit changeNext(false); @@ -67,12 +63,26 @@ void PageInstall::show() connect( m_clProc, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(onFinish(int,QProcess::ExitStatus)) ); QStringList args; + + if (m_Settings->builder) + args << "--build"; + if (m_Settings->force) + args << "--force"; + args << QString("--disk=%1").arg(m_Settings->disk); args << QString("--set-hostname=%1").arg(m_Settings->host); args << QString("--set-format=%1").arg(m_Settings->fs); args << QString("--set-lang=%1").arg(m_Settings->language); args << QString("--set-timezone=%1").arg(m_Settings->timezone); + args << QString("--set-erase=%1").arg( m_Settings->erase ? "yes" : "no" ); + args << QString("--set-mbr=%1").arg( m_Settings->mbr ? "yes" : "no" ); + args << QString("--set-uuid=%1").arg( m_Settings->uuid ? "yes" : "no" ); + + args << QString("--set-type=%1").arg( m_Settings->disktype ); + args << QString("--set-video_drv=%1").arg( m_Settings->videodrv ); + + m_clProc->start("calculate", args); } } @@ -89,9 +99,13 @@ void PageInstall::showStdOut() { // debug QString str = m_clProc->readAllStandardOutput(); - - // TODO: parse out +/* + QFile debug("/tmp/cl-install-gui_stdout.txt"); + if ( debug.open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Unbuffered) ) + debug.write(str.toLocal8Bit()); +*/ m_Output->insertPlainText( str ); + m_Output->moveCursor(QTextCursor::EndOfBlock); } } @@ -103,7 +117,11 @@ void PageInstall::showStdErr() if (m_clProc) { QString str = m_clProc->readAllStandardError(); - +/* + QFile debug("/tmp/cl-install-gui_stderr.txt"); + if ( debug.open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Unbuffered) ) + debug.write(str.toLocal8Bit()); +*/ if ( str.contains("eta:") ) { QRegExp eta_regexp("\\b(\\d{1,2}:\\d{1,2}:\\d{1,2})\\b"); @@ -138,6 +156,7 @@ void PageInstall::onFinish(int exitCode, QProcess::ExitStatus exitStatus) emit changePrev(false); } + m_Progress->setValue(100); m_LabelEta->setText( tr("Eta: 0:00:00") ); delete m_clProc; diff --git a/src/pageinstall.h b/src/pageinstall.h index 4976ed8..b18480c 100644 --- a/src/pageinstall.h +++ b/src/pageinstall.h @@ -15,7 +15,6 @@ class PageInstall : public InstallerPage public: explicit PageInstall(InstallerSettings* settings); - bool validate(); void retranslateUi(); protected: diff --git a/src/pagelicense.cpp b/src/pagelicense.cpp index 954eb6a..ed8d813 100644 --- a/src/pagelicense.cpp +++ b/src/pagelicense.cpp @@ -40,11 +40,10 @@ void PageLicense::setupUi() void PageLicense::retranslateUi() { - qDebug() << "PageLicense::retranslateUi()"; - setTitle( tr("License") ); - m_textLicense->setText( "" + + m_textLicense->setText( + "" + tr( "

License

" "

License Agreement

" @@ -62,17 +61,12 @@ void PageLicense::retranslateUi() "

Most of the software included in this operating system, allows you to freely modify, copy and " "distribute it. Also included in the OS software is distributed in the different conditions." " For more information please refer to the documentation accompanying a particular software component.

" - ) + "" + ) + + "" ); m_checkAccept->setText( tr("Accept") ); } -bool PageLicense::validate() -{ - emit changeNext(true); - return true; -} - void PageLicense::show() { emit changeNext( m_checkAccept->isChecked() ); diff --git a/src/pagelicense.h b/src/pagelicense.h index 3d455a9..6f6bfaf 100644 --- a/src/pagelicense.h +++ b/src/pagelicense.h @@ -11,7 +11,6 @@ class PageLicense : public InstallerPage public: explicit PageLicense(); - bool validate(); void retranslateUi(); protected: diff --git a/src/pagemanager.cpp b/src/pagemanager.cpp index 6ccc4a1..751eeb7 100644 --- a/src/pagemanager.cpp +++ b/src/pagemanager.cpp @@ -57,7 +57,6 @@ void PageManager::showOnce(InstallerPage* page) m_StackWidget->setCurrentIndex(0); page->show(); } - //pageUpdate(); } void PageManager::showFirst() @@ -132,8 +131,6 @@ void PageManager::removeStackedPage() void PageManager::retranslatePages() { - qDebug() << "PageManager::retranslatePages()"; - foreach(InstallerPage* page, m_Pages) page->retranslateUi(); diff --git a/src/pagemanager.h b/src/pagemanager.h index b9a6f17..b558e41 100644 --- a/src/pagemanager.h +++ b/src/pagemanager.h @@ -39,7 +39,6 @@ private: QLabel* m_ListLabel; QList m_Pages; - PageIterator m_CurPage; bool m_isSinglePage; diff --git a/src/pagepartitioning.cpp b/src/pagepartitioning.cpp index d6fd49a..6305f20 100644 --- a/src/pagepartitioning.cpp +++ b/src/pagepartitioning.cpp @@ -68,8 +68,6 @@ void PagePartitioning::setupUi() void PagePartitioning::retranslateUi() { - qDebug() << "PagePartitioning::retranslateUi()"; - setTitle( tr("Partitioning") ); m_labelDisk->setText( tr("Disk for install: ") ); @@ -112,8 +110,6 @@ void PagePartitioning::show() // get disk & partitions QScopedPointer libParted( new LibParted ); - qDebug() << "parted version: " << libParted->getVersion(); - QStringList disks = libParted->getDevices(); if ( disks.isEmpty() ) @@ -143,10 +139,11 @@ void PagePartitioning::show() try { part_list = libParted->getPartitionList(dev); + qDebug() << part_list.size(); } catch(LibPartedError e) { - qDebug() << QString("Cannot read partition table from %1").arg(dev); + qDebug() << tr("Cannot read partition table from %1").arg(dev); continue; } @@ -188,11 +185,8 @@ void PagePartitioning::updatePartitions(int num) if ( m_PartitionsMap.find(dev) != m_PartitionsMap.end() ) { QList partitions = m_PartitionsMap[dev]; - foreach(PartitionDesc part_desc, partitions ) - { m_Partitions->addItem(part_desc.first, QVariant(part_desc.second) ); - } } } } @@ -201,8 +195,6 @@ void PagePartitioning::updatePartitions(int num) void PagePartitioning::partitioningCurrentDisk() { if (m_Disks->count() != 0) - { emit manualyPartitioning( m_Disks->itemData(m_Disks->currentIndex()).toString() ); - } } diff --git a/src/pagewelcome.cpp b/src/pagewelcome.cpp index b725bfd..5fcea1e 100644 --- a/src/pagewelcome.cpp +++ b/src/pagewelcome.cpp @@ -28,7 +28,6 @@ void PageWelcome::setupUi() m_labelWelcome->setOpenExternalLinks( true ); m_labelLanguage = new QLabel; - m_comboboxLanguages = new QComboBox; // @@ -50,11 +49,10 @@ void PageWelcome::setupUi() void PageWelcome::retranslateUi() { - qDebug() << "PageWelcome::retranslateUi()"; - setTitle( tr("Welcome") ); - m_labelWelcome->setText( "" + + m_labelWelcome->setText( + "" + tr( "

Welcome to Calculate Linux.

" "

http://calculate-linux.org

" @@ -70,18 +68,14 @@ void PageWelcome::retranslateUi() unsigned int selected = 0; QMapIterator it(m_Languages); - qDebug() << "Cur lang: " << *m_currentLanguage; - while(it.hasNext()) { it.next(); - qDebug() << "pos: " << pos << " added lang: " << it.key(); + m_comboboxLanguages->addItem( it.value(), QVariant(it.key()) ); if (it.key() == *m_currentLanguage) - { - qDebug() << "selected " << pos; selected = pos; - } + ++pos; } m_comboboxLanguages->setCurrentIndex(selected); @@ -100,6 +94,11 @@ void PageWelcome::changeLanguageIndex(int indx) } } +void PageWelcome::show() +{ + emit changeNext(true); +} + diff --git a/src/pagewelcome.h b/src/pagewelcome.h index 391f63c..f8adeca 100644 --- a/src/pagewelcome.h +++ b/src/pagewelcome.h @@ -22,6 +22,9 @@ private: private slots: void changeLanguageIndex(int indx); +public slots: + void show(); + signals: void changeLanguage(QString); diff --git a/src/systeminstaller.cpp b/src/systeminstaller.cpp index dd37550..68f96bd 100644 --- a/src/systeminstaller.cpp +++ b/src/systeminstaller.cpp @@ -3,6 +3,7 @@ #include #include +#include #include #include #include @@ -25,8 +26,7 @@ SystemInstaller::SystemInstaller(QWidget *parent) : { //m_CurrentLanguage = QLocale::system().name(); m_CurrentLanguage = QString(qgetenv("LANG")).split(".").first(); - - changedLanguage(m_CurrentLanguage); + changeLanguage(m_CurrentLanguage); setupUi(); @@ -46,10 +46,13 @@ void SystemInstaller::setupUi() m_butPrev = new QPushButton; m_butNext = new QPushButton; + m_butFinish = new QPushButton; + m_butFinish->setVisible(false); hbox_buttons->addStretch(); hbox_buttons->addWidget( m_butPrev ); hbox_buttons->addWidget( m_butNext ); + hbox_buttons->addWidget( m_butFinish ); // right pannel = widget for pages + buttons m_stackPages = new QStackedWidget; @@ -65,10 +68,18 @@ void SystemInstaller::setupUi() vbox_1->addLayout( hbox_buttons ); // left pannel + // logo + m_labelImage = new QLabel; + m_labelImage->setAlignment( Qt::AlignHCenter | Qt::AlignVCenter ); + m_labelImage->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum ); + m_labelPages = new QLabel; + QGroupBox* group_box_list( new QGroupBox ); QVBoxLayout* group_box_list_l( new QVBoxLayout ); + group_box_list_l->addWidget( m_labelImage ); group_box_list_l->addWidget( m_labelPages ); + group_box_list_l->addStretch(); group_box_list->setLayout( group_box_list_l ); @@ -77,27 +88,22 @@ void SystemInstaller::setupUi() hbox_2->addWidget( group_box_list, 2 ); hbox_2->addLayout( vbox_1, 9); - // all window - QVBoxLayout* vbox_2( new QVBoxLayout(centralWidget) ); - - m_labelImage = new QLabel; - m_labelImage->setAlignment( Qt::AlignHCenter | Qt::AlignVCenter ); - - // logo - QImage logo( ":/img/calculate-logo.png" ); - m_labelImage->setPixmap( QPixmap::fromImage(logo) ); - - vbox_2->addWidget( m_labelImage ); - vbox_2->addLayout( hbox_2 ); - + centralWidget->setLayout(hbox_2); setCentralWidget( centralWidget ); - // minimum size for window TODO: remove magic numbers + // set windows icon + QIcon icon( ":/img/calculate-icon.png" ); + setWindowIcon(icon); + + // minimum size for window TODO: remove magic numbers, add other sizes? setMinimumSize(800, 600); setMaximumSize(800, 600); QRect scr = QApplication::desktop()->screenGeometry(); move( scr.width() - scr.width()/2 - 800/2, scr.height() - scr.height()/2 - 600/2 ); + QImage logo = QImage(":/img/calculate-logo.png").scaledToWidth( 120, Qt::SmoothTransformation); + m_labelImage->setPixmap( QPixmap::fromImage(logo) ); + retranslateUi(); } @@ -107,49 +113,47 @@ void SystemInstaller::setupInstallerPages() m_PageManager.reset( new PageManager(m_stackPages, m_labelPages, this) ); PageWelcome* pageLanguage( new PageWelcome(&m_CurrentLanguage) ); - connect( pageLanguage, SIGNAL(changeLanguage(QString)), this, SLOT(changedLanguage(QString)) ); - + connect( pageLanguage, SIGNAL(changeNext(bool)), this, SLOT(changeNext(bool)) ); + connect( pageLanguage, SIGNAL(changeLanguage(QString)), this, SLOT(changeLanguage(QString)) ); m_PageManager->addPage(pageLanguage); PageLicense* pageLicense( new PageLicense ); - connect( pageLicense, SIGNAL(changeNext(bool)), this, SLOT(changedNext(bool)) ); + connect( pageLicense, SIGNAL(changeNext(bool)), this, SLOT(changeNext(bool)) ); m_PageManager->addPage(pageLicense); PagePartitioning* pagePartitoning( new PagePartitioning ); - connect( pagePartitoning, SIGNAL(changeNext(bool)), this, SLOT(changedNext(bool)) ); + connect( pagePartitoning, SIGNAL(changeNext(bool)), this, SLOT(changeNext(bool)) ); connect( pagePartitoning, SIGNAL(manualyPartitioning(QString)), this, SLOT(doPartitioning(QString)) ); - connect( pagePartitoning, SIGNAL(selectedVolume(QString)), this, SLOT(volumeSelect(QString)) ); + connect( pagePartitoning, SIGNAL(selectedVolume(QString)), this, SLOT(selectVolume(QString)) ); m_PageManager->addPage(pagePartitoning); - PageConfiguration* pageConfiguration( new PageConfiguration ); + PageConfiguration* pageConfiguration( new PageConfiguration(&m_CurrentLanguage) ); connect( pageConfiguration, SIGNAL(selectedSettings(InstallerSettings)), - this, SLOT(configurationSelect(InstallerSettings)) + this, SLOT(selectConfiguration(InstallerSettings)) ); m_PageManager->addPage(pageConfiguration); PageInstall* pageInstall( new PageInstall( &m_InstallSettings ) ); - connect( pageInstall, SIGNAL(changeNext(bool)), this, SLOT(changedNext(bool)) ); - connect( pageInstall, SIGNAL(changePrev(bool)), this, SLOT(changedPrev(bool)) ); + connect( pageInstall, SIGNAL(changeNext(bool)), this, SLOT(changeNext(bool)) ); + connect( pageInstall, SIGNAL(changePrev(bool)), this, SLOT(changePrev(bool)) ); m_PageManager->addPage(pageInstall); PageFinish* pageFinish( new PageFinish ); - connect( pageFinish, SIGNAL(changeNext(bool)), this, SLOT(changedNext(bool)) ); - connect( pageFinish, SIGNAL(changePrev(bool)), this, SLOT(changedPrev(bool)) ); - connect( pageFinish, SIGNAL(finish()), this, SLOT(close())); + connect( pageFinish, SIGNAL(toggleButtons(bool)), this, SLOT(toggleButtons(bool)) ); m_PageManager->addPage(pageFinish); m_PageManager->showFirst(); connect( m_butNext, SIGNAL(clicked()), m_PageManager.data(), SLOT(showNext()) ); connect( m_butPrev, SIGNAL(clicked()), m_PageManager.data(), SLOT(showPrevious()) ); + connect( m_butFinish, SIGNAL(clicked()), this, SLOT(close())); } void SystemInstaller::retranslateUi() { - qDebug() << "SystemInstaller::retranslateUi()"; - m_butPrev->setText( tr("Prevoius") ); m_butNext->setText( tr("Next") ); + m_butFinish->setText( tr("Finish") ); if (m_PageManager) m_PageManager->retranslatePages(); @@ -171,12 +175,12 @@ void SystemInstaller::removeTranslator() } } -void SystemInstaller::changedLanguage(QString lang) +void SystemInstaller::changeLanguage(QString lang) { - qDebug() << "SystemInstaller::changedLanguage()"; qDebug() << "New language: " + lang; m_CurrentLanguage = lang; +// QLocale::setDefault( QLocale(lang) ); QTranslator* translator( new QTranslator ); @@ -199,17 +203,24 @@ void SystemInstaller::changeEvent(QEvent* event) } -void SystemInstaller::changedNext(bool state) +void SystemInstaller::changeNext(bool state) { m_butNext->setEnabled(state); } -void SystemInstaller::changedPrev(bool state) +void SystemInstaller::changePrev(bool state) { m_butPrev->setEnabled(state); } -void SystemInstaller::volumeSelect(QString volume) +void SystemInstaller::toggleButtons(bool state) +{ + m_butNext->setVisible(state); + m_butPrev->setVisible(state); + m_butFinish->setVisible(!state); +} + +void SystemInstaller::selectVolume(QString volume) { m_InstallSettings.disk = volume; } @@ -227,7 +238,7 @@ void SystemInstaller::completePartitioning() m_PageManager->showPrevious(); } -void SystemInstaller::configurationSelect(InstallerSettings settings) +void SystemInstaller::selectConfiguration(InstallerSettings settings) { // replace selected volume settings.disk = m_InstallSettings.disk; diff --git a/src/systeminstaller.h b/src/systeminstaller.h index 3c3d022..d7802db 100644 --- a/src/systeminstaller.h +++ b/src/systeminstaller.h @@ -35,23 +35,26 @@ private: void removeTranslator(); private slots: - void changedNext(bool); - void changedPrev(bool); - void changedLanguage(QString); + void changeNext(bool); + void changePrev(bool); + void toggleButtons(bool); - void doPartitioning(QString disk); + void changeLanguage(QString); + + void doPartitioning(QString); void completePartitioning(); - void volumeSelect(QString volume); - void configurationSelect(InstallerSettings settings); + void selectVolume(QString volume); + void selectConfiguration(InstallerSettings settings); signals: - void selecteConfiguration(InstallerSettings settings); + void selectedConfiguration(InstallerSettings settings); private: // ui QPushButton* m_butPrev; QPushButton* m_butNext; + QPushButton* m_butFinish; QLabel* m_labelImage; QLabel* m_labelPages; QStackedWidget* m_stackPages; diff --git a/src/tools.h b/src/tools.h index 13bbf63..3895ec9 100644 --- a/src/tools.h +++ b/src/tools.h @@ -4,11 +4,20 @@ struct InstallerSettings { + bool builder; + bool force; QString disk; QString host; QString language; - QString fs; QString timezone; + bool erase; + QString fs; + bool mbr; + bool uuid; + QString disktype; + QString videodrv; + //QString videores; + }; QString LoadTextFile(const QString& name); diff --git a/translations/cl-install-gui_ru.ts b/translations/cl-install-gui_ru.ts index 74261eb..cfd0719 100644 --- a/translations/cl-install-gui_ru.ts +++ b/translations/cl-install-gui_ru.ts @@ -51,12 +51,92 @@ Format - Файловая система: + Файловая система: Timezone: Часовой пояс: + + Installation for assembling + Установка для сборки + + + Do not prompt before overwriting + Переписывать существующие файлы не спрашивая + + + English + Английский + + + German + Немецкий + + + Spanish + Испанский + + + French + Французский + + + Italian + Итальянский + + + Polish + Польский + + + Brazilian Portugal + Бразильский (португальский) + + + Russian + Русский + + + Format root partition + Форматировать корневой раздел перед установкой + + + File system: + Файловая система: + + + Format root partition before installing + Форматировать корневой раздел перед установкой + + + Install bootloader to MBR + Установить загрузчик в MBR + + + Use UUID for mounting partitions + Использовать UUID для монтирования разделов + + + Disk type: + Тип диска: + + + Video resolution + Разрешение экрана: + + + Use composite + Использовать композит + + + CPU sheduler: + Планировщик ввода/вывода: + + + IO sheduler: + Планировщик ввода/вывода: + PageFinish @@ -192,6 +272,10 @@ Java 2 (SUN) Runtime Environment, Standard Edition<br> Disks not found Диск не найден + + Cannot read partition table from %1 + Ошибка чтения таблицы разделов с %1 + PageWelcome @@ -205,7 +289,7 @@ Java 2 (SUN) Runtime Environment, Standard Edition<br> <p>Welcome to Calculate Linux.</p><p><a href='http://calculate-linux.org'>http://calculate-linux.org</a></p> - <p>Добро пожаловать в Calculate Linux.</p><p><a href='http://calculate-linux.ru'>http://calculate-linux.ru</a></p> + <p>Добро пожаловать в Calculate Linux.</p><p><a href='http://calculate-linux.ru'>http://calculate-linux.ru</a></p> @@ -288,5 +372,9 @@ Java 2 (SUN) Runtime Environment, Standard Edition<br> Next Вперед + + Finish + Закончить +