From f2defd033db24b16141917f1e2c1d7a95554c360 Mon Sep 17 00:00:00 2001 From: doitux Date: Mon, 5 May 2008 07:46:19 +0000 Subject: [PATCH] mainwindow --> gametable --- data/translations/pokerth_bg.qm | Bin 78999 -> 78899 bytes data/translations/pokerth_de.qm | Bin 82061 -> 81961 bytes data/translations/pokerth_es.qm | Bin 80319 -> 80219 bytes data/translations/pokerth_fr.qm | Bin 81155 -> 82315 bytes data/translations/pokerth_gr.qm | Bin 79308 -> 79208 bytes data/translations/pokerth_hu.qm | Bin 47050 -> 46950 bytes data/translations/pokerth_it.qm | Bin 80897 -> 80797 bytes data/translations/pokerth_nl.qm | Bin 80615 -> 80515 bytes data/translations/pokerth_no.qm | Bin 46351 -> 46251 bytes data/translations/pokerth_pl.qm | Bin 58931 -> 58831 bytes data/translations/pokerth_ptbr.qm | Bin 80851 -> 80751 bytes data/translations/pokerth_ru.qm | Bin 72906 -> 72806 bytes data/translations/pokerth_sk.qm | Bin 78833 -> 78733 bytes data/translations/pokerth_sv.qm | Bin 76761 -> 76661 bytes data/translations/pokerth_tr.qm | Bin 76687 -> 76587 bytes data/translations/pokerth_zhcn.qm | Bin 64068 -> 63968 bytes pokerth_game.pro | 58 +- .../qt/gamelobbydialog/gamelobbydialogimpl.h | 8 +- src/gui/qt/{mainwindow.ui => gametable.ui} | 521 +- src/gui/qt/gametable/chat/chat.cpp | 110 + src/gui/qt/gametable/chat/chat.h | 67 + src/gui/qt/gametable/gametableimpl.cpp | 3816 ++++++++++ src/gui/qt/gametable/gametableimpl.h | 473 ++ src/gui/qt/gametable/log/log.cpp | 1668 +++++ src/gui/qt/gametable/log/log.h | 93 + src/gui/qt/gametable/myavatarlabel.cpp | 40 + src/gui/qt/gametable/myavatarlabel.h | 45 + src/gui/qt/gametable/mycardspixmaplabel.cpp | 232 + src/gui/qt/gametable/mycardspixmaplabel.h | 93 + src/gui/qt/gametable/mylefttabwidget.cpp | 73 + src/gui/qt/gametable/mylefttabwidget.h | 45 + src/gui/qt/gametable/myrighttabwidget.cpp | 72 + src/gui/qt/gametable/myrighttabwidget.h | 43 + src/gui/qt/gametable/mysetlabel.cpp | 127 + src/gui/qt/gametable/mysetlabel.h | 70 + src/gui/qt/gametable/mystatuslabel.cpp | 48 + src/gui/qt/gametable/mystatuslabel.h | 44 + .../qt/gametable/startsplash/startsplash.cpp | 282 + .../qt/gametable/startsplash/startsplash.h | 47 + src/gui/qt/guiwrapper.cpp | 4 +- src/gui/qt/guiwrapper.h | 4 +- .../startnetworkgamedialogimpl.h | 6 +- ts/pokerth_START_HERE.ts | 210 +- ts/pokerth_bg.ts | 210 +- ts/pokerth_de.ts | 232 +- ts/pokerth_es.ts | 234 +- ts/pokerth_fr.ts | 234 +- ts/pokerth_gr.ts | 210 +- ts/pokerth_hu.ts | 234 +- ts/pokerth_it.ts | 250 +- ts/pokerth_nl.ts | 234 +- ts/pokerth_no.ts | 234 +- ts/pokerth_pl.ts | 210 +- ts/pokerth_ptbr.ts | 6382 ++++++++--------- ts/pokerth_ru.ts | 250 +- ts/pokerth_sk.ts | 210 +- ts/pokerth_sv.ts | 210 +- ts/pokerth_tr.ts | 214 +- ts/pokerth_zhcn.ts | 4578 ++++++------ 59 files changed, 14825 insertions(+), 7600 deletions(-) rename src/gui/qt/{mainwindow.ui => gametable.ui} (87%) create mode 100755 src/gui/qt/gametable/chat/chat.cpp create mode 100755 src/gui/qt/gametable/chat/chat.h create mode 100755 src/gui/qt/gametable/gametableimpl.cpp create mode 100755 src/gui/qt/gametable/gametableimpl.h create mode 100755 src/gui/qt/gametable/log/log.cpp create mode 100755 src/gui/qt/gametable/log/log.h create mode 100644 src/gui/qt/gametable/myavatarlabel.cpp create mode 100644 src/gui/qt/gametable/myavatarlabel.h create mode 100755 src/gui/qt/gametable/mycardspixmaplabel.cpp create mode 100755 src/gui/qt/gametable/mycardspixmaplabel.h create mode 100755 src/gui/qt/gametable/mylefttabwidget.cpp create mode 100755 src/gui/qt/gametable/mylefttabwidget.h create mode 100755 src/gui/qt/gametable/myrighttabwidget.cpp create mode 100755 src/gui/qt/gametable/myrighttabwidget.h create mode 100755 src/gui/qt/gametable/mysetlabel.cpp create mode 100644 src/gui/qt/gametable/mysetlabel.h create mode 100755 src/gui/qt/gametable/mystatuslabel.cpp create mode 100755 src/gui/qt/gametable/mystatuslabel.h create mode 100755 src/gui/qt/gametable/startsplash/startsplash.cpp create mode 100755 src/gui/qt/gametable/startsplash/startsplash.h diff --git a/data/translations/pokerth_bg.qm b/data/translations/pokerth_bg.qm index fcc093a95dd27ccce2c13e7924dc52d14e7cc960..4bb1ee14c7c3cc8fafc3ec67053263dcc822e37e 100644 GIT binary patch delta 6970 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%0DKz+BMO%TOcX) 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 diff --git a/data/translations/pokerth_fr.qm b/data/translations/pokerth_fr.qm index 62ce2a3d8469af6801596c5256e4b3540c112ebb..532815518cc80c11cf0147bb731cfce18f3921b3 100644 GIT binary patch delta 8013 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 delta 7259 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 bYPip7R~i1cH-E&71*4UpIqphGBxd{%cHuYT delta 6952 zcmZvfdtA=R_rT9Q*Pd(X>ehuWDoR39R1zVZu!UH}rVAxXBs@Y%C2>|m$eotHmY((X zwc6G$%3aGMv2Ljqt94!0uJ(7T=Z~kJU$57A&&)G(&Y3gkoX>drOmz9VsGyq$TK*iU zdFnVz$BjCk*0G-G0l*Xhf@I=g9p~v-3?K}k`6__meZ-e-6p-ABlW5HX5UmX-ZUxc$ zb;KqR6|Vse2)nd)Kp3QBGKgvhlCVQMJ_gZmg#aQ85RamHQ3!}rzanOUcu4{A1c>uQ z#1|mmat=Uj2jassiL*d_jf@c^NYbtoD?vJ^0zk42x@>qwya_$CZqWIqu3-NngLndb zvK#@7Y#_MsERn+)ug%0N9X~(ZP?H%S<}&B>v5;?A8F7G&4`r zT>zavXWr>e#A4>HDL+D;7tH608o)G}ja*y@U>3pBN@;9%kS*nr#Aj_Z-`z%wNo=bT z{cb5@#pa2`2zK-yt+UF}@gckP?mK|auB=+Thqyq;E9{nyFF+R$_FxBHNtZgNX}*R4 zUEKx7+bMv$E)+N~KScap(AR?mbc@olp^e?+1%78Jc)HgM{1@HeAAmg{&+m~y)oz`4IL>jhnv^J-!7q zJ}Cz9el6NHv>9OVSy9OkQviItM2GV!t$Y>{|0EtDejwf^{srJ`MEpn`O#Fu!Pi&_A z_uWRFe`(^f=NpWznIMss+PViar z;uJOUlX&qCQZU*@#~0#)M4BJ-KXKtm@>GbGc*obIAmoC0@4R$?v17#tPAw&7icd~x zB9@D*a-#q~>m|P5e3h6Xex&J6CkX2%e$>iT@#A=R8lMw4KBfGea7Fywn>;abq>h;q z;rOjIzAG{7K_2;hnvSJ9{@up#0Eu0ZA3%7PWZ?Cm0V3=rLk5!}5ql*Gd*T5m4VEPQ zO%--ho0K+baI3$xPS%NdK>DIt22f;aqzanD79b=7B#tbBCjMmMdui%b9jZRLZZ$R->qce9_0PIXK zsx~9VyBuXkkMb%1PoI~$oCpQ@$xasGO(*{;O~==5JQJ_u9a+?h;{a#FblfG2DxN^& z_p*eP3V?GSvgBXrAm`T0QXWSDRCd*InrzW>3hqj-;~m*rO&LIyc`G$gHCI-+iGri* zcpJ|vW!nx72RJ`dw*BcFfD1;l9na{ibzz)r=lDa!qdLBo?RWD7xHwSu-AeMzr2(?D zhpBE{`dM}^Y!JX@GuegoMq-5Q;!cXC%U5KV0_nt8WU`x&e+2mXhU{*R4dws!Uu1X7 zrUTrtl-*lJmFmV8S>y7r0e%^x;|bZzu@pQv-DU5KOo`KEA0kN6&Hu6QoeKM4%JZg)ie3Ub zNYieGYc}x@7e(Lrd?G3aj-tZzGF-9R&K=-Ylwy4_?R#CQ&=f5tL9gE^j>X&uc=Ma$ z6p-bAj#r$zCy*g#AZjueV2ml13I4zYzbd`FrT`O`DgzeV0~2}ZxLL>d8fB;kE;5n?x9Dti)z#aBx+(ibc(^Zw1rvo!CR9%qMyvb43#n%XZn~vP|`$|9xOqL8`w} z_X6uIPa9b>ed?t0O~jAt1)G|Hb^Ah{F8Pc2Or1F{9$5FG>a5X@#3kyrcFn}M>fOF-VAhds zw6Rxz!>KkAU^?QUCB+9k8BW>YqNZfXS@qHud?wtAW`s(($^w@qrC62QT&8 zo_4?-yBhcIOJm1$W4DGl;;+U58y^F6x@279x*J%pe#Q;Cq@Y)^@jw1IfH{9ji=1Dh zN3tc(h_l1HPfT%SvJF-*=}XNFogQ|lIY;W7@=P@|=jDBwI~FgoKucOxyu`Dm&$BF; zIUZyEiAy{Xx^TfE@5FIv}l;rG;*-|@oBH@ljP#xIIX z>8Sb0onUl7Zf&e5d2~Y3JS-}7))&arOj#}Z=KA3A*l_$Yem$O95QA@jOT*}xIk-8- z0bkzi#$P!wFYL3?wcXBYN7fHte`BN2Q-RCo2P0mHHBj4Bq?c`Q~^cCj^~W&&6S7OY|+^$DG&* z+`TzUUmAZbW>c}xo$=_pFiGovSIBrmPZohGYl3lam7o58Y&wzNZhWw$rlY|;$bvTi zi~ZZ_cxl9n@$MoUe6aMt)VA_`8JYVeFHnD#cKUfo)=?fBCrstbEZG#Y<+8+%MsO!rMaz^wq>@yHr))OjJ!^`~abLyhP{mh7I;@pSkgIUkp&WmB7rJL}ExYDP3?PArhm zc4YH;zJd+qi6+dFe=ufwd|t~xYfM-wi$sr7TZ})nw4M9r<;G#jci$T-Sw5YocVkgF zZ0$DeziJ{iKc3f*E&x|2<+8L`k4ZoQdIfTj=9NQgh*BV!T#Oiz}9zKg@~XoDyIcbPSDL`$DHn2?|Guot== zo@gMkSe3~?ny^Ct!HP}9!|THhqB{^npF8m%o!J-K1w-DtV(3rx22$pC`iKcnL$zOR zo6XvtzgoN2VDV8+HXhd`wtdv%8_oF(pnu|O7p z!xp&V?@6EY7jm|b4|ifSFz*><-?JHfQ7>k}Pdl)F+}4GS$E)`^mOR^!8_VCfb9%=8 zjrgkGocpWUNQ|NMQZ0+*FIt|7sh;G(gp^s-f^hUw>sId4SfJp3HoDDQNNoZtA6sMP z###E7qU6?at?a#0!b@D}8=e$90$-_9xV@2b+mmt7hW6{g(J}pMlf(b!#@IB^HmFqivi! zj@g&cQ4wx7nZ-ACrmVV|I~y1LmV_&p*r3Uhq}Cv6;b?lGxK~9RY>aN4g?}wtO)a`L z&~S9-27FtbqW??&M4^km2(F$ z=a&B-Ip``~l*wSM$sEoj#Po)qnlzg`bY<)L`d(}zFBOy5-Zd;kd-WVP4<9IPuuokU zM$LCXRoyvlb)jFosL|e7D`vdNf-0tbM`cH^@Tnf`Gjv^Jf&Z=;#YAI)yOI|A*nCf4SI_WH*4WSpe(;vd?Ddq{Fb{I)K_(fW=_|;oAW$jxsE80+^Hp z5at7rc43u)e8W@)xawy=bHWm{;WO#Stl5* z{+%4O0?V2&da{y)!Aj)eUfVmdKoHH=tVjDom1BhAH z3lK09Vpg62*xU+}rnCbjT!)0}6#&*H@H344lqt z1sGco1GJq`a~kgTzNH0Wv~a zGWp3KfaFY;?+;RdnCq;t;s*fD6IrEuNe&8Nm9Icv!Vcp$CN750`k`G=*fVzIR z#zqP^x`J)DcsD@q8@8((P2gC|(DgLK_207t&rP}6;ZTBo7kVV-J=W#_9gv0 zw8d%c>%rT|(-Z80^L^y$a`wHqbhfj7*l#}llyV|i4b=JMIH(Eal+}U9)$9vm0H)fj zMGnwB+aIbG_Qz5Zf56bQTCMQwZvgP5TFnzWs>xT>I+7Xz{N;bB?e~}j(9o)OzK9Hp zy%;upq4w(uTKEGqwU>DZX{+aQxEF_V4*yyq9bFMeIGswgG?e3MO(h+) zoa3cSWfydevuMzV!aB^U>ZPNquH)34q@=dL#6b?tC$~GtJUGo~SY*j*i#!Qn^hFxnpn}6s4n32fY5-(oW%`Iuqu#|#Uloc+}l*`iF&<^GER zR*nqoW^=AhpreTh;oQ)sNbMaMI(^5mD2j9QI+u>*K4;(*?d;~WoPl#~RR5a;INxF= zF^}_$s}NwNF6X%pv9X6}Nc@B7K(rzH67z_U0akkvDWcV7T)0F#5nIFMbyMBTu5kGu z4&}miu7UPhYMRkp`|M``t*%_B7p4GSf!uLLBdDCUiE?__afX|@B#sm}xO1|t=?wL_ zg_CJv)^FS*H)=SYrrhE}DNUHoE#5>6c>T(-yNcU1kMxsUxh-L|Q{nHpn|9Fxwo|#= z=9B|$ZRGAaQAYjY7w+-+rvSS?owkapx2 z&-3~hR8$jr{yyZ$>OS7wt$9=hPkD3yq7LgjnkTPvIzkcd=2cChNVF<=OV9QJq(0@< zI*}u67hZ$!IBLlccnuk;0OL;bPJTZKkQB>1Uup#~x{KkC65a(3U4ZiOyqm>TwrgJU zZU@~V`*_}ilcw}hn$7#^#~T2ve&;X3&6R8Z}&Hy)fgRq z^f!i7W~mG@iXX>aLA`q$Kk?9EYPlKwly9C;hrGp4zoZUO@rs`lOGg%?&M(b$r-d8% z^|NMDa$e&%efEOp3*xtkXd&}r{!WinfT$h(J*yr7 z`l;2jSF0CBc~S=rQLmqoM#nl>%WTP{$)*GToB)*!Gy z8bhB+3qhicB6sLu=u*vaRTaY>uLbFqM<}B840kRRq<6&Ag1-so7WM&zJQfsuMS(18 z5ER}|q$IOpxWPoQXfY-C+#-e>W(jKLhp1)WS5OXxU|oV> zO>@rzuwk1h-e1QvGjf7u-ISN*(We!M97PQ?0ll zc(iyIKv^ck&CdnTqA7VgjtE|@A30UgQCGs3{>w1f5w89G}L<)j#$AdKjxvsdbve-f^i#ZZ~O5N_krj;ya1b|=rH zuiG+VPvBcBQv+e|$9DiKy@e-N6;e)x3QzGU;BbB6XY$rhDPo!M_JN@Z9|?b{hytj8 zEPTSFi9;3%-wc}4{h&jnmSszg#6rZ)@1w8d4H3_iSi4GOdG0vf`|Lzk;Z*0lJVdr^ z3M4;WN|qrB7t;&>*v&8_Dg%k_vqubO!~=0>VVB#rDqcQU3naYJ_&exJYQYo9X!k1o%_au7M!2Kk;5dA<&jYKHCD`2Hi<(EK;a5G*=(ycM zp)(5#LZ{?(WasKDd~52Dn(3N~SI6j$!5(L^;`M7*`nc7~ z1)~qfVUTVBUMu&(L**7I_3**u{qyk7(q$N+Ex>Ps{fRQ1Xehx>gAmM}6^y!4SA}b) z5<7h6F2WXfdz|cHjg{^aye#v@4Rt|SRcEA-quhh>ma#3)HfH3?9bWidaT-PxGjd*| zy~1uV%uzv!WjNm19)_V(7sVRU5?jR@{qBZX=HcILDa9)?Q(Ts2NXtyaxwYmPlNN_H z#_gC>T!!;&6EUvV1pC6>F*V$<+0uzjZE41#S8OpQzz!D#N^s5*Kis$20XH0u#rng# z_^K{Op>IkVherFHF;CM3clwxPn}ZXcYNdnGaK?2$qcJAX6%)2vC~W7;UGSQfdb7SO z_67#wo-{|a%QRICH5yvsg_0=6bNfhR1>f!%kF5QpvDHC}H}tGvv6l@vWf>mP~9rtJeKHTexIeO0cv7R3to-4MFaKapad&N83w)^2Gxhn=a zJ0Y5c3kBKfbF&iCGv;LB$8r~Cu{P4d>HR26?H~H5PDKVh`p*e2PA{b&A@JS;Ki06* zd@r)pXw)BF)5hSFksGirbcO!<2rNhPD z!^PXf#o3Pj$_r&_S}Kc2b!?Tzwj6?K~{j~3cT zDT_H;!(#i@C{TIy6Bm1B@wv+kWwE|FRatD(pQ0>!g*YjT)kVWb*&~KU{^!ACLdp9? z(bCn%mNio(?^Tg=7hqdyimDNR`b6n4qdC2Yk}Fs$I-J^jRrSs1xrwT(pq)0Vs+(gh zRp;V1bt+pu({NH2hdgfxwo`p6RyIRL)oa-Ch@~^!cSS}=qt;$sT$h=vJniajl`8L} z=|&@L+={AdEsFwGmFdPF<++Ajyt2++)oMgWnyMAwB}i2jY4m?8vvxmKD;<9?)#?8U zZ~m`nr(tTIBNpz<{;$D!#o&3TVaJ}3w^L>A-rQ6hmXZs-B`prhGHU6XC=HXSjUh*6 zDzo6{<^LB)Vz7bgi?)uQsw!9gQL1zK*=DP%{%D?~`eJm7jjC1Yo@!N9!bn@$f8>ce zoQ65{m-oJ9PAZ(gV5nujw^qa&KJJw2$`T_}W!0NCOO(Z-4H~ewP*trAicwar^gpC5 z4!!hYcf6{KRWngl^{REOvTDK3RmviN?`dUmXxhnbdsS6ur%X`Yr{6s;s9ITU8Lz6+ zESjmR`p!C8Rb}63^dfgNitKOx%-msc2 z#l7(}g>2NA>5U0GKJ<$WM&jM2Bk|4(=OMwD1OxQWO~*!W3w)?)gl!f%xK`5#jd$hX zMNMzax0{75EiZhn>xJVDVsVU?4|ZtzVwrU!x|MS=x-1TVEQ`VKLh|r|K^}(N?84p4 z4&c6J#(2H5X=srcyu8*MtLkUqjGA_wG=4Q+TDt+C*)W&DQo02_m0IGwP6?V;debFv zEL{L~vAn_r)4{+Mh67quA38zc1tBxz*zoqZR0gsoDN0vM*_tiEylpS!7nI9UeEIjwU9hcz?Vv z=7!O(t(kyFn=-L-hY^0~$k=66$6%bVCGE&eY|D+oiHp+1$fahhiqtGKOL0%)nScq9k%!_#IGW<@yd~_jNOQ2Y&+_XRfbY* z%9w`RrX^v!(PYJ#d#{6nN794o{yqXD%$W5w(=8Nw!|YIe;b2YS@-Zkf3X{#E)kZ=H ze$ixtC3Mr>GNTdODvsfW{j)K9(@|U=P=roB1sG#4!E zV}^?yEODW}g~DcWx(tskwL$j-GcYyC8B5yTkymAoeUWQ0Y1t%&ja~?2YumugXRwB0 zXm>tt2tA^(F>c9Fu)EzA^&ATD8;J{wJVxO+9>#b^!wQWxjj`i!J~pL{!dEE<&6X0n z=xbs_pn>A2N>9lL7+Gq7H*4o%mzf8SGB=@H`YEhk8;lovq`0ML3|54sqMoh<<3~;Z EA7v=`>i_@% delta 6990 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 jkH-vePh1{6Or;AxZN809sxq)N&>J5oyQ$ToXmM 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 delta 7130 zcmZvf30ThA_rTA6*WRVKQc2ogWvNgJNs%ncn!Rj;%%o-7D5VTH>l zw!t(EQr4ImWQnqjkjWUk$^TUE^Ze^=dY;?op6~a5?>YCJd(OS@=69kc??pLQ8ff_I zNX=cx**fOxcuL2|L^lAY01(6x`|22}V?Kb;m!6*o@c*7z*F*u$J0Xb1%mvZ%NyP0S zTD_9^5k&cEpaEg0#tsO_>Zk$Ht==@*5glKE=+8U=kqwB4(R0xR5GSl9t_1Od9O7vZ zXNrjLK)n7OfY=_yyJiumg7_*KBhCOx(skmmAe~bTAXy2P*{_JF!9M*rTEEm89BP*k zcY#-WCjbL$@XtF-+yx^%))8x(D6@i*7uEyF0wEwxOI!m187GLvFk$ir;y*Akbrpcz z4FXHH5@R4JJQ+Yy08=A}5bwa$LNZ)wMBG6f46}x4>Zy|e(G3$S?>5n}osOenNkuh) z;UY+%LK7K2h5vhb8;_rzA ge_(Y-r*`0J8v=w3}qJtt^>OCBA5) z`N}4??Zh@1(EGN>SiV^_fQ2pFf0xF!bJQ_~U3_z#BY9-GU80rM&VY$FB1 z6~7X1H_>jaj=uAqXXmrZnW5=qPB0bFK^v~v@P=GRlIy2Xl8v=l10$D;I;w5dHyL@1*9G=2Ltb^6BZxL>q>_(_1i)lKwL z>lm!#R?(J6`2b!ILpkF`Ht}IHceu>1l#6seGVg>O7Kz}*$Bhj1q znHWi|r~L1~nL1zS!4=W2Y)1S-qq6YcJ{gBYyi_c~UK_NCIw2H1-(m0cjt&~dY< zd?bZtK)L7-Q(CESppG}2I50?bq}?xI^~*HiuviWl9*#l!=m=dN<% z3(;#c;^5B2_QXh{Gw~qNi};@S3}A>4kybP$O$-;w6GJYDC54pteraOq5!wrWm10ZN zGXO)ki=9Fns-ZyK?TsxlMLam64Ztu1qNbrUMf~-WvBU%7$k0vz!=1(PlSuLK5OIPV z6`bKO#fkAMfDumO#Lc8&!9f#0qhh#+p_zzPq@pk!!@&5iTS@7uP(c{G9kn{M?f~ zF=?%ize$ASHUI>gN=!SDM*<6U{M^K#ARP-O>Ww}CK_4Z(uU`Y0%q9K$k|C2nNTRky z08ELIM17(PJLQ5zlhW-lz|^jil*zP`saGUR&lCeJyDVAWjSNZuRkGS^Fu?M|lGU?k z5MN17KBxy+`HiF`$$|L3iL1gT=cx+9sw&BiL`vI?Sjn9MmBb3k!;`iEnQtY3KK=t> z^##eZpL_tayrjnbAAsycjnuR*1R$rK)bTULDn}z7b(>tDbFzuK?WAMHs{nGtq=5$y z5zk7e-L3^#V<`>3Xh6)9hK-?+t+^&m`q~`;Crek(`37L^Txm|}8{$c6o`MvueIwo3 za|Xb=?$TYE4~fU5mz8ATI?X5P9SgGXe{ZA@WhMZdrb=t;WdNJ=3=D@*-sbl*P)%P( zJZE6DX)3@LKOK)73_BJEP~c!N-jE7S!CHf$GAgwNl?L%6dIM~=G*~&4PQk7D20u-w zGhpi%gEJM20k&Hjl$(;`?bl=mRaun(XY*xFM*{##>}7$TwDOX5O+0U=3BsJoIf6*%uW^+Urbyti~F4xQubOFUmXZ=VTF#r%jPel&3(~Q#}L_a%|Vij z8mWOxLRsD#+8me0=y*u>zoNkam)puVJ$+5QB-{LqPOU4JvMu9^h*>&5knQO118~(< zc07eVQ|=-=yNl{Z`BmAuv3&rpS;@*4))1%4E^MK_bnTk#;vib_b(!ps>eB!>YGij- z*;4-BESKFmI0N8T8`<5ZRH<&|$!Zq;2vFgxWsw{OZJ zfhyjebh*rUFTh<3x%C(-!S~$cc41`rz3L`b`pMlNQb;Oy$bG&d58iL9;~b)<;lW|~ zFfGOI{%85vpostvHa4+JAfNhC1yB_#4;lH0cwZiRl3ZP_mWPck1$b&Kk8`B=PXpxH zo&m%x`F1gRq{cvAI3=3+T)x-mBfzsrx%THu;vxCT%y@w3Pvxg1wBQ%E@=^^yN1amn zo&7Xntz7>6yAi~p@>&T^T$?BVP;U$HvQ8lk=>qWAVug5KF|k%5=}oLlSJjmb38 z`yPq|p_Kq1%oQhqEdSI)apHm);4>)7)MVIaKgH$6$BBy+S8mP#_*bsD-*pBs!6!v^ zXb)h*5=Bkw8(?B@#k=;lz$C6pWz+y*23?gN9#e>)mA;7%z+~wM zuAG)T3z$Nwocr%#Vv2I!#VlgEa$)-dV9MpnMZf0~?r-rN5?Yd>l^jJj7J!{CTt^~Hykz|fthGJ>N-0O!vaqMYoj)t z_hm2fjNy_1A7G~Q4cA9Z0%m4xc)EZLFq>jna*0-Mo@`hqr{`^V8(#Rk7?_2F;SG~$ zVAh3(_j^_Xv*~B}Az?c(TeZsMY7Q|@h1Y%$vOjOfu6cMMZVo$Ci?pMuS^Aec7xoV;012IpvY)l04u_}FdCtwb? zs^#i>Vy0@Vw+dKCiH<+1_VFvgI)$sW$|_)8(p0~UehADlO!e!;VwlVvuc=C1Q-L|1 zZ=$nWRde4Km~)EiAA2>huHP7SbtSp$pGMuEgahm5XXKk(4XnF~QK9ozVye-T3{uej zh0*5$zX5YONP}F}7@gD>jUv?eEY6Ku8=REnhBuyAH}>b(nBs-MJM&|`m<#$Qnd7B6 zTcUeof8pO|SogORx<(A5W{(ArY?$$yJWEUAsF+Z?^MO1nI6OKiJo=lML?$HJ8OJR( zN28?!@#`!rMYFeD-J7XfKT!Su_ZYjiBlqpitkGnN2el5(N8_Kjy>Y`G5A1W-6NUHa z{n{4OW3PMtaq$rw^JWtckBW_KG|G&t?U)(X=e21*C9g1NmoPWO6UT*zvwmos?1bmO z4Z@gtbFtTpY^({5#V%oLoLphUGn|+gM(0|$_&(m5d1J2wj*4bF(LHvUcIYJ=X4LFq zgCQ7k*OzNMuwFRwh`QCwjAfn}KHnO*K(-x;Iya2Uc~!{n2VZ*^%7SbEPF7 zS!K;VWXw$H1~ELvm_pb8u?#z9^uTSYGjW;ryXHpm;I7P{4Z>OLdLql~(R^lpUB*JO z={aB*E8lKaRO=fCtV$Is& z#I^R#^XDbR1U)wixJn@ss|qs>snH-J-_w!iAJv&{!TdEdT3EICNf3S$(-BjjRP$fF*i9Z|#71F54)uRFj4xEt zLgwC^q;)xO!&_LYJ1_bwJqJ6vbHaFUgzAx)%V&Y9c7F?lH#}XW3YXEe`DU}23eazC5b!cw<_)%wQpUUJF_+ibfQTK%&-w~!O{ zSP!aSEG-GYyzmx|pbWfr*p#~}m;}pB3~-D|2+!)qytT`Z3tFbn;FU+Y z+LP@;&B4Jf%*o%n{Xa{-8^+GF#GJVjjJ%}8&hv)zu`aAXA7V)QzsgfI4>2$6%iiLQ z%9+|dM+OS?eaQb+P%(**R%3poANN->)1zJ7n27-2?KZ}J4;|6xVQ|B=-O%}&Dc09? zzYrR>3sv$nwk^v5m*zrtNt9kaByvH*y`e_X| z&1~sd>%%Ks4faV%;3s>t1#Bp8sWr#kzmj;jb}U@`Vxx@xr?ca+$8cKv)u9;oI+;&1 zVX@i=d!1SxfenSO1COz0%kV{VC?==%=k43m!As6<=#1sw_G~&Y>`K*qoF!X?*?)V} zuAYd3AMNyQJgTx_whW&<9f?QN`eJsNC;t9@qW&nXyXCL_c>R+Y$H#?e1s5D!n-tQX zj*VJ5%SHL}6u!uqO~O-A>V{4@Kcr@J@qE|_+}Xw(4^=GVSB+S(HYQ)v(uL~1d-N4+ z+gV>z3z(px6lu?$3v8tq=jDa92xXNqn}gG6tNgWaF}2{PBQDc}9mIvp%(<)&9SA|D z3ov)%Fnwh>>gh%-xi<@M-?KsSYcnqC#CqVNJ5~)HKTM9DLd~<)S3SOs!0#T<=Kol; zBizlHjYb#Ee4HCGo|-%UMHjuby0EHnR@=L1R<#WSQ%B*7%mKK1b!ZFgW!+gnZ9j_# zB9zrV<^Oi2x|%RIje^;51!y=(a``J~7K~S3T4U79VE(u(Jsv}MDqho_t{-zA?89d- zbG5lYi(9&OWc3MV-*k^i|84}oXu@XkseLFao0HvfWRQ)fp;S|JmU7NcW zR~%ZUKaTH^Gk@(>(-;B2?8%DIX>UU%D&RHtER4--JpQDGYnzwJqpt2u#wBLEG`55if zy2XtB&~O8{ZO8m|`0$FU9l#tSb$=R}^p)rrNU zBy}u4+OfTrd#XFIDR?}5FwWQ!r~eX98%J5 ztB*F+&c?)qRB9njcf2#pwzFuAJZ<8@DCH}?!^R3- z_l#?`%2g`l9qi~Ta7oSD^Q(4rM@a0;f-uQ=G|ovM$w$c8L^PQj(r~sf;RCv{alAlA zN#OT98qHP781iQ}TEuq56*1X3B^=O_C+|Zm|!%wyI@Z-vGj5%;ne;!`Ymc>X{&`(hTWB&(e{+h4= diff --git a/data/translations/pokerth_nl.qm b/data/translations/pokerth_nl.qm index e14bb1558b1707989d0ef566799143ac999b6bc2..62b51635941caabf39fb3e6a44309de68988cf2b 100644 GIT binary patch delta 6862 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 PRQNm>Eu!|7$JqY?1~5GN delta 7214 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 diff --git a/data/translations/pokerth_no.qm b/data/translations/pokerth_no.qm index 7b21e38824d44b4ea625ffa5493e1bf441ddd3e3..27121fa7feaf1a6a797869da557efcdf3d82b132 100644 GIT binary patch delta 7014 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 delta 6996 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 Mo=5*j1DnPAAA8qQ00000 diff --git a/data/translations/pokerth_pl.qm b/data/translations/pokerth_pl.qm index 3f8d85c7e003253db5f2e975032c9952535fbfa6..ce6eadd92debea30aac26ef614a8d58363e00110 100644 GIT binary patch delta 6795 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 C3RnLC delta 6926 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 diff --git a/data/translations/pokerth_ptbr.qm b/data/translations/pokerth_ptbr.qm index 79e2f6d661777369e6cadc59052a519b00056748..1ec9c61e7ca36b3ec621697776080c824c674f65 100644 GIT binary patch delta 7019 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 delta 6990 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 Ifk4Rq2a<|>ZU6uP diff --git a/data/translations/pokerth_ru.qm b/data/translations/pokerth_ru.qm index 9ad83420d9af4ba6442727d6c400dca90c155213..2a562b039d3c55efa4003f0757b7a02afdea65dd 100644 GIT binary patch delta 6852 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 Qed{FsZYmIdbCj6;2ZNH3EdT%j delta 6941 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 diff --git a/data/translations/pokerth_sk.qm b/data/translations/pokerth_sk.qm index 46ae015b84dbcc878799f24c1fdeeef62d0020e9..a4e47c4c07d93aa1215f2adc87c147050c4796f4 100644 GIT binary patch delta 6828 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 diff --git a/data/translations/pokerth_sv.qm b/data/translations/pokerth_sv.qm index d9f88bbe62b48f671d1795ea7526b8073377ead8..d8c36c3dd0525cf8984556284afe4a2c9b67cc1a 100644 GIT binary patch delta 6946 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 delta 6979 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 diff --git a/data/translations/pokerth_zhcn.qm b/data/translations/pokerth_zhcn.qm index c8769a241e034a6b5938e2440d03e21e96871333..0728bb3ed608409f5d34377977501a269215395f 100644 GIT binary patch delta 6555 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 #include "createinternetgamedialogimpl.h" #include "sdlplayer.h" -#include "mainwindowimpl.h" +#include "gametableimpl.h" class Session; class ConfigFile; @@ -45,7 +45,7 @@ public: void setSession(Session *session); Session& getSession() { return *mySession; } - void setMyW ( mainWindowImpl* theValue ) { myW = theValue; } + void setMyW ( gameTableImpl* theValue ) { myW = theValue; } public slots: @@ -71,7 +71,7 @@ public slots: void setCurrentGameName ( const QString& theValue ) { currentGameName = theValue; } QString getCurrentGameName() const { return currentGameName; } - mainWindowImpl* getMyW() const { return myW; } + gameTableImpl* getMyW() const { return myW; } void checkPlayerQuantity(); void joinedNetworkGame(unsigned, QString, int); @@ -105,7 +105,7 @@ public slots: private: - mainWindowImpl* myW; + gameTableImpl* myW; ConfigFile *myConfig; Session *mySession; createInternetGameDialogImpl *myCreateInternetGameDialog; diff --git a/src/gui/qt/mainwindow.ui b/src/gui/qt/gametable.ui similarity index 87% rename from src/gui/qt/mainwindow.ui rename to src/gui/qt/gametable.ui index d8eb765e..4ed04550 100644 --- a/src/gui/qt/mainwindow.ui +++ b/src/gui/qt/gametable.ui @@ -1,6 +1,6 @@ - mainWindow - + gameTable + 0 @@ -25,6 +25,14 @@ PokerTH 0.6-beta - The Open-Source Texas Holdem Engine + + + 0 + 28 + 1000 + 631 + + @@ -33,7 +41,7 @@ Qt::Horizontal - + 40 20 @@ -48,7 +56,7 @@ Qt::Vertical - + 221 36 @@ -89,22 +97,10 @@ QFrame::Raised - + 0 - - 0 - - - 0 - - - 0 - - - 0 - - + 0 @@ -132,22 +128,10 @@ QFrame::Raised - + 0 - - 0 - - - 0 - - - 0 - - - 0 - - + 0 @@ -269,7 +253,7 @@ Qt::Vertical - + 221 36 @@ -287,7 +271,7 @@ QSizePolicy::Expanding - + 40 20 @@ -324,22 +308,10 @@ - + 0 - - 0 - - - 0 - - - 0 - - - 0 - - + 0 @@ -377,22 +349,10 @@ - + 0 - - 0 - - - 0 - - - 0 - - - 0 - - + 0 @@ -514,7 +474,7 @@ Qt::Vertical - + 151 90 @@ -529,7 +489,7 @@ Qt::Horizontal - + 40 20 @@ -624,22 +584,10 @@ - + 0 - - 0 - - - 0 - - - 0 - - - 0 - - + 0 @@ -677,22 +625,10 @@ - + 0 - - 0 - - - 0 - - - 0 - - - 0 - - + 0 @@ -756,7 +692,7 @@ Qt::Vertical - + 21 81 @@ -771,7 +707,7 @@ Qt::Horizontal - + 40 20 @@ -786,7 +722,7 @@ Qt::Vertical - + 20 40 @@ -821,22 +757,10 @@ - + 0 - - 0 - - - 0 - - - 0 - - - 0 - - + 0 @@ -874,22 +798,10 @@ - + 0 - - 0 - - - 0 - - - 0 - - - 0 - - + 0 @@ -1011,7 +923,7 @@ Qt::Vertical - + 20 40 @@ -1026,7 +938,7 @@ Qt::Horizontal - + 40 20 @@ -1041,16 +953,7 @@ 0 - - 0 - - - 0 - - - 0 - - + 0 @@ -1058,16 +961,7 @@ 6 - - 0 - - - 0 - - - 0 - - + 0 @@ -1097,22 +991,10 @@ - + 0 - - 0 - - - 0 - - - 0 - - - 0 - - + 0 @@ -1137,22 +1019,10 @@ - + 0 - - 0 - - - 0 - - - 0 - - - 0 - - + 0 @@ -1289,7 +1159,7 @@ Qt::Horizontal - + 40 20 @@ -1339,22 +1209,10 @@ - + 0 - - 0 - - - 0 - - - 0 - - - 0 - - + 0 @@ -1395,22 +1253,10 @@ - + 0 - - 0 - - - 0 - - - 0 - - - 0 - - + 0 @@ -1418,16 +1264,7 @@ 0 - - 0 - - - 0 - - - 0 - - + 0 @@ -1442,22 +1279,10 @@ - + 0 - - 0 - - - 0 - - - 0 - - - 0 - - + 0 @@ -1655,7 +1480,7 @@ Qt::Horizontal - + 40 20 @@ -1668,16 +1493,7 @@ 6 - - 0 - - - 0 - - - 0 - - + 0 @@ -1707,22 +1523,10 @@ - + 0 - - 0 - - - 0 - - - 0 - - - 0 - - + 0 @@ -1760,22 +1564,10 @@ - + 0 - - 0 - - - 0 - - - 0 - - - 0 - - + 0 @@ -1909,16 +1701,7 @@ 0 - - 0 - - - 0 - - - 0 - - + 0 @@ -1929,7 +1712,7 @@ QSizePolicy::Fixed - + 260 0 @@ -1945,7 +1728,7 @@ QSizePolicy::Expanding - + 0 0 @@ -1968,22 +1751,10 @@ - + 6 - - 6 - - - 6 - - - 6 - - - 1 - - + 1 @@ -1995,26 +1766,22 @@ 0 + + + 0 + 0 + 240 + 153 + + Hands - + 0 - - 0 - - - 0 - - - 0 - - - 0 - - + 0 @@ -2027,26 +1794,22 @@ + + + 0 + 0 + 960 + 480 + + Chat - + 0 - - 0 - - - 0 - - - 0 - - - 0 - - + 0 @@ -2082,7 +1845,7 @@ QSizePolicy::MinimumExpanding - + 41 197 @@ -2097,7 +1860,7 @@ Qt::Vertical - + 321 20 @@ -2168,7 +1931,7 @@ QSizePolicy::Fixed - + 5 20 @@ -2206,7 +1969,7 @@ QSizePolicy::Fixed - + 5 20 @@ -2224,7 +1987,7 @@ QSizePolicy::Fixed - + 20 28 @@ -2250,22 +2013,10 @@ QFrame::Raised - + 0 - - 0 - - - 0 - - - 0 - - - 0 - - + 0 @@ -2336,7 +2087,7 @@ QSizePolicy::Fixed - + 13 20 @@ -2514,7 +2265,7 @@ QSizePolicy::Fixed - + 13 20 @@ -2612,7 +2363,7 @@ QSizePolicy::Fixed - + 140 0 @@ -2717,7 +2468,7 @@ QSizePolicy::MinimumExpanding - + 31 197 @@ -2730,16 +2481,7 @@ 0 - - 0 - - - 0 - - - 0 - - + 0 @@ -2750,7 +2492,7 @@ QSizePolicy::Fixed - + 260 0 @@ -2766,7 +2508,7 @@ QSizePolicy::Expanding - + 0 0 @@ -2789,24 +2531,15 @@ - - 6 - - - 6 - - - 6 - - - 6 - 1 2 + + 6 + @@ -2816,26 +2549,22 @@ 0 + + + 0 + 0 + 240 + 129 + + Log - + 0 - - 0 - - - 0 - - - 0 - - - 0 - - + 0 @@ -2854,6 +2583,14 @@ + + + 0 + 0 + 960 + 480 + + Away @@ -2896,7 +2633,7 @@ Qt::Vertical - + 20 40 @@ -2913,16 +2650,7 @@ 6 - - 0 - - - 0 - - - 0 - - + 0 @@ -3253,7 +2981,16 @@ - + + + + 0 + 659 + 1000 + 21 + + + Start Local Game ... diff --git a/src/gui/qt/gametable/chat/chat.cpp b/src/gui/qt/gametable/chat/chat.cpp new file mode 100755 index 00000000..1c293126 --- /dev/null +++ b/src/gui/qt/gametable/chat/chat.cpp @@ -0,0 +1,110 @@ +/*************************************************************************** + * Copyright (C) 2006 by FThauer FHammer * + * f.thauer@web.de * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#include "chat.h" + +#include "gametableimpl.h" +#include "session.h" +#include "game.h" +#include "playerinterface.h" +#include "chattools.h" +#include "configfile.h" + +using namespace std; + +#define COMMAND_KICK_STR "/kick " + +Chat::Chat(gameTableImpl* w, ConfigFile *c) : myW(w), myConfig(c) +{ + myChatTools = new ChatTools(myW->lineEdit_ChatInput, myConfig, 2, myW->textBrowser_Chat); + +} + +Chat::~Chat() +{ + delete myConfig; + myConfig = 0; +} + +void Chat::sendMessage() { + + //filter /kick command + if(myW->lineEdit_ChatInput->text().startsWith(COMMAND_KICK_STR)) { + QString playerToKick = myW->lineEdit_ChatInput->text(); + playerToKick.remove(0, sizeof(COMMAND_KICK_STR) - 1); + + myW->lineEdit_ChatInput->setText(""); + if(myW->getSession().getClientGameInfo(myW->getSession().getClientCurrentGameId()).adminPlayerId == myW->getSession().getCurrentGame()->getSeatsList()->front()->getMyUniqueID()) { + + if(playerToKick.toUtf8().constData() == myW->getSession().getCurrentGame()->getSeatsList()->front()->getMyName()) { + myW->textBrowser_Chat->append(""+tr("You cannot kick yourself!")+""); + } + else { + myW->getSession().kickPlayer(playerToKick.toUtf8().constData()); + } + } + else { + myW->textBrowser_Chat->append(""+tr("You cannot kick any player - You are not game admin!")+""); + } + return; + } + + fillChatLinesHistory(myW->lineEdit_ChatInput->text()); + myW->getSession().sendChatMessage(myW->lineEdit_ChatInput->text().toUtf8().constData()); + myW->lineEdit_ChatInput->setText(""); +} + +void Chat::receiveMessage(QString playerName, QString message) { + + myChatTools->receiveMessage(playerName, message); + checkInvisible(); +} + +void Chat::checkInvisible() { + + switch (myW->tabWidget_Left->currentIndex()) { + + case 1: { myW->tabWidget_Left->stopBlinkChatTab(); + myW->tabWidget_Left->showDefaultChatTab(); + } + break; + default: { myW->tabWidget_Left->startBlinkChatTab(); } + } +} + +void Chat::checkInputLength(QString string) { + + if(string.toUtf8().length() > 120) myW->lineEdit_ChatInput->setMaxLength(string.length()); +} + +void Chat::clearNewGame() { + + myW->textBrowser_Chat->clear(); +} + +void Chat::setPlayerNicksList(QStringList nickList) { + //fill playerNicksList for nick-autocompletition + myChatTools->setPlayerNicksList(nickList); +} + +void Chat::fillChatLinesHistory(QString fillString) { myChatTools->fillChatLinesHistory(fillString); } +int Chat::getChatLinesHistorySize() { return myChatTools->getChatLinesHistorySize(); } +void Chat::showChatHistoryIndex(int index) { myChatTools->showChatHistoryIndex(index); } +void Chat::nickAutoCompletition() { myChatTools->nickAutoCompletition(); } +void Chat::setChatTextEdited() { myChatTools->setChatTextEdited(); } diff --git a/src/gui/qt/gametable/chat/chat.h b/src/gui/qt/gametable/chat/chat.h new file mode 100755 index 00000000..9db8b41d --- /dev/null +++ b/src/gui/qt/gametable/chat/chat.h @@ -0,0 +1,67 @@ +/*************************************************************************** + * Copyright (C) 2006 by FThauer FHammer * + * f.thauer@web.de * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#ifndef CHAT_H +#define CHAT_H + +#include +#include + + +class gameTableImpl; +class ChatTools; +class ConfigFile; + +class Chat : public QObject +{ +Q_OBJECT + +public: + Chat(gameTableImpl*, ConfigFile *c); + + ~Chat(); + +public slots: + + void sendMessage(); + void receiveMessage(QString playerName, QString msg); + void checkInvisible(); + void checkInputLength(QString); + void clearNewGame(); + + ChatTools* getMyChatTools() const { return myChatTools; } + + void fillChatLinesHistory(QString fillString); + void showChatHistoryIndex(int index); + int getChatLinesHistorySize(); + void nickAutoCompletition(); + void setChatTextEdited(); + void setPlayerNicksList(QStringList); + +private: + + gameTableImpl *myW; + ConfigFile *myConfig; + ChatTools *myChatTools; + + +friend class GuiWrapper; +}; + +#endif diff --git a/src/gui/qt/gametable/gametableimpl.cpp b/src/gui/qt/gametable/gametableimpl.cpp new file mode 100755 index 00000000..d0455a78 --- /dev/null +++ b/src/gui/qt/gametable/gametableimpl.cpp @@ -0,0 +1,3816 @@ +/*************************************************************************** + * Copyright (C) 2006 by FThauer FHammer * + * f.thauer@web.de * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#include "gametableimpl.h" + +#include "newgamedialogimpl.h" +#include "aboutpokerthimpl.h" +#include "mymessagedialogimpl.h" +#include "settingsdialogimpl.h" +#include "selectavatardialogimpl.h" +#include "joinnetworkgamedialogimpl.h" +#include "connecttoserverdialogimpl.h" +#include "createnetworkgamedialogimpl.h" +#include "startnetworkgamedialogimpl.h" +#include "changehumanplayernamedialogimpl.h" +#include "changecompleteblindsdialogimpl.h" +#include "gamelobbydialogimpl.h" +#include "timeoutmsgboximpl.h" +#include "lobbychat.h" + +#include "startsplash.h" +#include "mycardspixmaplabel.h" +#include "mysetlabel.h" +#include "myavatarlabel.h" +#include "log.h" +#include "chat.h" + +#include "playerinterface.h" +#include "boardinterface.h" +#include "handinterface.h" +#include "game.h" +#include "session.h" +#include "tools.h" + +#include "configfile.h" +#include "sdlplayer.h" +// #include "stylesheetreader.h" + +#include +#include + +#include + +#include "math.h" + +#define FORMATLEFT(X) "

(X)" +#define FORMATRIGHT(X) "(X)

" + +using namespace std; + +gameTableImpl::gameTableImpl(ConfigFile *c, QMainWindow *parent) + : QMainWindow(parent), myChat(NULL), myConfig(c), gameSpeed(0), myActionIsBet(0), myActionIsRaise(0), pushButtonBetRaiseIsChecked(FALSE), pushButtonCallCheckIsChecked(FALSE), pushButtonFoldIsChecked(FALSE), pushButtonAllInIsChecked(FALSE), myButtonsAreCheckable(FALSE), breakAfterCurrentHand(FALSE), currentGameOver(FALSE), betSliderChangedByInput(FALSE), myLastPreActionBetValue(0) +{ + int i; + +// this->setStyle(new QPlastiqueStyle); + + //for statistic development + for(i=0; i<15; i++) { + statisticArray[i] = 0; + } + //////////////////////////// + + myAppDataPath = QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str()); + + setupUi(this); + + //Sound + mySDLPlayer = new SDLPlayer(myConfig); + + //styleSheetReader +// myStyleSheetReader = new StyleSheetReader(QString(myAppDataPath+"gfx/stylesheet.xml").toStdString()); + + //Player0 pixmapCardsLabel needs Myw + pixmapLabel_card0b->setMyW(this); + pixmapLabel_card0a->setMyW(this); + + //Flipside festlegen; + if (myConfig->readConfigInt("FlipsideOwn") && myConfig->readConfigString("FlipsideOwnFile") != "") { + flipside = new QPixmap(QString::fromUtf8(myConfig->readConfigString("FlipsideOwnFile").c_str())); + } + else { + flipside = new QPixmap(myAppDataPath +"gfx/cards/default/flipside.png"); + } + + //Flipside Animation noch nicht erledigt + flipHolecardsAllInAlreadyDone = FALSE; + + //Toolboxen verstecken? + if (!myConfig->readConfigInt("ShowRightToolBox")) { + groupBox_RightToolBox->hide(); + } + if (!myConfig->readConfigInt("ShowLeftToolBox")) { + groupBox_LeftToolBox->hide(); + } + + //Intro abspielen? + if (myConfig->readConfigInt("ShowIntro")) { +// label_logo->hide(); + QTimer::singleShot(100, this, SLOT( paintStartSplash() )); } + + // userWidgetsArray init + userWidgetsArray[0] = pushButton_BetRaise; + userWidgetsArray[1] = pushButton_CallCheck; + userWidgetsArray[2] = pushButton_Fold; + userWidgetsArray[3] = lineEdit_betValue; + userWidgetsArray[4] = horizontalSlider_bet; + userWidgetsArray[5] = pushButton_AllIn; + + //hide userWidgets + for(i=0; i<6; i++) { + userWidgetsArray[i]->hide(); + } + + //Timer Objekt erstellen + dealFlopCards0Timer = new QTimer(this); + dealFlopCards1Timer = new QTimer(this); + dealFlopCards2Timer = new QTimer(this); + dealFlopCards3Timer = new QTimer(this); + dealFlopCards4Timer = new QTimer(this); + dealFlopCards5Timer = new QTimer(this); + dealFlopCards6Timer = new QTimer(this); + dealTurnCards0Timer = new QTimer(this); + dealTurnCards1Timer = new QTimer(this); + dealTurnCards2Timer = new QTimer(this); + dealRiverCards0Timer = new QTimer(this); + dealRiverCards1Timer = new QTimer(this); + dealRiverCards2Timer = new QTimer(this); + + nextPlayerAnimationTimer = new QTimer(this); + preflopAnimation1Timer = new QTimer(this); + preflopAnimation2Timer = new QTimer(this); + flopAnimation1Timer = new QTimer(this); + flopAnimation2Timer = new QTimer(this); + turnAnimation1Timer = new QTimer(this); + turnAnimation2Timer = new QTimer(this); + riverAnimation1Timer = new QTimer(this); + riverAnimation2Timer = new QTimer(this); + + postRiverAnimation1Timer = new QTimer(this); + postRiverRunAnimation1Timer = new QTimer(this); + postRiverRunAnimation2Timer = new QTimer(this); + postRiverRunAnimation2_flipHoleCards1Timer = new QTimer(this); + postRiverRunAnimation2_flipHoleCards2Timer = new QTimer(this); + postRiverRunAnimation3Timer = new QTimer(this); + postRiverRunAnimation5Timer = new QTimer(this); + potDistributeTimer = new QTimer(this); + postRiverRunAnimation6Timer = new QTimer(this); + + blinkingStartButtonAnimationTimer = new QTimer(this); + + dealFlopCards0Timer->setSingleShot(TRUE); + dealFlopCards1Timer->setSingleShot(TRUE); + dealFlopCards2Timer->setSingleShot(TRUE); + dealFlopCards3Timer->setSingleShot(TRUE); + dealFlopCards4Timer->setSingleShot(TRUE); + dealFlopCards5Timer->setSingleShot(TRUE); + dealFlopCards6Timer->setSingleShot(TRUE); + dealTurnCards0Timer->setSingleShot(TRUE); + dealTurnCards1Timer->setSingleShot(TRUE); + dealTurnCards2Timer->setSingleShot(TRUE); + dealRiverCards0Timer->setSingleShot(TRUE); + dealRiverCards1Timer->setSingleShot(TRUE); + dealRiverCards2Timer->setSingleShot(TRUE); + + nextPlayerAnimationTimer->setSingleShot(TRUE); + preflopAnimation1Timer->setSingleShot(TRUE); + preflopAnimation2Timer->setSingleShot(TRUE); + flopAnimation1Timer->setSingleShot(TRUE); + flopAnimation2Timer->setSingleShot(TRUE); + turnAnimation1Timer->setSingleShot(TRUE); + turnAnimation2Timer->setSingleShot(TRUE); + riverAnimation1Timer->setSingleShot(TRUE); + riverAnimation2Timer->setSingleShot(TRUE); + + postRiverAnimation1Timer->setSingleShot(TRUE); + postRiverRunAnimation1Timer->setSingleShot(TRUE); + postRiverRunAnimation2Timer->setSingleShot(TRUE); + postRiverRunAnimation2_flipHoleCards1Timer->setSingleShot(TRUE); + postRiverRunAnimation2_flipHoleCards2Timer->setSingleShot(TRUE); + postRiverRunAnimation3Timer->setSingleShot(TRUE); + postRiverRunAnimation5Timer->setSingleShot(TRUE); + postRiverRunAnimation6Timer->setSingleShot(TRUE); + + // buttonLabelArray init + buttonLabelArray[0] = textLabel_Button0; + buttonLabelArray[1] = textLabel_Button1; + buttonLabelArray[2] = textLabel_Button2; + buttonLabelArray[3] = textLabel_Button3; + buttonLabelArray[4] = textLabel_Button4; + buttonLabelArray[5] = textLabel_Button5; + buttonLabelArray[6] = textLabel_Button6; + + // cashLabelArray init + cashLabelArray[0] = textLabel_Cash0; + cashLabelArray[1] = textLabel_Cash1; + cashLabelArray[2] = textLabel_Cash2; + cashLabelArray[3] = textLabel_Cash3; + cashLabelArray[4] = textLabel_Cash4; + cashLabelArray[5] = textLabel_Cash5; + cashLabelArray[6] = textLabel_Cash6; + + // cashTopLabelArray init + cashTopLabelArray[0] = textLabel_TopCash0; + cashTopLabelArray[1] = textLabel_TopCash1; + cashTopLabelArray[2] = textLabel_TopCash2; + cashTopLabelArray[3] = textLabel_TopCash3; + cashTopLabelArray[4] = textLabel_TopCash4; + cashTopLabelArray[5] = textLabel_TopCash5; + cashTopLabelArray[6] = textLabel_TopCash6; + + // playerNameLabelArray init + playerNameLabelArray[0] = label_PlayerName0; + playerNameLabelArray[1] = label_PlayerName1; + playerNameLabelArray[2] = label_PlayerName2; + playerNameLabelArray[3] = label_PlayerName3; + playerNameLabelArray[4] = label_PlayerName4; + playerNameLabelArray[5] = label_PlayerName5; + playerNameLabelArray[6] = label_PlayerName6; + + // playerAvatarLabelArray init + playerAvatarLabelArray[0] = label_Avatar0; + playerAvatarLabelArray[1] = label_Avatar1; + playerAvatarLabelArray[2] = label_Avatar2; + playerAvatarLabelArray[3] = label_Avatar3; + playerAvatarLabelArray[4] = label_Avatar4; + playerAvatarLabelArray[5] = label_Avatar5; + playerAvatarLabelArray[6] = label_Avatar6; + + // setLabelArray init + setLabelArray[0] = textLabel_Set0; + setLabelArray[1] = textLabel_Set1; + setLabelArray[2] = textLabel_Set2; + setLabelArray[3] = textLabel_Set3; + setLabelArray[4] = textLabel_Set4; + setLabelArray[5] = textLabel_Set5; + setLabelArray[6] = textLabel_Set6; + for (i=0; isetMyW(this); } + + // statusLabelArray init + actionLabelArray[0] = textLabel_Status0; + actionLabelArray[1] = textLabel_Status1; + actionLabelArray[2] = textLabel_Status2; + actionLabelArray[3] = textLabel_Status3; + actionLabelArray[4] = textLabel_Status4; + actionLabelArray[5] = textLabel_Status5; + actionLabelArray[6] = textLabel_Status6; + + textLabel_Status0->setMyW(this); + + // GroupBoxArray init + groupBoxArray[0] = groupBox0; + groupBoxArray[1] = groupBox1; + groupBoxArray[2] = groupBox2; + groupBoxArray[3] = groupBox3; + groupBoxArray[4] = groupBox4; + groupBoxArray[5] = groupBox5; + groupBoxArray[6] = groupBox6; + + // boardCardsArray init + boardCardsArray[0] = pixmapLabel_cardBoard0; + boardCardsArray[1] = pixmapLabel_cardBoard1; + boardCardsArray[2] = pixmapLabel_cardBoard2; + boardCardsArray[3] = pixmapLabel_cardBoard3; + boardCardsArray[4] = pixmapLabel_cardBoard4; + + // holeCardsArray int + holeCardsArray[0][0] = pixmapLabel_card0a; + holeCardsArray[0][1] = pixmapLabel_card0b; + holeCardsArray[1][0] = pixmapLabel_card1a; + holeCardsArray[1][1] = pixmapLabel_card1b; + holeCardsArray[2][0] = pixmapLabel_card2a; + holeCardsArray[2][1] = pixmapLabel_card2b; + holeCardsArray[3][0] = pixmapLabel_card3a; + holeCardsArray[3][1] = pixmapLabel_card3b; + holeCardsArray[4][0] = pixmapLabel_card4a; + holeCardsArray[4][1] = pixmapLabel_card4b; + holeCardsArray[5][0] = pixmapLabel_card5a; + holeCardsArray[5][1] = pixmapLabel_card5b; + holeCardsArray[6][0] = pixmapLabel_card6a; + holeCardsArray[6][1] = pixmapLabel_card6b; + + // Farben initalisieren + active.setRgb(86,170,86); + inactive.setRgb(83,141,107); + highlight.setRgb(151,214,109); + + + +// Schriftart laden und für Dialoge setzen +#ifdef _WIN32 + font1String = "font-family: \"Arial\";"; + font2String = "font-family: \"Nimbus Sans L\";"; + QString textBrowserFontsize= "11"; + QString cashFontSize = "11"; + QString setLabelFontSize = "13"; + QString playerNameLabelFontSize = "14"; + QString mediumTableFontSize = "13"; + QString handLabelFontSize = "18"; + QString labelPotFontSize = "19"; + QString humanPlayerButtonFontSize = "13"; + QString betValueFontSize = "11"; +#else + #ifdef __APPLE__ + font1String = "font-family: \"Lucida Grande\";"; + font2String = "font-family: \"Lucida Grande\";"; + #else + font1String = "font-family: \"Nimbus Sans L\";"; + font2String = "font-family: \"Bitstream Vera Sans\";"; + #endif + QString textBrowserFontsize= "10"; + QString cashFontSize = "10"; + QString setLabelFontSize = "12"; + QString playerNameLabelFontSize = "13"; + QString mediumTableFontSize = "13"; + QString handLabelFontSize = "17"; + QString labelPotFontSize = "18"; + QString humanPlayerButtonFontSize = "12"; + QString betValueFontSize = "10"; +#endif + + + textBrowser_Log->setStyleSheet("QTextBrowser { "+ font1String +" font-size: "+textBrowserFontsize+"px; color: #F0F0F0; background-color: #1D3B00; border:none; } QScrollBar:vertical { border: 1px solid #104600; background: #135000; width: 15px; margin: 17px -1px 17px 0px; } QScrollBar::handle:vertical { border-radius: 1px; border: 1px solid #1B7200; background: #176400; min-height: 20px; } QScrollBar::add-line:vertical { margin-right: 0px; margin-left: 1px; border-bottom-right-radius: 2px; border-bottom-left-radius: 2px; border-top-right-radius: 1px; border-top-left-radius: 1px; border: 1px solid #1E7F00; background: #1A6F00; height: 15px; subcontrol-position: bottom; subcontrol-origin: margin; } QScrollBar::sub-line:vertical { margin-right: 0px; margin-left: 1px; border-bottom-right-radius: 1px; border-bottom-left-radius: 1px; border-top-right-radius: 2px; border-top-left-radius: 2px; border: 1px solid #1E7F00; background: #1A6F00; height: 15px; subcontrol-position: top; subcontrol-origin: margin; } QScrollBar:up-arrow:vertical, QScrollBar::down-arrow:vertical { border: 1px solid #208A00; height: 3px; width: 3px; background: #27A800; } QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { background: none; }"); + textBrowser_Chat->setStyleSheet("QTextBrowser { "+ font1String +" font-size: "+textBrowserFontsize+"px; color: #F0F0F0; background-color: #1D3B00; border:none; } QScrollBar:vertical { border: 1px solid #104600; background: #135000; width: 15px; margin: 17px -1px 17px 0px; } QScrollBar::handle:vertical { border-radius: 1px; border: 1px solid #1B7200; background: #176400; min-height: 20px; } QScrollBar::add-line:vertical { margin-right: 0px; margin-left: 1px; border-bottom-right-radius: 2px; border-bottom-left-radius: 2px; border-top-right-radius: 1px; border-top-left-radius: 1px; border: 1px solid #1E7F00; background: #1A6F00; height: 15px; subcontrol-position: bottom; subcontrol-origin: margin; } QScrollBar::sub-line:vertical { margin-right: 0px; margin-left: 1px; border-bottom-right-radius: 1px; border-bottom-left-radius: 1px; border-top-right-radius: 2px; border-top-left-radius: 2px; border: 1px solid #1E7F00; background: #1A6F00; height: 15px; subcontrol-position: top; subcontrol-origin: margin; } QScrollBar:up-arrow:vertical, QScrollBar::down-arrow:vertical { border: 1px solid #208A00; height: 3px; width: 3px; background: #27A800; } QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { background: none; }"); + lineEdit_ChatInput->setStyleSheet("QLineEdit { "+ font1String +" font-size: "+textBrowserFontsize+"px; color: #F0F0F0; background-color: #1D3B00; border-top: 2px solid #286400; }"); + + +#ifdef __APPLE__ +// tabWidget_Right->setStyleSheet("QTabWidget { "+ font1String +" font-size: 11px; background-color: #145300; }"); +// tabWidget_Left->setStyleSheet("QTabWidget { "+ font1String +" font-size: 11px; background-color: #145300;}"); +#else +// tabWidget_Right->setStyleSheet("QTabWidget::pane { "+ font1String +" font-size: 10px; background-color: #145300; border: 1px solid #286400; border-radius: 2px; }"); +// tabWidget_Left->setStyleSheet("QTabWidget::pane { border: 1px solid #286400; border-radius: 2px; background-color: #145300; }"); +#endif + + + for (i=0; isetStyleSheet("QLabel { "+ font2String +" font-size: "+cashFontSize+"px; font-weight: bold; color: #F0F0F0; }"); + cashLabelArray[i]->setStyleSheet("QLabel { "+ font2String +" font-size: "+cashFontSize+"px; font-weight: bold; color: #F0F0F0; }"); + } + + for (i=0; isetStyleSheet("QLabel { "+ font2String +" font-size: "+setLabelFontSize+"px; font-weight: bold; color: #F0F0F0; }"); + } + + for (i=0; isetStyleSheet("QLabel { "+ font2String +" font-size: "+playerNameLabelFontSize+"px; font-weight: bold; color: #F0F0F0; }"); + } + + label_Sets->setStyleSheet("QLabel { "+ font2String +" font-size: "+mediumTableFontSize+"px; font-weight: bold; color: #669900; }"); + label_Total->setStyleSheet("QLabel { "+ font2String +" font-size: "+mediumTableFontSize+"px; font-weight: bold; color: #669900; }"); + textLabel_Sets->setStyleSheet("QLabel { "+ font2String +" font-size: "+mediumTableFontSize+"px; font-weight: bold; color: #669900; }"); + textLabel_Pot->setStyleSheet("QLabel { "+ font2String +" font-size: "+mediumTableFontSize+"px; font-weight: bold; color: #669900; }"); + label_handNumber->setStyleSheet("QLabel { "+ font2String +" font-size: "+mediumTableFontSize+"px; font-weight: bold; color: #669900; }"); + label_gameNumber->setStyleSheet("QLabel { "+ font2String +" font-size: "+mediumTableFontSize+"px; font-weight: bold; color: #669900; }"); + label_handNumberValue->setStyleSheet("QLabel { "+ font2String +" font-size: "+mediumTableFontSize+"px; font-weight: bold; color: #669900; }"); + label_gameNumberValue->setStyleSheet("QLabel { "+ font2String +" font-size: "+mediumTableFontSize+"px; font-weight: bold; color: #669900; }"); + + textLabel_handLabel->setStyleSheet("QLabel { "+ font2String +" font-size: "+handLabelFontSize+"px; font-weight: bold; color: #669900; }"); + label_Pot->setStyleSheet("QLabel { "+ font2String +" font-size: "+labelPotFontSize+"px; font-weight: bold; color: #669900; }"); + + + //Widgets Grafiken setzen + label_CardHolder0->setPixmap(myAppDataPath + "gfx/gui/table/default/cardholder_flop.png"); + label_CardHolder1->setPixmap(myAppDataPath + "gfx/gui/table/default/cardholder_flop.png"); + label_CardHolder2->setPixmap(myAppDataPath + "gfx/gui/table/default/cardholder_flop.png"); + label_CardHolder3->setPixmap(myAppDataPath + "gfx/gui/table/default/cardholder_turn.png"); + label_CardHolder4->setPixmap(myAppDataPath + "gfx/gui/table/default/cardholder_river.png"); + + label_Handranking->setPixmap(myAppDataPath + "gfx/gui/misc/handRanking.png"); + + //Widgets Grafiken per Stylesheets setzen + this->setStyleSheet("QMainWindow { background-image: url(" + myAppDataPath +"gfx/gui/table/default/table.png); background-position: bottom center; background-origin: content;}"); + + menubar->setStyleSheet("QMenuBar { background-color: #145300; } QMenuBar::item { color: #99D500; }"); + + pushButton_break->setStyleSheet("QPushButton:enabled { background-color: #145300; color: #99D500;} QPushButton:disabled { background-color: #145300; color: #486F3E; font-weight: 900;}"); + label_speedString->setStyleSheet("QLabel { color: #99D500;}"); + label_speedValue->setStyleSheet("QLabel { color: #99D500;}"); + + statusbar->setStyleSheet(" QStatusBar { "+ font1String +" font-size: 12px; color: #B7FF00; }"); + + //Groupbox Background + for (i=1; isetStyleSheet("QGroupBox { border:none; background-image: url(" + myAppDataPath +"gfx/gui/table/default/opponentBoxInactiveGlow.png) }"); + } + groupBoxArray[0]->setStyleSheet("QGroupBox { border:none; background-image: url(" + myAppDataPath +"gfx/gui/table/default/playerBoxInactiveGlow_0.6.png) }"); + + //Human player button + pushButton_BetRaise->setStyleSheet("QPushButton { border:none; background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_green.png); "+ font2String +" font-size: "+humanPlayerButtonFontSize+"px; font-weight: bold; color: #F0F0F0;} QPushButton:unchecked { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_green.png); } QPushButton:checked { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_green_checked.png);} QPushButton:hover { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_green_hover.png); } QPushButton:checked:hover { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_green_checked_hover.png);}"); + pushButton_CallCheck->setStyleSheet("QPushButton { border:none; background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_blue.png); "+ font2String +" font-size: "+humanPlayerButtonFontSize+"px; font-weight: bold; color: #F0F0F0;} QPushButton:unchecked { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_blue.png); } QPushButton:checked { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_blue_checked.png);} QPushButton:hover { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_blue_hover.png); } QPushButton:checked:hover { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_blue_checked_hover.png);}"); + pushButton_Fold->setStyleSheet("QPushButton { border:none; background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_red.png); "+ font2String +" font-size: "+humanPlayerButtonFontSize+"px; font-weight: bold; color: #F0F0F0;} QPushButton:unchecked { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_red.png); } QPushButton:checked { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_red_checked.png);} QPushButton:hover { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_red_hover.png); } QPushButton:checked:hover { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_red_checked_hover.png);}"); + + lineEdit_betValue->setStyleSheet("QLineEdit { "+ font2String +" font-size: "+betValueFontSize+"px; font-weight: bold; background-color: #1D3B00; color: #F0F0F0; } QLineEdit:disabled { background-color: #316300; color: #6d7b5f }"); + + pushButton_AllIn->setStyleSheet("QPushButton:enabled { background-color: #145300; color: #99D500;} QPushButton:disabled { background-color: #145300; color: #486F3E; font-weight: 900;}"); + +// away radiobuttons +// QString radioButtonString("QRadioButton { color: #99D500; } QRadioButton::indicator { width: 13px; height: 13px; } QRadioButton::indicator::checked { image: url("+myAppDataPath+"gfx/gui/misc/radiobutton_checked.png); }"); + QString radioButtonString("QRadioButton { color: #99D500; } QRadioButton::indicator { width: 13px; height: 13px;} QRadioButton::indicator::checked { image: url("+myAppDataPath+"gfx/gui/misc/radiobutton_checked.png);} QRadioButton::indicator::unchecked { image: url("+myAppDataPath+"gfx/gui/misc/radiobutton_unchecked.png);} QRadioButton::indicator:unchecked:hover { image: url("+myAppDataPath+"gfx/gui/misc/radiobutton_unchecked_hover.png);} QRadioButton::indicator:unchecked:pressed { image: url("+myAppDataPath+"gfx/gui/misc/radiobutton_pressed.png);} QRadioButton::indicator::checked { image: url("+myAppDataPath+"gfx/gui/misc/radiobutton_checked.png);} QRadioButton::indicator:checked:hover { image: url("+myAppDataPath+"gfx/gui/misc/radiobutton_checked_hover.png);} QRadioButton::indicator:checked:pressed { image: url("+myAppDataPath+"gfx/gui/misc/radiobutton_pressed.png);}"); + + radioButton_manualAction->setStyleSheet(radioButtonString); + radioButton_autoCheckFold->setStyleSheet(radioButtonString); + radioButton_autoCheckCallAny->setStyleSheet(radioButtonString); + + groupBox_RightToolBox->setStyleSheet("QGroupBox { border:none; background-image: url(" + myAppDataPath +"gfx/gui/misc/toolboxFrameBG.png) }"); + groupBox_LeftToolBox->setStyleSheet("QGroupBox { border:none; background-image: url(" + myAppDataPath +"gfx/gui/misc/toolboxFrameBG.png) }"); + + //raise actionLable above just inserted mypixmaplabel + for (i=0; iraise(); } + + //fix for away string bug in righttabwidget on windows + #if (defined _WIN32) || (defined __APPLE__) + tabWidget_Right->setTabText(0, " "+tabWidget_Right->tabText(0)+" "); + tabWidget_Right->setTabText(1, " "+tabWidget_Right->tabText(1)+" "); + tabWidget_Left->setTabText(0, " "+tabWidget_Left->tabText(0)+" "); + tabWidget_Left->setTabText(1, " "+tabWidget_Left->tabText(1)+" "); +#endif + + //resize stop-button depending on translation + QFontMetrics tempMetrics = this->fontMetrics(); + int width = tempMetrics.width(tr("Stop")); + pushButton_break->setMinimumSize(width+10,20); + + //set inputvalidator for lineeditbetvalue + QRegExp rx("[1-9]\\d{0,4}"); + QValidator *validator = new QRegExpValidator(rx, this); + lineEdit_betValue->setValidator(validator); + + //Clear Focus + groupBox_LeftToolBox->clearFocus(); + groupBox_RightToolBox->clearFocus(); + + //set Focus to gametable + this->setFocus(); + + //windowicon +// QString windowIconString(); + this->setWindowIcon(QIcon(myAppDataPath+"gfx/gui/misc/windowicon.png")); + + //Statusbar + if(myConfig->readConfigInt("ShowStatusbarMessages")) { + +#ifdef __APPLE__ + statusBar()->showMessage(tr("Cmd+N to start a new game")); +#else + statusBar()->showMessage(tr("Ctrl+N to start a new game")); +#endif + } + + //Dialoge + myNewGameDialog = new newGameDialogImpl(this, myConfig); + mySelectAvatarDialog = new selectAvatarDialogImpl(this, myConfig); + mySettingsDialog = new settingsDialogImpl(this, myConfig, mySelectAvatarDialog); + myChangeHumanPlayerNameDialog = new changeHumanPlayerNameDialogImpl(this, myConfig); + myJoinNetworkGameDialog = new joinNetworkGameDialogImpl(this, myConfig); + myConnectToServerDialog = new connectToServerDialogImpl(this); + myStartNetworkGameDialog = new startNetworkGameDialogImpl(this, myConfig); + myCreateNetworkGameDialog = new createNetworkGameDialogImpl(this, myConfig); + myAboutPokerthDialog = new aboutPokerthImpl(this, myConfig); + myGameLobbyDialog = new gameLobbyDialogImpl(this, myConfig); + + myStartNetworkGameDialog->setMyW(this); + myGameLobbyDialog->setMyW(this); + + myTimeoutDialog.reset(new timeoutMsgBoxImpl(this)); + + myChat = new Chat(this, myConfig); + + lineEdit_ChatInput->installEventFilter(this); + this->installEventFilter(this); + + //set WindowTitle dynamically + this->setWindowTitle(QString(tr("PokerTH %1 - The Open-Source Texas Holdem Engine").arg(POKERTH_BETA_RELEASE_STRING))); + + //Connects + connect(dealFlopCards0Timer, SIGNAL(timeout()), this, SLOT( dealFlopCards1() )); + connect(dealFlopCards1Timer, SIGNAL(timeout()), this, SLOT( dealFlopCards2() )); + connect(dealFlopCards2Timer, SIGNAL(timeout()), this, SLOT( dealFlopCards3() )); + connect(dealFlopCards3Timer, SIGNAL(timeout()), this, SLOT( dealFlopCards4() )); + connect(dealFlopCards4Timer, SIGNAL(timeout()), this, SLOT( dealFlopCards5() )); + connect(dealFlopCards5Timer, SIGNAL(timeout()), this, SLOT( dealFlopCards6() )); + connect(dealFlopCards6Timer, SIGNAL(timeout()), this, SLOT( handSwitchRounds() )); + connect(dealTurnCards0Timer, SIGNAL(timeout()), this, SLOT( dealTurnCards1() )); + connect(dealTurnCards1Timer, SIGNAL(timeout()), this, SLOT( dealTurnCards2() )); + connect(dealTurnCards2Timer, SIGNAL(timeout()), this, SLOT( handSwitchRounds() )); + connect(dealRiverCards0Timer, SIGNAL(timeout()), this, SLOT( dealRiverCards1() )); + connect(dealRiverCards1Timer, SIGNAL(timeout()), this, SLOT( dealRiverCards2() )); + connect(dealRiverCards2Timer, SIGNAL(timeout()), this, SLOT( handSwitchRounds() )); + + connect(nextPlayerAnimationTimer, SIGNAL(timeout()), this, SLOT( handSwitchRounds() )); + connect(preflopAnimation1Timer, SIGNAL(timeout()), this, SLOT( preflopAnimation1Action() )); + connect(preflopAnimation2Timer, SIGNAL(timeout()), this, SLOT( preflopAnimation2Action() )); + connect(flopAnimation1Timer, SIGNAL(timeout()), this, SLOT( flopAnimation1Action() )); + connect(flopAnimation2Timer, SIGNAL(timeout()), this, SLOT( flopAnimation2Action() )); + connect(turnAnimation1Timer, SIGNAL(timeout()), this, SLOT( turnAnimation1Action() )); + connect(turnAnimation2Timer, SIGNAL(timeout()), this, SLOT( turnAnimation2Action() )); + connect(riverAnimation1Timer, SIGNAL(timeout()), this, SLOT( riverAnimation1Action() )); + connect(riverAnimation2Timer, SIGNAL(timeout()), this, SLOT( riverAnimation2Action() )); + + connect(postRiverAnimation1Timer, SIGNAL(timeout()), this, SLOT( postRiverAnimation1Action() )); + connect(postRiverRunAnimation1Timer, SIGNAL(timeout()), this, SLOT( postRiverRunAnimation2() )); + connect(postRiverRunAnimation2Timer, SIGNAL(timeout()), this, SLOT( postRiverRunAnimation3() )); + connect(postRiverRunAnimation2_flipHoleCards1Timer, SIGNAL(timeout()), this, SLOT( postRiverRunAnimation2_flipHoleCards1() )); + connect(postRiverRunAnimation2_flipHoleCards2Timer, SIGNAL(timeout()), this, SLOT( postRiverRunAnimation2_flipHoleCards2() )); + connect(postRiverRunAnimation3Timer, SIGNAL(timeout()), this, SLOT( postRiverRunAnimation4() )); + connect(potDistributeTimer, SIGNAL(timeout()), this, SLOT(postRiverRunAnimation5())); + connect(postRiverRunAnimation5Timer, SIGNAL(timeout()), this, SLOT( postRiverRunAnimation6() )); + connect(postRiverRunAnimation6Timer, SIGNAL(timeout()), this, SLOT( startNewHand() )); + + connect(blinkingStartButtonAnimationTimer, SIGNAL(timeout()), this, SLOT( blinkingStartButtonAnimationAction())); + + connect( actionNewGame, SIGNAL( triggered() ), this, SLOT( callNewGameDialog() ) ); + connect( actionAboutPokerth, SIGNAL( triggered() ), this, SLOT( callAboutPokerthDialog() ) ); + connect( actionSettings, SIGNAL( triggered() ), this, SLOT( callSettingsDialog() ) ); + connect( actionJoin_network_Game, SIGNAL( triggered() ), this, SLOT( callJoinNetworkGameDialog() ) ); + connect( actionCreate_network_Game, SIGNAL( triggered() ), this, SLOT( callCreateNetworkGameDialog() ) ); + connect( actionInternet_Game, SIGNAL( triggered() ), this, SLOT( callGameLobbyDialog() ) ); + connect( actionQuit, SIGNAL( triggered() ), this, SLOT( quitPokerTH() ) ); + connect( actionFullScreen, SIGNAL( triggered() ), this, SLOT( switchFullscreen() ) ); + connect( actionShowHideChat, SIGNAL( triggered() ), this, SLOT( switchChatWindow() ) ); + connect( actionShowHideHelp, SIGNAL( triggered() ), this, SLOT( switchHelpWindow() ) ); + connect( actionShowHideLog, SIGNAL( triggered() ), this, SLOT( switchLogWindow() ) ); + connect( actionShowHideAway, SIGNAL( triggered() ), this, SLOT( switchAwayWindow() ) ); + + + connect( pushButton_BetRaise, SIGNAL( clicked(bool) ), this, SLOT( pushButtonBetRaiseClicked(bool) ) ); + connect( pushButton_Fold, SIGNAL( clicked(bool) ), this, SLOT( pushButtonFoldClicked(bool) ) ); + connect( pushButton_CallCheck, SIGNAL( clicked(bool) ), this, SLOT( pushButtonCallCheckClicked(bool) ) ); + connect( pushButton_AllIn, SIGNAL( clicked(bool) ), this, SLOT(pushButtonAllInClicked(bool) ) ); + connect( horizontalSlider_bet, SIGNAL( valueChanged(int)), this, SLOT ( changeLineEditBetValue(int) ) ); + connect( lineEdit_betValue, SIGNAL( textChanged(QString)), this, SLOT ( lineEditBetValueChanged(QString) ) ); + + connect( horizontalSlider_speed, SIGNAL( valueChanged(int)), this, SLOT ( setGameSpeed(int) ) ); + connect( pushButton_break, SIGNAL( clicked()), this, SLOT ( breakButtonClicked() ) ); // auch wieder starten!!!! + + connect( tabWidget_Left, SIGNAL( currentChanged(int) ), this, SLOT( tabSwitchAction() ) ); + connect( lineEdit_ChatInput, SIGNAL( returnPressed () ), this, SLOT( sendChatMessage() ) ); + connect( lineEdit_ChatInput, SIGNAL( textChanged (QString) ), this, SLOT( checkChatInputLength(QString) ) ); + connect( lineEdit_ChatInput, SIGNAL( textEdited (QString) ), myChat, SLOT( setChatTextEdited() ) ); + + connect( radioButton_manualAction, SIGNAL( clicked() ) , this, SLOT( changePlayingMode() ) ); + connect( radioButton_autoCheckFold, SIGNAL( clicked() ) , this, SLOT( changePlayingMode() ) ); + connect( radioButton_autoCheckCallAny, SIGNAL( clicked() ), this, SLOT( changePlayingMode() ) ); + + //Nachrichten Thread-Save + connect(this, SIGNAL(signalInitGui(int)), this, SLOT(initGui(int))); + + connect(this, SIGNAL(signalShowClientDialog()), this, SLOT(showClientDialog())); + + connect(this, SIGNAL(signalRefreshSet()), this, SLOT(refreshSet())); + connect(this, SIGNAL(signalRefreshCash()), this, SLOT(refreshCash())); + connect(this, SIGNAL(signalRefreshAction(int, int)), this, SLOT(refreshAction(int, int))); + connect(this, SIGNAL(signalRefreshChangePlayer()), this, SLOT(refreshChangePlayer())); + connect(this, SIGNAL(signalRefreshPot()), this, SLOT(refreshPot())); + connect(this, SIGNAL(signalRefreshGroupbox(int, int)), this, SLOT(refreshGroupbox(int, int))); + connect(this, SIGNAL(signalRefreshAll()), this, SLOT(refreshAll())); + connect(this, SIGNAL(signalRefreshPlayerName()), this, SLOT(refreshPlayerName())); + connect(this, SIGNAL(signalRefreshButton()), this, SLOT(refreshButton())); + connect(this, SIGNAL(signalRefreshGameLabels(int)), this, SLOT(refreshGameLabels(int))); + connect(this, SIGNAL(signalSetPlayerAvatar(int, QString)), this, SLOT(setPlayerAvatar(int, QString))); + connect(this, SIGNAL(signalSetPlayerAvatar(int, QString)), myGameLobbyDialog, SLOT(refreshConnectedPlayerAvatars())); + + connect(this, SIGNAL(signalGuiUpdateDone()), this, SLOT(guiUpdateDone())); + + connect(this, SIGNAL(signalMeInAction()), this, SLOT(meInAction())); + connect(this, SIGNAL(signalDisableMyButtons()), this, SLOT(disableMyButtons())); + connect(this, SIGNAL(signalUpdateMyButtonsState()), this, SLOT(updateMyButtonsState())); + connect(this, SIGNAL(signalStartTimeoutAnimation(int, int)), this, SLOT(startTimeoutAnimation(int, int))); + connect(this, SIGNAL(signalStopTimeoutAnimation(int)), this, SLOT(stopTimeoutAnimation(int))); + + connect(this, SIGNAL(signalDealBeRoCards(int)), this, SLOT(dealBeRoCards(int))); + connect(this, SIGNAL(signalDealHoleCards()), this, SLOT(dealHoleCards())); + connect(this, SIGNAL(signalDealFlopCards0()), this, SLOT(dealFlopCards0())); + connect(this, SIGNAL(signalDealTurnCards0()), this, SLOT(dealTurnCards0())); + connect(this, SIGNAL(signalDealRiverCards0()), this, SLOT(dealRiverCards0())); + + connect(this, SIGNAL(signalNextPlayerAnimation()), this, SLOT(nextPlayerAnimation())); + + connect(this, SIGNAL(signalBeRoAnimation2(int)), this, SLOT(beRoAnimation2(int))); + + connect(this, SIGNAL(signalPreflopAnimation1()), this, SLOT(preflopAnimation1())); + connect(this, SIGNAL(signalPreflopAnimation2()), this, SLOT(preflopAnimation2())); + connect(this, SIGNAL(signalFlopAnimation1()), this, SLOT(flopAnimation1())); + connect(this, SIGNAL(signalFlopAnimation2()), this, SLOT(flopAnimation2())); + connect(this, SIGNAL(signalTurnAnimation1()), this, SLOT(turnAnimation1())); + connect(this, SIGNAL(signalTurnAnimation2()), this, SLOT(turnAnimation2())); + connect(this, SIGNAL(signalRiverAnimation1()), this, SLOT(riverAnimation1())); + connect(this, SIGNAL(signalRiverAnimation2()), this, SLOT(riverAnimation2())); + connect(this, SIGNAL(signalPostRiverAnimation1()), this, SLOT(postRiverAnimation1())); + connect(this, SIGNAL(signalPostRiverRunAnimation1()), this, SLOT(postRiverRunAnimation1())); + + connect(this, SIGNAL(signalFlipHolecardsAllIn()), this, SLOT(flipHolecardsAllIn())); + + connect(this, SIGNAL(signalNextRoundCleanGui()), this, SLOT(nextRoundCleanGui())); + + connect(this, SIGNAL(signalNetClientConnect(int)), myConnectToServerDialog, SLOT(refresh(int))); + connect(this, SIGNAL(signalNetClientGameInfo(int)), myStartNetworkGameDialog, SLOT(refresh(int))); + connect(this, SIGNAL(signalNetClientGameInfo(int)), myGameLobbyDialog, SLOT(refresh(int))); + + connect(this, SIGNAL(signalNetClientSelfJoined(unsigned, QString, int)), myStartNetworkGameDialog, SLOT(joinedNetworkGame(unsigned, QString, int))); + connect(this, SIGNAL(signalNetClientPlayerJoined(unsigned, QString, int)), myStartNetworkGameDialog, SLOT(addConnectedPlayer(unsigned, QString, int))); + connect(this, SIGNAL(signalNetClientPlayerChanged(unsigned, QString)), myStartNetworkGameDialog, SLOT(updatePlayer(unsigned, QString))); + connect(this, SIGNAL(signalNetClientPlayerLeft(unsigned, QString)), myStartNetworkGameDialog, SLOT(removePlayer(unsigned, QString))); + connect(this, SIGNAL(signalNetClientNewGameAdmin(unsigned, QString)), myStartNetworkGameDialog, SLOT(newGameAdmin(unsigned, QString))); + connect(this, SIGNAL(signalNetClientGameListNew(unsigned)), myStartNetworkGameDialog, SLOT(gameCreated(unsigned))); + + connect(this, SIGNAL(signalNetClientSelfJoined(unsigned, QString, int)), myGameLobbyDialog, SLOT(joinedNetworkGame(unsigned, QString, int))); + connect(this, SIGNAL(signalNetClientPlayerJoined(unsigned, QString, int)), myGameLobbyDialog, SLOT(addConnectedPlayer(unsigned, QString, int))); + connect(this, SIGNAL(signalNetClientPlayerChanged(unsigned, QString)), myGameLobbyDialog, SLOT(updatePlayer(unsigned, QString))); + connect(this, SIGNAL(signalNetClientPlayerLeft(unsigned, QString)), myGameLobbyDialog, SLOT(removePlayer(unsigned, QString))); + connect(this, SIGNAL(signalNetClientNewGameAdmin(unsigned, QString)), myGameLobbyDialog, SLOT(newGameAdmin(unsigned, QString))); + + connect(this, SIGNAL(signalNetClientGameListNew(unsigned)), myGameLobbyDialog, SLOT(addGame(unsigned))); + connect(this, SIGNAL(signalNetClientGameListRemove(unsigned)), myGameLobbyDialog, SLOT(removeGame(unsigned))); + connect(this, SIGNAL(signalNetClientGameListUpdateMode(unsigned, int)), myGameLobbyDialog, SLOT(updateGameMode(unsigned, int))); + connect(this, SIGNAL(signalNetClientGameListUpdateAdmin(unsigned, unsigned)), myGameLobbyDialog, SLOT(updateGameAdmin(unsigned, unsigned))); + connect(this, SIGNAL(signalNetClientGameListPlayerJoined(unsigned, unsigned)), myGameLobbyDialog, SLOT(gameAddPlayer(unsigned, unsigned))); + connect(this, SIGNAL(signalNetClientGameListPlayerLeft(unsigned, unsigned)), myGameLobbyDialog, SLOT(gameRemovePlayer(unsigned, unsigned))); + connect(this, SIGNAL(signalNetClientRemovedFromGame(int)), myGameLobbyDialog, SLOT(removedFromGame(int))); + connect(this, SIGNAL(signalNetClientStatsUpdate(ServerStats)), myGameLobbyDialog, SLOT(updateStats(ServerStats))); + connect(this, SIGNAL(signalNetClientShowTimeoutDialog(int, unsigned)), this, SLOT(showTimeoutDialog(int, unsigned))); + + // Errors are handled globally, not within one dialog. + connect(this, SIGNAL(signalNetClientError(int, int)), this, SLOT(networkError(int, int))); + connect(this, SIGNAL(signalNetClientNotification(int)), this, SLOT(networkNotification(int))); + connect(this, SIGNAL(signalNetClientRemovedFromGame(int)), this, SLOT(networkNotification(int))); + connect(this, SIGNAL(signalNetServerError(int, int)), this, SLOT(networkError(int, int))); + connect(this, SIGNAL(signalNetClientGameStart(boost::shared_ptr)), this, SLOT(networkStart(boost::shared_ptr))); + + //Chat Messages + connect(this, SIGNAL(signalNetClientChatMsg(QString, QString)), myChat, SLOT(receiveMessage(QString, QString))); + connect(this, SIGNAL(signalNetClientChatMsg(QString, QString)), myStartNetworkGameDialog, SLOT(receiveChatMsg(QString, QString))); + + connect(this, SIGNAL(signalIrcConnect(QString)), myGameLobbyDialog->getLobbyChat(), SLOT(connected(QString))); + connect(this, SIGNAL(signalIrcSelfJoined(QString, QString)), myGameLobbyDialog->getLobbyChat(), SLOT(selfJoined(QString, QString))); + connect(this, SIGNAL(signalIrcPlayerJoined(QString)), myGameLobbyDialog->getLobbyChat(), SLOT(playerJoined(QString))); + connect(this, SIGNAL(signalIrcPlayerChanged(QString, QString)), myGameLobbyDialog->getLobbyChat(), SLOT(playerChanged(QString, QString))); + connect(this, SIGNAL(signalIrcPlayerKicked(QString, QString, QString)), myGameLobbyDialog->getLobbyChat(), SLOT(playerKicked(QString, QString, QString))); + connect(this, SIGNAL(signalIrcPlayerLeft(QString)), myGameLobbyDialog->getLobbyChat(), SLOT(playerLeft(QString))); + connect(this, SIGNAL(signalIrcChatMessage(QString, QString)), myGameLobbyDialog->getLobbyChat(), SLOT(displayMessage(QString, QString))); + connect(this, SIGNAL(signalIrcError(int)), myGameLobbyDialog->getLobbyChat(), SLOT(chatError(int))); + connect(this, SIGNAL(signalIrcServerError(int)), myGameLobbyDialog->getLobbyChat(), SLOT(chatServerError(int))); + +} + +gameTableImpl::~gameTableImpl() { + + delete myConfig; + myConfig = 0; + +} + +void gameTableImpl::callNewGameDialog() { + + //wenn Dialogfenster gezeigt werden soll + if(myConfig->readConfigInt("ShowGameSettingsDialogOnNewGame")){ + + myNewGameDialog->exec(); + if (myNewGameDialog->result() == QDialog::Accepted ) { startNewLocalGame(myNewGameDialog); } + } + // sonst mit gespeicherten Werten starten + else { startNewLocalGame(); } +} + +void gameTableImpl::startNewLocalGame(newGameDialogImpl *v) { + + // Start new local game - terminate existing network game. + mySession->terminateNetworkClient(); + if (myServerGuiInterface.get()) + myServerGuiInterface->getSession().terminateNetworkServer(); + + //get values from local game dialog + GameData gameData; + if(v) { + // Set Game Data + gameData.maxNumberOfPlayers = v->spinBox_quantityPlayers->value(); + gameData.startMoney = v->spinBox_startCash->value(); + gameData.firstSmallBlind = v->getChangeCompleteBlindsDialog()->spinBox_firstSmallBlind->value(); + + if(v->getChangeCompleteBlindsDialog()->radioButton_raiseBlindsAtHands->isChecked()) { + gameData.raiseIntervalMode = RAISE_ON_HANDNUMBER; + gameData.raiseSmallBlindEveryHandsValue = v->getChangeCompleteBlindsDialog()->spinBox_raiseSmallBlindEveryHands->value(); + } + else { + gameData.raiseIntervalMode = RAISE_ON_MINUTES; + gameData.raiseSmallBlindEveryMinutesValue = v->getChangeCompleteBlindsDialog()->spinBox_raiseSmallBlindEveryMinutes->value(); + } + + if(v->getChangeCompleteBlindsDialog()->radioButton_alwaysDoubleBlinds->isChecked()) { + gameData.raiseMode = DOUBLE_BLINDS; + } + else { + gameData.raiseMode = MANUAL_BLINDS_ORDER; + list tempBlindList; + int i; + bool ok = TRUE; + for(i=0; igetChangeCompleteBlindsDialog()->listWidget_blinds->count(); i++) { + tempBlindList.push_back(v->getChangeCompleteBlindsDialog()->listWidget_blinds->item(i)->text().toInt(&ok,10)); + } + gameData.manualBlindsList = tempBlindList; + + if(v->getChangeCompleteBlindsDialog()->radioButton_afterThisAlwaysDoubleBlinds->isChecked()) { gameData.afterManualBlindsMode = AFTERMB_DOUBLE_BLINDS; } + else { + if(v->getChangeCompleteBlindsDialog()->radioButton_afterThisAlwaysRaiseAbout->isChecked()) { + gameData.afterManualBlindsMode = AFTERMB_RAISE_ABOUT; + gameData.afterMBAlwaysRaiseValue = v->getChangeCompleteBlindsDialog()->spinBox_afterThisAlwaysRaiseValue->value(); + } + else { gameData.afterManualBlindsMode = AFTERMB_STAY_AT_LAST_BLIND; } + } + } + + //Speeds + gameData.guiSpeed = v->spinBox_gameSpeed->value(); + } + // start with default values + else { + // Set Game Data + gameData.maxNumberOfPlayers = myConfig->readConfigInt("NumberOfPlayers"); + gameData.startMoney = myConfig->readConfigInt("StartCash"); + gameData.firstSmallBlind = myConfig->readConfigInt("FirstSmallBlind"); + + if(myConfig->readConfigInt("RaiseBlindsAtHands")) { + gameData.raiseIntervalMode = RAISE_ON_HANDNUMBER; + gameData.raiseSmallBlindEveryHandsValue = myConfig->readConfigInt("RaiseSmallBlindEveryHands"); + } + else { + gameData.raiseIntervalMode = RAISE_ON_MINUTES; + gameData.raiseSmallBlindEveryMinutesValue = myConfig->readConfigInt("RaiseSmallBlindEveryMinutes"); + } + + if(myConfig->readConfigInt("AlwaysDoubleBlinds")) { + gameData.raiseMode = DOUBLE_BLINDS; + } + else { + gameData.raiseMode = MANUAL_BLINDS_ORDER; + gameData.manualBlindsList = myConfig->readConfigIntList("ManualBlindsList"); + + if(myConfig->readConfigInt("AfterMBAlwaysDoubleBlinds")) { gameData.afterManualBlindsMode = AFTERMB_DOUBLE_BLINDS; } + else { + if(myConfig->readConfigInt("AfterMBAlwaysRaiseAbout")) { + gameData.afterManualBlindsMode = AFTERMB_RAISE_ABOUT; + gameData.afterMBAlwaysRaiseValue = myConfig->readConfigInt("AfterMBAlwaysRaiseValue"); + } + else { gameData.afterManualBlindsMode = AFTERMB_STAY_AT_LAST_BLIND; } + } + } + //Speeds + gameData.guiSpeed = myConfig->readConfigInt("GameSpeed"); + } + // Set dealer pos. + StartData startData; + int tmpDealerPos = 0; + startData.numberOfPlayers = gameData.maxNumberOfPlayers; + Tools::getRandNumber(0, startData.numberOfPlayers-1, 1, &tmpDealerPos, 0); + if(DEBUG_MODE) { + tmpDealerPos = 1; + } + startData.startDealerPlayerId = static_cast(tmpDealerPos); + + //some gui modifications + localGameModification(); + + //Start Game!!! + mySession->startLocalGame(gameData, startData); +} + + +void gameTableImpl::callAboutPokerthDialog() { myAboutPokerthDialog->exec(); } + +void gameTableImpl::callCreateNetworkGameDialog() { + + myCreateNetworkGameDialog->exec(); +// + if (myCreateNetworkGameDialog->result() == QDialog::Accepted ) { + + // Stop local game. + stopTimer(); + + if (!myServerGuiInterface.get()) + { + // Create pseudo Gui Wrapper for the server. + myServerGuiInterface.reset(new ServerGuiWrapper(myConfig, mySession->getGui(), mySession->getGui(), mySession->getGui())); + { + boost::shared_ptr session(new Session(myServerGuiInterface.get(), myConfig)); + session->init(mySession->getAvatarManager()); + myServerGuiInterface->setSession(session); + } + } + + // Terminate existing network games. + mySession->terminateNetworkClient(); + myServerGuiInterface->getSession().terminateNetworkServer(); + + GameData gameData; + gameData.maxNumberOfPlayers = myCreateNetworkGameDialog->spinBox_quantityPlayers->value(); + gameData.startMoney = myCreateNetworkGameDialog->spinBox_startCash->value(); + gameData.firstSmallBlind = myCreateNetworkGameDialog->getChangeCompleteBlindsDialog()->spinBox_firstSmallBlind->value(); + + if(myCreateNetworkGameDialog->getChangeCompleteBlindsDialog()->radioButton_raiseBlindsAtHands->isChecked()) { + gameData.raiseIntervalMode = RAISE_ON_HANDNUMBER; + gameData.raiseSmallBlindEveryHandsValue = myCreateNetworkGameDialog->getChangeCompleteBlindsDialog()->spinBox_raiseSmallBlindEveryHands->value(); + } + else { + gameData.raiseIntervalMode = RAISE_ON_MINUTES; + gameData.raiseSmallBlindEveryMinutesValue = myCreateNetworkGameDialog->getChangeCompleteBlindsDialog()->spinBox_raiseSmallBlindEveryMinutes->value(); + } + + if(myCreateNetworkGameDialog->getChangeCompleteBlindsDialog()->radioButton_alwaysDoubleBlinds->isChecked()) { + gameData.raiseMode = DOUBLE_BLINDS; + } + else { + gameData.raiseMode = MANUAL_BLINDS_ORDER; + list tempBlindList; + int i; + bool ok = TRUE; + for(i=0; igetChangeCompleteBlindsDialog()->listWidget_blinds->count(); i++) { + tempBlindList.push_back(myCreateNetworkGameDialog->getChangeCompleteBlindsDialog()->listWidget_blinds->item(i)->text().toInt(&ok,10)); + } + gameData.manualBlindsList = tempBlindList; + + if(myCreateNetworkGameDialog->getChangeCompleteBlindsDialog()->radioButton_afterThisAlwaysDoubleBlinds->isChecked()) { gameData.afterManualBlindsMode = AFTERMB_DOUBLE_BLINDS; } + else { + if(myCreateNetworkGameDialog->getChangeCompleteBlindsDialog()->radioButton_afterThisAlwaysRaiseAbout->isChecked()) { + gameData.afterManualBlindsMode = AFTERMB_RAISE_ABOUT; + gameData.afterMBAlwaysRaiseValue = myCreateNetworkGameDialog->getChangeCompleteBlindsDialog()->spinBox_afterThisAlwaysRaiseValue->value(); + } + else { gameData.afterManualBlindsMode = AFTERMB_STAY_AT_LAST_BLIND; } + } + } + + gameData.guiSpeed = myCreateNetworkGameDialog->spinBox_gameSpeed->value(); + gameData.playerActionTimeoutSec = myCreateNetworkGameDialog->spinBox_netTimeOutPlayerAction->value(); + + myGameLobbyDialog->setSession(&getSession()); + myStartNetworkGameDialog->setSession(&getSession()); + + // Clear network game dialog. + myStartNetworkGameDialog->clearDialog(); + + myServerGuiInterface->getSession().startNetworkServer(); + mySession->startNetworkClientForLocalServer(gameData); + + myStartNetworkGameDialog->setMaxPlayerNumber(gameData.maxNumberOfPlayers); + + myStartNetworkGameDialog->setWindowTitle("Start Network Game"); + + showNetworkStartDialog(); + } + +} + +void gameTableImpl::callJoinNetworkGameDialog() { + + myJoinNetworkGameDialog->exec(); + + if (myJoinNetworkGameDialog->result() == QDialog::Accepted ) { + + // Stop local game. + stopTimer(); + + mySession->terminateNetworkClient(); + if (myServerGuiInterface.get()) + myServerGuiInterface->getSession().terminateNetworkServer(); + + myGameLobbyDialog->setSession(&getSession()); + myStartNetworkGameDialog->setSession(&getSession()); + // Clear network game dialog + myStartNetworkGameDialog->clearDialog(); + // Maybe use QUrl::toPunycode. + mySession->startNetworkClient( + myJoinNetworkGameDialog->lineEdit_ipAddress->text().toUtf8().constData(), + myJoinNetworkGameDialog->spinBox_port->value(), + myJoinNetworkGameDialog->checkBox_ipv6->isChecked(), + myJoinNetworkGameDialog->checkBox_sctp->isChecked(), + myJoinNetworkGameDialog->lineEdit_password->text().toUtf8().constData()); + + //Dialog mit Statusbalken + myConnectToServerDialog->exec(); + + if (myConnectToServerDialog->result() == QDialog::Rejected ) { + mySession->terminateNetworkClient(); + actionJoin_network_Game->trigger(); // re-trigger + } + else { + //needed for join and ready sounds - TODO + //myStartNetworkGameDialog->setMaxPlayerNumber(gameData.maxNumberOfPlayers); + myStartNetworkGameDialog->setWindowTitle("Start Network Game"); + + showNetworkStartDialog(); + } + } +} + +void gameTableImpl::callGameLobbyDialog() { + + //Avoid join Lobby with "Human Player" nick + if(QString::fromUtf8(myConfig->readConfigString("MyName").c_str()) == QString("Human Player")) { + myChangeHumanPlayerNameDialog->label_Message->setText(tr("You cannot join Internet-Game-Lobby with \"Human Player\" as nickname.\nPlease choose another one.")); + myChangeHumanPlayerNameDialog->exec(); + + if(myChangeHumanPlayerNameDialog->result() == QDialog::Accepted) { + joinGameLobby(); + } + } + else { + joinGameLobby(); + } +} + +void gameTableImpl::joinGameLobby() { + + // Stop local game. + stopTimer(); + +// Join Lobby + mySession->terminateNetworkClient(); + if (myServerGuiInterface.get()) + myServerGuiInterface->getSession().terminateNetworkServer(); + myGameLobbyDialog->setSession(&getSession()); + myStartNetworkGameDialog->setSession(&getSession()); + + // Clear Lobby dialog. + myGameLobbyDialog->clearDialog(); + + //set clean irc nick + QString myNick(QString::fromUtf8(myConfig->readConfigString("MyName").c_str())); + myNick.replace(QString::fromUtf8("ä"),"ae"); + myNick.replace(QString::fromUtf8("Ä"),"Ae"); + myNick.replace(QString::fromUtf8("ü"),"ue"); + myNick.replace(QString::fromUtf8("Ü"),"Ue"); + myNick.replace(QString::fromUtf8("ö"),"oe"); + myNick.replace(QString::fromUtf8("Ö"),"Oe"); + myNick.replace(QString::fromUtf8("é"),"e"); + myNick.replace(QString::fromUtf8("è"),"e"); + myNick.replace(QString::fromUtf8("á"),"a"); + myNick.replace(QString::fromUtf8("à"),"a"); + myNick.replace(QString::fromUtf8("ó"),"o"); + myNick.replace(QString::fromUtf8("ò"),"o"); + myNick.replace(QString::fromUtf8("ú"),"u"); + myNick.replace(QString::fromUtf8("ù"),"u"); + myNick.replace(QString::fromUtf8("É"),"E"); + myNick.replace(QString::fromUtf8("È"),"E"); + myNick.replace(QString::fromUtf8("Á"),"A"); + myNick.replace(QString::fromUtf8("À"),"A"); + myNick.replace(QString::fromUtf8("Ó"),"O"); + myNick.replace(QString::fromUtf8("Ò"),"O"); + myNick.replace(QString::fromUtf8("Ú"),"U"); + myNick.replace(QString::fromUtf8("Ù"),"U"); + myNick.remove(QRegExp("[^A-Z^a-z^0-9|\\-_\\\\^`]*")); + myNick = myNick.mid(0,16); + + mySession->setIrcNick(myNick.toUtf8().constData()); + + // Start client for dedicated server. + mySession->startInternetClient(); + + //Dialog mit Statusbalken + myConnectToServerDialog->exec(); + + if (myConnectToServerDialog->result() == QDialog::Rejected ) { + mySession->terminateNetworkClient(); + } + else + { + showLobbyDialog(); + } +} + +void gameTableImpl::callSettingsDialog() { + + mySettingsDialog->exec(); + + if (mySettingsDialog->result() == QDialog::Accepted && mySettingsDialog->getSettingsCorrect()) { + //Toolbox verstecken? + if (myConfig->readConfigInt("ShowLeftToolBox")) { groupBox_LeftToolBox->show(); } + else { groupBox_LeftToolBox->hide(); } + + if (myConfig->readConfigInt("ShowRightToolBox")) { groupBox_RightToolBox->show(); } + else { groupBox_RightToolBox->hide(); } + + //Add avatar (if set) + mySession->addOwnAvatar(myConfig->readConfigString("MyAvatar")); + + //Falls Spielernamen geändert wurden --> neu zeichnen --> erst beim nächsten Neustart neu ausgelesen + if (mySettingsDialog->getPlayerNickIsChanged() && mySession->getCurrentGame() && !mySession->isNetworkClientRunning()) { + + Game *currentGame = mySession->getCurrentGame(); + PlayerListIterator it = currentGame->getSeatsList()->begin(); + (*it)->setMyName(mySettingsDialog->lineEdit_HumanPlayerName->text().toUtf8().constData()); + (*(++it))->setMyName(mySettingsDialog->lineEdit_Opponent1Name->text().toUtf8().constData()); + (*(++it))->setMyName(mySettingsDialog->lineEdit_Opponent2Name->text().toUtf8().constData()); + (*(++it))->setMyName(mySettingsDialog->lineEdit_Opponent3Name->text().toUtf8().constData()); + (*(++it))->setMyName(mySettingsDialog->lineEdit_Opponent4Name->text().toUtf8().constData()); + (*(++it))->setMyName(mySettingsDialog->lineEdit_Opponent5Name->text().toUtf8().constData()); + (*(++it))->setMyName(mySettingsDialog->lineEdit_Opponent6Name->text().toUtf8().constData()); + mySettingsDialog->setPlayerNickIsChanged(FALSE); + + refreshPlayerName(); + } + + if(mySession->getCurrentGame() && !mySession->isNetworkClientRunning()) { + + Game *currentGame = mySession->getCurrentGame(); + PlayerListIterator it = currentGame->getSeatsList()->begin(); + (*it)->setMyAvatar(mySettingsDialog->pushButton_HumanPlayerAvatar->getMyLink().toUtf8().constData()); + (*(++it))->setMyAvatar(mySettingsDialog->pushButton_Opponent1Avatar->getMyLink().toUtf8().constData()); + (*(++it))->setMyAvatar(mySettingsDialog->pushButton_Opponent2Avatar->getMyLink().toUtf8().constData()); + (*(++it))->setMyAvatar(mySettingsDialog->pushButton_Opponent3Avatar->getMyLink().toUtf8().constData()); + (*(++it))->setMyAvatar(mySettingsDialog->pushButton_Opponent4Avatar->getMyLink().toUtf8().constData()); + (*(++it))->setMyAvatar(mySettingsDialog->pushButton_Opponent5Avatar->getMyLink().toUtf8().constData()); + (*(++it))->setMyAvatar(mySettingsDialog->pushButton_Opponent6Avatar->getMyLink().toUtf8().constData()); + + //avatar refresh + refreshPlayerAvatar(); + } + + //Flipside refresh + if (myConfig->readConfigInt("FlipsideOwn") && myConfig->readConfigString("FlipsideOwnFile") != "") { + flipside = new QPixmap(QString::fromUtf8(myConfig->readConfigString("FlipsideOwnFile").c_str())); + } + else { + flipside = new QPixmap(myAppDataPath +"gfx/cards/default/flipside.png"); + } + + //Check for anti-peek mode + if(mySession->getCurrentGame()) { + QPixmap tempCardsPixmapArray[2]; + int tempCardsIntArray[2]; + + mySession->getCurrentGame()->getSeatsList()->front()->getMyCards(tempCardsIntArray); + if(myConfig->readConfigInt("AntiPeekMode")) { + holeCardsArray[0][0]->setPixmap(*flipside, TRUE); + tempCardsPixmapArray[0].load(myAppDataPath +"gfx/cards/default/"+QString::number(tempCardsIntArray[0], 10)+".png"); + holeCardsArray[0][0]->setFrontPixmap(tempCardsPixmapArray[0]); + holeCardsArray[0][1]->setPixmap(*flipside, TRUE); + tempCardsPixmapArray[1].load(myAppDataPath +"gfx/cards/default/"+QString::number(tempCardsIntArray[1], 10)+".png"); + holeCardsArray[0][1]->setFrontPixmap(tempCardsPixmapArray[1]); + } + else { + tempCardsPixmapArray[0].load(myAppDataPath +"gfx/cards/default/"+QString::number(tempCardsIntArray[0], 10)+".png"); + holeCardsArray[0][0]->setPixmap(tempCardsPixmapArray[0],FALSE); + tempCardsPixmapArray[1].load(myAppDataPath +"gfx/cards/default/"+QString::number(tempCardsIntArray[1], 10)+".png"); + holeCardsArray[0][1]->setPixmap(tempCardsPixmapArray[1],FALSE); + } + } + + if(mySession->getCurrentGame()) { + //blind buttons refresh + refreshButton(); + } + int i,j; + + for (i=1; igetIsFlipside()) { + holeCardsArray[i][j]->setPixmap(*flipside, TRUE); + } + } + } + // Re-init audio. + mySDLPlayer->audioDone(); + mySDLPlayer->initAudio(); + } +} + +void gameTableImpl::initGui(int speed) +{ + //kill running Singleshots!!! + stopTimer(); + + label_Pot->setText("Pot"); + label_Total->setText("Total:"); + label_Sets->setText("Bets:"); + label_handNumber->setText("Hand:"); + label_gameNumber->setText("Game:"); + + groupBox_RightToolBox->setDisabled(FALSE); + groupBox_LeftToolBox->setDisabled(FALSE); + + //show human player buttons + for(int i=0; i<6; i++) { + userWidgetsArray[i]->show(); + } + + //set speeds for local game and for first network game + if( !mySession->isNetworkClientRunning() || (mySession->isNetworkClientRunning() && !mySession->getCurrentGame()) ) { + + guiGameSpeed = speed; + //positioning Slider + horizontalSlider_speed->setValue(guiGameSpeed); + setSpeeds(); + } +} + +void gameTableImpl::showClientDialog() +{ + if (mySession->getGameType() == Session::GAME_TYPE_NETWORK) + { + if (!myStartNetworkGameDialog->isVisible()) + showNetworkStartDialog(); + } + else if (mySession->getGameType() == Session::GAME_TYPE_INTERNET) + { + if (!myGameLobbyDialog->isVisible()) + showLobbyDialog(); + } +} + +void gameTableImpl::showNetworkStartDialog() +{ + myStartNetworkGameDialog->exec(); + + if (myStartNetworkGameDialog->result() == QDialog::Accepted ) { + + //some gui modifications + networkGameModification(); + } + else { + mySession->terminateNetworkClient(); + if (myServerGuiInterface) + myServerGuiInterface->getSession().terminateNetworkServer(); + } +} + +void gameTableImpl::showLobbyDialog() +{ + myGameLobbyDialog->exec(); + + if (myGameLobbyDialog->result() == QDialog::Accepted) + { + //some gui modifications + networkGameModification(); + } + else + { + mySession->terminateNetworkClient(); + } +} + +Session &gameTableImpl::getSession() { assert(mySession.get()); return *mySession; } +void gameTableImpl::setSession(boost::shared_ptr session) { mySession = session; } + + +//refresh-Funktionen +void gameTableImpl::refreshSet() { + + Game *currentGame = mySession->getCurrentGame(); + + PlayerListConstIterator it_c; + for (it_c=currentGame->getSeatsList()->begin(); it_c!=currentGame->getSeatsList()->end(); it_c++) { + if( (*it_c)->getMySet() == 0 ) + setLabelArray[(*it_c)->getMyID()]->setText(""); + else + setLabelArray[(*it_c)->getMyID()]->setText("Bet: $"+QString::number((*it_c)->getMySet(),10)); + } + + +} + +void gameTableImpl::refreshButton() { + + QPixmap dealerButton(myAppDataPath +"gfx/gui/table/default/dealerPuck.png"); + QPixmap smallblindButton(myAppDataPath +"gfx/gui/table/default/smallblindPuck.png"); + QPixmap bigblindButton(myAppDataPath +"gfx/gui/table/default/bigblindPuck.png"); + QPixmap onePix(myAppDataPath +"gfx/gui/misc/1px.png"); + + Game *currentGame = mySession->getCurrentGame(); + + PlayerListConstIterator it_c; + + for (it_c=currentGame->getSeatsList()->begin(); it_c!=currentGame->getSeatsList()->end(); it_c++) { + if( (*it_c)->getMyActiveStatus() ) { + if( currentGame->getActivePlayerList()->size() > 2 ) { + switch ( (*it_c)->getMyButton() ) { + + case 1 : buttonLabelArray[(*it_c)->getMyID()]->setPixmap(dealerButton); + break; + case 2 : { + if(myConfig->readConfigInt("ShowBlindButtons")) + buttonLabelArray[(*it_c)->getMyID()]->setPixmap(smallblindButton); + else + buttonLabelArray[(*it_c)->getMyID()]->setPixmap(onePix); + } + break; + case 3 : { + if(myConfig->readConfigInt("ShowBlindButtons")) + buttonLabelArray[(*it_c)->getMyID()]->setPixmap(bigblindButton); + else + buttonLabelArray[(*it_c)->getMyID()]->setPixmap(onePix); + } + break; + default: buttonLabelArray[(*it_c)->getMyID()]->setPixmap(onePix); + + } + } + else { + switch ((*it_c)->getMyButton()) { + + case 2 : buttonLabelArray[(*it_c)->getMyID()]->setPixmap(dealerButton); + break; + case 3 : { + if(myConfig->readConfigInt("ShowBlindButtons")) + buttonLabelArray[(*it_c)->getMyID()]->setPixmap(bigblindButton); + else + buttonLabelArray[(*it_c)->getMyID()]->setPixmap(onePix); + } + break; + default: buttonLabelArray[(*it_c)->getMyID()]->setPixmap(onePix); + + } + } + } + else { buttonLabelArray[(*it_c)->getMyID()]->setPixmap(onePix); } + } + + + +} + +void gameTableImpl::refreshPlayerName() { + + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + + PlayerListConstIterator it_c; + for (it_c=currentHand->getSeatsList()->begin(); it_c!=currentHand->getSeatsList()->end(); it_c++) { + if((*it_c)->getMyActiveStatus()) { + playerNameLabelArray[(*it_c)->getMyID()]->setText(QString::fromUtf8((*it_c)->getMyName().c_str())); + + } else { + playerNameLabelArray[(*it_c)->getMyID()]->setText(""); + + } + } +} + +QStringList gameTableImpl::getPlayerNicksList() { + + QStringList list; + PlayerListConstIterator it_c; + + for (it_c=mySession->getCurrentGame()->getSeatsList()->begin(); it_c!=mySession->getCurrentGame()->getSeatsList()->end(); it_c++) { + list << QString::fromUtf8((*it_c)->getMyName().c_str()); + } + + return list; +} + +void gameTableImpl::refreshPlayerAvatar() { + + QPixmap onePix(myAppDataPath +"gfx/gui/misc/1px.png"); + + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + + PlayerListConstIterator it_c; + for (it_c=currentHand->getSeatsList()->begin(); it_c!=currentHand->getSeatsList()->end(); it_c++) { + if((*it_c)->getMyActiveStatus()) { + + if((*it_c)->getMyAvatar() == "" || !QFile::QFile(QString::fromUtf8((*it_c)->getMyAvatar().c_str())).exists()) { + playerAvatarLabelArray[(*it_c)->getMyID()]->setPixmap(QPixmap(myAppDataPath +"gfx/gui/table/default/genereticAvatar.png")); + } + else { + playerAvatarLabelArray[(*it_c)->getMyID()]->setPixmap(QString::fromUtf8((*it_c)->getMyAvatar().c_str())); + } + } + else { + playerAvatarLabelArray[(*it_c)->getMyID()]->setPixmap(onePix); + } + } +} + +void gameTableImpl::setPlayerAvatar(int myID, QString myAvatar) { + + if(mySession->getCurrentGame()) { + + boost::shared_ptr tmpPlayer = mySession->getCurrentGame()->getPlayerByUniqueId(myID); + if (tmpPlayer.get()) { + + if(QFile::QFile(myAvatar).exists()) { + playerAvatarLabelArray[tmpPlayer->getMyID()]->setPixmap(myAvatar); + tmpPlayer->setMyAvatar(myAvatar.toUtf8().constData()); + } + else { + playerAvatarLabelArray[tmpPlayer->getMyID()]->setPixmap(QPixmap(myAppDataPath +"gfx/gui/table/default/genereticAvatar.png")); + tmpPlayer->setMyAvatar(""); + } + } + } +} + + +void gameTableImpl::refreshAction(int playerID, int playerAction) { + + QPixmap onePix(myAppDataPath +"gfx/gui/misc/1px.png"); + QPixmap action; + + QStringList actionArray; + actionArray << "" << "fold" << "check" << "call" << "bet" << "raise" << "allin"; + + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + + if(playerID == -1 || playerAction == -1) { + + PlayerListConstIterator it_c; + for (it_c=currentHand->getSeatsList()->begin(); it_c!=currentHand->getSeatsList()->end(); it_c++) { + + //if no action --> clear Pixmap + if( (*it_c)->getMyAction() == 0) { + actionLabelArray[(*it_c)->getMyID()]->setPixmap(onePix); + } + else { + //paint action pixmap + actionLabelArray[(*it_c)->getMyID()]->setPixmap(QPixmap(myAppDataPath +"gfx/gui/table/default/action_"+actionArray[(*it_c)->getMyAction()]+".png")); + } + + if ((*it_c)->getMyAction()==1) { + + if((*it_c)->getMyID() != 0) { + holeCardsArray[(*it_c)->getMyID()][0]->setPixmap(onePix, FALSE); + holeCardsArray[(*it_c)->getMyID()][1]->setPixmap(onePix, FALSE); + } + } + } + } + else { + //if no action --> clear Pixmap + if(playerAction == 0) { + actionLabelArray[playerID]->setPixmap(onePix); + } + else { + + // paint action pixmap and raise + actionLabelArray[playerID]->setPixmap(QPixmap(myAppDataPath +"gfx/gui/table/default/action_"+actionArray[playerAction]+".png")); + + //play sounds if exist + if(myConfig->readConfigInt("PlayGameActions")) + mySDLPlayer->playSound(actionArray[playerAction].toStdString(), playerID); + } + + if (playerAction == 1) { // FOLD + + if (playerID == 0 && !myConfig->readConfigInt("AntiPeekMode")) { + holeCardsArray[0][0]->startFadeOut(10); + holeCardsArray[0][1]->startFadeOut(10); + } + else { + holeCardsArray[playerID][0]->setPixmap(onePix, FALSE); + holeCardsArray[playerID][1]->setPixmap(onePix, FALSE); + } + } + } +} + +void gameTableImpl::refreshCash() { + + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + + PlayerListConstIterator it_c; + for (it_c=currentHand->getSeatsList()->begin(); it_c!=currentHand->getSeatsList()->end(); it_c++) { + if((*it_c)->getMyActiveStatus()) { + + cashLabelArray[(*it_c)->getMyID()]->setText("$"+QString::number((*it_c)->getMyCash(),10)); + cashTopLabelArray[(*it_c)->getMyID()]->setText("Cash:"); + + } else { + cashLabelArray[(*it_c)->getMyID()]->setText(""); + cashTopLabelArray[(*it_c)->getMyID()]->setText(""); + } + } +} + +void gameTableImpl::refreshGroupbox(int playerID, int status) { + + int j; + + if(playerID == -1 || status == -1) { + + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + PlayerListConstIterator it_c; + for (it_c=currentHand->getSeatsList()->begin(); it_c!=currentHand->getSeatsList()->end(); it_c++) { + + if((*it_c)->getMyTurn()) { + //Groupbox glow wenn der Spiele dran ist. + if((*it_c)->getMyID()==0) { + groupBoxArray[0]->setStyleSheet("QGroupBox { border:none; background-image: url(" + myAppDataPath +"gfx/gui/table/default/playerBoxActiveGlow_0.6.png) }"); + } + else { + groupBoxArray[(*it_c)->getMyID()]->setStyleSheet("QGroupBox { border:none; background-image: url(" + myAppDataPath +"gfx/gui/table/default/opponentBoxActiveGlow.png) }"); + } + + } else { + //Groupbox auf Hintergrundfarbe setzen wenn der Spiele nicht dran aber aktiv ist. + if((*it_c)->getMyActiveStatus()) { + if((*it_c)->getMyID()==0) { + groupBoxArray[0]->setStyleSheet("QGroupBox { border:none; background-image: url(" + myAppDataPath +"gfx/gui/table/default/playerBoxInactiveGlow_0.6.png) }"); + //show buttons + for(j=0; j<6; j++) { + userWidgetsArray[j]->show(); + } + } + else { + groupBoxArray[(*it_c)->getMyID()]->setStyleSheet("QGroupBox { border:none; background-image: url(" + myAppDataPath +"gfx/gui/table/default/opponentBoxInactiveGlow.png) }"); + } + } + //Groupbox verdunkeln wenn der Spiele inactive ist. + else { + if((*it_c)->getMyID()==0) { + groupBoxArray[0]->setStyleSheet("QGroupBox { border:none; background-image: url(" + myAppDataPath +"gfx/gui/table/default/playerBoxInactiveGlow_0.6.png) }"); + //hide buttons + for(j=0; j<6; j++) { + userWidgetsArray[j]->hide(); + } + //disable anti-peek front after player is out + holeCardsArray[0][0]->signalFastFlipCards(FALSE); + holeCardsArray[0][1]->signalFastFlipCards(FALSE); + } + else { + groupBoxArray[(*it_c)->getMyID()]->setStyleSheet("QGroupBox { border:none; background-image: url(" + myAppDataPath +"gfx/gui/table/default/opponentBoxInactiveGlow.png) }"); + } + } + } + } + } + else { + switch(status) { + + //inactive + case 0: { + if (!playerID) { + groupBoxArray[playerID]->setStyleSheet("QGroupBox { border:none; background-image: url(" + myAppDataPath +"gfx/gui/table/default/playerBoxInactiveGlow_0.6.png) }"); + //hide buttons + for(j=0; j<6; j++) { + userWidgetsArray[j]->hide(); + } + //disable anti-peek front after player is out + holeCardsArray[0][0]->signalFastFlipCards(FALSE); + holeCardsArray[0][1]->signalFastFlipCards(FALSE); + } + else { + groupBoxArray[playerID]->setStyleSheet("QGroupBox { border:none; background-image: url(" + myAppDataPath +"gfx/gui/table/default/opponentBoxInactiveGlow.png) }"); + } + } + break; + //active but fold + case 1: { + if (!playerID) { + groupBoxArray[playerID]->setStyleSheet("QGroupBox { border:none; background-image: url(" + myAppDataPath +"gfx/gui/table/default/playerBoxInactiveGlow_0.6.png) }"); + //show buttons + for(j=0; j<6; j++) { + userWidgetsArray[j]->show(); + } + } + else { + groupBoxArray[playerID]->setStyleSheet("QGroupBox { border:none; background-image: url(" + myAppDataPath +"gfx/gui/table/default/opponentBoxInactiveGlow.png) }"); + } + } + break; + //active in action + case 2: { + if (!playerID) { + groupBoxArray[playerID]->setStyleSheet("QGroupBox { border:none; background-image: url(" + myAppDataPath +"gfx/gui/table/default/playerBoxActiveGlow_0.6.png) }"); + } + else { + groupBoxArray[playerID]->setStyleSheet("QGroupBox { border:none; background-image: url(" + myAppDataPath +"gfx/gui/table/default/opponentBoxActiveGlow.png) }"); + } + } + break; + //active not in action + case 3: { + if (!playerID) { + groupBoxArray[playerID]->setStyleSheet("QGroupBox { border:none; background-image: url(" + myAppDataPath +"gfx/gui/table/default/playerBoxInactiveGlow_0.6.png) }"); + } + else { + groupBoxArray[playerID]->setStyleSheet("QGroupBox { border:none; background-image: url(" + myAppDataPath +"gfx/gui/table/default/opponentBoxInactiveGlow.png) }"); + } + } + break; + default: {} + } + } +} + +void gameTableImpl::refreshGameLabels(int gameState) { + + switch(gameState) { + case 0: { + textLabel_handLabel->setText("Preflop"); + } break; + case 1: { + textLabel_handLabel->setText("Flop"); + } break; + case 2: { + textLabel_handLabel->setText("Turn"); + } break; + case 3: { + textLabel_handLabel->setText("River"); + } break; + case 4: { + textLabel_handLabel->setText(""); + } break; + default: { + textLabel_handLabel->setText("!!! ERROR !!!"); + } + } + + label_handNumberValue->setText(QString::number(mySession->getCurrentGame()->getCurrentHand()->getMyID(),10)); + label_gameNumberValue->setText(QString::number(mySession->getCurrentGame()->getMyGameID(),10)); +} + +void gameTableImpl::refreshAll() { + + refreshSet(); + refreshButton(); + + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + PlayerListConstIterator it_c; + for (it_c=currentHand->getSeatsList()->begin(); it_c!=currentHand->getSeatsList()->end(); it_c++) { + refreshAction( (*it_c)->getMyID(), (*it_c)->getMyAction()); + } + + refreshCash(); + refreshGroupbox(); + refreshPlayerName(); + refreshPlayerAvatar(); +} + +void gameTableImpl::refreshChangePlayer() { + + refreshSet(); + + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + PlayerListConstIterator it_c; + for (it_c=currentHand->getSeatsList()->begin(); it_c!=currentHand->getSeatsList()->end(); it_c++) { + refreshAction( (*it_c)->getMyID(), (*it_c)->getMyAction()); + } + + refreshCash(); +} + +void gameTableImpl::refreshPot() { + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + + textLabel_Sets->setText("$"+QString::number(currentHand->getBoard()->getSets(),10)); + textLabel_Pot->setText("$"+QString::number(currentHand->getBoard()->getPot(),10)); +} + +void gameTableImpl::guiUpdateDone() { + guiUpdateSemaphore.release(); +} + +void gameTableImpl::waitForGuiUpdateDone() { + guiUpdateSemaphore.acquire(); +} + +void gameTableImpl::dealHoleCards() { + + QPixmap onePix(myAppDataPath +"gfx/gui/misc/1px.png"); + + //TempArrays + QPixmap tempCardsPixmapArray[2]; + int tempCardsIntArray[2]; + + // Karten der Gegner und eigene Karten austeilen + int j; + Game *currentGame = mySession->getCurrentGame(); + + PlayerListConstIterator it_c; + for(it_c=currentGame->getSeatsList()->begin(); it_c!=currentGame->getSeatsList()->end(); it_c++) { + (*it_c)->getMyCards(tempCardsIntArray); + for(j=0; j<2; j++) { + if((*it_c)->getMyActiveStatus()) { + if (( (*it_c)->getMyID() == 0) || DEBUG_MODE) { + if(myConfig->readConfigInt("AntiPeekMode")) { + holeCardsArray[(*it_c)->getMyID()][j]->setPixmap(*flipside, TRUE); + tempCardsPixmapArray[j].load(myAppDataPath +"gfx/cards/default/"+QString::number(tempCardsIntArray[j], 10)+".png"); + holeCardsArray[(*it_c)->getMyID()][j]->setFrontPixmap(tempCardsPixmapArray[j]); + } + else { + tempCardsPixmapArray[j].load(myAppDataPath +"gfx/cards/default/"+QString::number(tempCardsIntArray[j], 10)+".png"); + holeCardsArray[(*it_c)->getMyID()][j]->setPixmap(tempCardsPixmapArray[j],FALSE); + } + } + else { + holeCardsArray[(*it_c)->getMyID()][j]->setPixmap(*flipside, TRUE); +/* holeCardsArray[i][j]->setStyleSheet("QLabel:hover { background-image:url(:/cards/resources/graphics/cards/"+QString::number(tempCardsIntArray[j], 10)+".png");*/ + } + } + else { + + holeCardsArray[(*it_c)->getMyID()][j]->setPixmap(onePix, FALSE); +// holeCardsArray[i][j]->repaint(); + } + } + } + + //fix press mouse button during bankrupt with anti-peek-mode + this->mouseOverFlipCards(FALSE); +} + +void gameTableImpl::dealBeRoCards(int myBeRoID) { + + uncheckMyButtons(); + myButtonsCheckable(FALSE); + resetMyButtonsCheckStateMemory(); + clearMyButtons(); + + pushButton_AllIn->setDisabled(TRUE); + horizontalSlider_bet->setDisabled(TRUE); + lineEdit_betValue->setDisabled(TRUE); + + switch(myBeRoID) { + + case 1: { dealFlopCards0(); } + break; + case 2: { dealTurnCards0(); } + break; + case 3: { dealRiverCards0(); } + break; + default: { cout << "dealBeRoCards() Error" << endl; } + } +} + + +void gameTableImpl::dealFlopCards0() { dealFlopCards0Timer->start(preDealCardsSpeed); } + +void gameTableImpl::dealFlopCards1() { + + boardCardsArray[0]->setPixmap(*flipside, TRUE); + dealFlopCards1Timer->start(dealCardsSpeed); +} + +void gameTableImpl::dealFlopCards2() { + + boardCardsArray[1]->setPixmap(*flipside, TRUE); + dealFlopCards2Timer->start(dealCardsSpeed); +} + +void gameTableImpl::dealFlopCards3() { + + boardCardsArray[2]->setPixmap(*flipside, TRUE); + dealFlopCards3Timer->start(dealCardsSpeed); +} + +void gameTableImpl::dealFlopCards4() { + + int tempBoardCardsArray[5]; + QPixmap tempCardsPixmap; + mySession->getCurrentGame()->getCurrentHand()->getBoard()->getMyCards(tempBoardCardsArray); + tempCardsPixmap.load(myAppDataPath +"gfx/cards/default/"+QString::number(tempBoardCardsArray[0], 10)+".png"); + QPixmap card(tempCardsPixmap); + + //Config? mit oder ohne Eye-Candy? + if(myConfig->readConfigInt("ShowFlipCardsAnimation")) { + //with Eye-Candy + boardCardsArray[0]->startFlipCards(guiGameSpeed, card, *flipside); + } + else { + //without Eye-Candy + boardCardsArray[0]->setPixmap(card, FALSE); + } + dealFlopCards4Timer->start(dealCardsSpeed); +} + +void gameTableImpl::dealFlopCards5() { + + int tempBoardCardsArray[5]; + QPixmap tempCardsPixmap; + mySession->getCurrentGame()->getCurrentHand()->getBoard()->getMyCards(tempBoardCardsArray); + tempCardsPixmap.load(myAppDataPath +"gfx/cards/default/"+QString::number(tempBoardCardsArray[1], 10)+".png"); + QPixmap card(tempCardsPixmap); + + //Config? mit oder ohne Eye-Candy? + if(myConfig->readConfigInt("ShowFlipCardsAnimation")) { + //with Eye-Candy + boardCardsArray[1]->startFlipCards(guiGameSpeed, card, *flipside); + } + else { + //without Eye-Candy + boardCardsArray[1]->setPixmap(card, FALSE); + } + dealFlopCards5Timer->start(dealCardsSpeed); +} + +void gameTableImpl::dealFlopCards6() { + + int tempBoardCardsArray[5]; + QPixmap tempCardsPixmap; + mySession->getCurrentGame()->getCurrentHand()->getBoard()->getMyCards(tempBoardCardsArray); + tempCardsPixmap.load(myAppDataPath +"gfx/cards/default/"+QString::number(tempBoardCardsArray[2], 10)+".png"); + QPixmap card(tempCardsPixmap); + + //Config? mit oder ohne Eye-Candy? + if(myConfig->readConfigInt("ShowFlipCardsAnimation")) { + //with Eye-Candy + boardCardsArray[2]->startFlipCards(guiGameSpeed, card, *flipside); + } + else { + //without Eye-Candy + boardCardsArray[2]->setPixmap(card, FALSE); + } + + // stable + // wenn alle All In + if(mySession->getCurrentGame()->getCurrentHand()->getAllInCondition()) { dealFlopCards6Timer->start(AllInDealCardsSpeed); } + // sonst normale Variante + else { + updateMyButtonsState(0); //mode 0 == called from dealberocards + dealFlopCards6Timer->start(postDealCardsSpeed); + } +} + +void gameTableImpl::dealTurnCards0() { dealTurnCards0Timer->start(preDealCardsSpeed); } + +void gameTableImpl::dealTurnCards1() { + + boardCardsArray[3]->setPixmap(*flipside, TRUE); + dealTurnCards1Timer->start(dealCardsSpeed); +} + +void gameTableImpl::dealTurnCards2() { + + int tempBoardCardsArray[5]; + QPixmap tempCardsPixmap; + mySession->getCurrentGame()->getCurrentHand()->getBoard()->getMyCards(tempBoardCardsArray); + tempCardsPixmap.load(myAppDataPath +"gfx/cards/default/"+QString::number(tempBoardCardsArray[3], 10)+".png"); + QPixmap card(tempCardsPixmap); + + //Config? mit oder ohne Eye-Candy? + if(myConfig->readConfigInt("ShowFlipCardsAnimation")) { + //with Eye-Candy + boardCardsArray[3]->startFlipCards(guiGameSpeed, card, *flipside); + } + else { + //without Eye-Candy + boardCardsArray[3]->setPixmap(card, FALSE); + } + + // stable + // wenn alle All In + if(mySession->getCurrentGame()->getCurrentHand()->getAllInCondition()) { dealTurnCards2Timer->start(AllInDealCardsSpeed); + } + // sonst normale Variante + else { + updateMyButtonsState(0); //mode 0 == called from dealberocards + dealTurnCards2Timer->start(postDealCardsSpeed); + + } +} + +void gameTableImpl::dealRiverCards0() { dealRiverCards0Timer->start(preDealCardsSpeed); } + +void gameTableImpl::dealRiverCards1() { + + boardCardsArray[4]->setPixmap(*flipside, TRUE); + +// QTimer::singleShot(dealCardsSpeed, this, SLOT( dealRiverCards2() )); + dealRiverCards1Timer->start(dealCardsSpeed); +} + +void gameTableImpl::dealRiverCards2() { + + int tempBoardCardsArray[5]; + QPixmap tempCardsPixmap; + mySession->getCurrentGame()->getCurrentHand()->getBoard()->getMyCards(tempBoardCardsArray); + tempCardsPixmap.load(myAppDataPath +"gfx/cards/default/"+QString::number(tempBoardCardsArray[4], 10)+".png"); + QPixmap card(tempCardsPixmap); + + //Config? mit oder ohne Eye-Candy? + if(myConfig->readConfigInt("ShowFlipCardsAnimation")) { + //with Eye-Candy + boardCardsArray[4]->startFlipCards(guiGameSpeed, card, *flipside); + } + else { + //without Eye-Candy + boardCardsArray[4]->setPixmap(card, FALSE); + } + + // stable + // wenn alle All In + if(mySession->getCurrentGame()->getCurrentHand()->getAllInCondition()) { dealRiverCards2Timer->start(AllInDealCardsSpeed); } + // sonst normale Variante + else { + updateMyButtonsState(0); //mode 0 == called from dealberocards + dealRiverCards2Timer->start(postDealCardsSpeed); + } +} + +void gameTableImpl::provideMyActions(int mode) { + + QString pushButtonFoldString; + QString pushButtonBetRaiseString; + QString lastPushButtonBetRaiseString = pushButton_BetRaise->text(); + QString pushButtonCallCheckString; + QString lastPushButtonCallCheckString = pushButton_CallCheck->text(); + + + Game *currentGame = mySession->getCurrentGame(); + HandInterface *currentHand = currentGame->getCurrentHand(); + +// cout << "provideMyActions get myAction" << currentHand->getSeatsList()->front()->getMyAction() << endl; +// cout << "provideMyActions get mySet" << currentGame->getSeatsList()->front()->getMySet() << endl; +// cout << "provideMyActions get HighestSet" << currentHand->getCurrentBeRo()->getHighestSet() << endl; + + //really disabled buttons if human player is fold/all-in or ... and not called from dealberocards + if(/*pushButton_BetRaise->isCheckable() && */mode != 0 && (currentHand->getSeatsList()->front()->getMyAction() == PLAYER_ACTION_ALLIN || currentHand->getSeatsList()->front()->getMyAction() == PLAYER_ACTION_FOLD || (currentGame->getSeatsList()->front()->getMySet() == currentHand->getCurrentBeRo()->getHighestSet() && (currentGame->getSeatsList()->front()->getMyAction() != PLAYER_ACTION_NONE)))) { + + pushButton_BetRaise->setText(""); + pushButton_CallCheck->setText(""); + pushButton_Fold->setText(""); + + pushButton_AllIn->setDisabled(TRUE); + horizontalSlider_bet->setDisabled(TRUE); + lineEdit_betValue->setDisabled(TRUE); + + myButtonsCheckable(FALSE); + } + else { + pushButton_AllIn->setEnabled(TRUE); + horizontalSlider_bet->setEnabled(TRUE); + lineEdit_betValue->setEnabled(TRUE); + + //show available actions on buttons + if(currentHand->getCurrentRound() == 0) { // preflop + + if (currentGame->getSeatsList()->front()->getMyCash()+currentGame->getSeatsList()->front()->getMySet() > currentHand->getCurrentBeRo()->getHighestSet()) { + pushButtonBetRaiseString = "Raise $"+QString::number(getMyBetAmount()); + } + + if (currentGame->getSeatsList()->front()->getMySet()== currentHand->getCurrentBeRo()->getHighestSet() && currentGame->getSeatsList()->front()->getMyButton() == 3) { pushButtonCallCheckString = "Check"; } + else { pushButtonCallCheckString = "Call $"+QString::number(getMyCallAmount()); } + + pushButtonFoldString = "Fold"; + + } + else { // flop,turn,river + + if (currentHand->getCurrentBeRo()->getHighestSet() == 0 && pushButton_Fold->isCheckable() ) { + pushButtonFoldString = "Check / Fold"; + } + else { pushButtonFoldString = "Fold"; } + if (currentHand->getCurrentBeRo()->getHighestSet() == 0) { + + pushButtonCallCheckString = "Check"; + pushButtonBetRaiseString = "Bet $"+QString::number(getMyBetAmount()); + } + if (currentHand->getCurrentBeRo()->getHighestSet() > 0 && currentHand->getCurrentBeRo()->getHighestSet() > currentGame->getSeatsList()->front()->getMySet()) { + pushButtonCallCheckString = "Call $"+QString::number(getMyCallAmount()); + if (currentGame->getSeatsList()->front()->getMyCash()+currentGame->getSeatsList()->front()->getMySet() > currentHand->getCurrentBeRo()->getHighestSet()) { + pushButtonBetRaiseString = "Raise $"+QString::number(getMyBetAmount()); + } + } + } + + if(mode == 0) { + if( currentHand->getSeatsList()->front()->getMyAction() != PLAYER_ACTION_FOLD ) { + pushButtonBetRaiseString = "Bet $"+QString::number(getMyBetAmount()); + pushButtonCallCheckString = "Check"; + if( currentGame->getActivePlayerList()->size() > 2 && currentGame->getSeatsList()->front()->getMyButton() == BUTTON_SMALL_BLIND || ( currentGame->getActivePlayerList()->size() <= 2 && currentGame->getSeatsList()->front()->getMyButton() == BUTTON_BIG_BLIND)) { pushButtonFoldString = "Fold"; } + else { pushButtonFoldString = "Check / Fold"; } + } + else { + pushButtonBetRaiseString = ""; + pushButtonCallCheckString = ""; + pushButtonFoldString = ""; + pushButton_AllIn->setDisabled(TRUE); + horizontalSlider_bet->setDisabled(TRUE); + lineEdit_betValue->setDisabled(TRUE); + + myButtonsCheckable(FALSE); + } + } + + //if text changed on checked button --> uncheck to prevent unwanted actions + if((pushButtonCallCheckString != lastPushButtonCallCheckString && pushButton_CallCheck->isChecked())) { + +// cout << "jo" << endl; + uncheckMyButtons(); + resetMyButtonsCheckStateMemory(); + } + + if(pushButtonBetRaiseString == "") { + + pushButton_AllIn->setDisabled(TRUE); + horizontalSlider_bet->setDisabled(TRUE); + lineEdit_betValue->setDisabled(TRUE); + } + + pushButton_Fold->setText(pushButtonFoldString); + pushButton_BetRaise->setText(pushButtonBetRaiseString); + pushButton_CallCheck->setText(pushButtonCallCheckString); + pushButton_AllIn->setText("All-In"); + +// myBetRaise(); + if(pushButton_BetRaise->text().startsWith("Raise")) { + + horizontalSlider_bet->setMinimum(currentHand->getCurrentBeRo()->getHighestSet() - currentHand->getSeatsList()->front()->getMySet() + currentHand->getCurrentBeRo()->getMinimumRaise()); + horizontalSlider_bet->setMaximum(currentHand->getSeatsList()->front()->getMyCash()); + horizontalSlider_bet->setSingleStep(10); + + myActionIsRaise = 1; + } + else if(pushButton_BetRaise->text().startsWith("Bet")) { + + horizontalSlider_bet->setMinimum(currentHand->getSmallBlind()*2); + horizontalSlider_bet->setMaximum(currentHand->getSeatsList()->front()->getMyCash()); + horizontalSlider_bet->setSingleStep(10); + + myActionIsBet = 1; + } + else {} + + + //if value changed on bet/raise button --> uncheck to prevent unwanted actions + QString lastBetValueString = lastPushButtonBetRaiseString.section(" ",1 ,1); + int index = lastBetValueString.indexOf("$"); + lastBetValueString.remove(index,1); + bool ok; + int lastBetValue = lastBetValueString.toInt(&ok,10); + + if(lastBetValue < horizontalSlider_bet->minimum() && pushButton_BetRaise->isChecked()) { + + uncheckMyButtons(); + resetMyButtonsCheckStateMemory(); + } + + if((mySession->getGameType() == Session::GAME_TYPE_INTERNET || mySession->getGameType() == Session::GAME_TYPE_NETWORK) && !lineEdit_ChatInput->hasFocus() && myConfig->readConfigInt("EnableBetInputFocusSwitch")) { + lineEdit_betValue->setFocus(); + lineEdit_betValue->selectAll(); + } + + if(mySession->getGameType() == Session::GAME_TYPE_LOCAL) { + lineEdit_betValue->setFocus(); + lineEdit_betValue->selectAll(); + } + + } +} + +void gameTableImpl::meInAction() { + + myButtonsCheckable(FALSE); + + horizontalSlider_bet->setEnabled(TRUE); + lineEdit_betValue->setEnabled(TRUE); + + if((mySession->getGameType() == Session::GAME_TYPE_INTERNET || mySession->getGameType() == Session::GAME_TYPE_NETWORK) && lineEdit_ChatInput->text() == "" && myConfig->readConfigInt("EnableBetInputFocusSwitch")) { + lineEdit_betValue->setFocus(); + lineEdit_betValue->selectAll(); + } + + myActionIsRaise = 0; + myActionIsBet = 0; + + if(myConfig->readConfigInt("ShowStatusbarMessages")) { + if ( myConfig->readConfigInt("AlternateFKeysUserActionMode") == 0 ) { + statusBar()->showMessage(tr("F1 - Fold | F2 - Check/Call | F3 - Bet/Raise | F4 - All-In"), 15000); + } else { + statusBar()->showMessage(tr("F1 - All-In | F2 - Bet/Raise | F3 - Check/Call | F4 - Fold"), 15000); + } + } + + QString lastPushButtonFoldString = pushButton_Fold->text(); + + //paint actions on buttons + provideMyActions(); + + //do remembered action + if( pushButtonBetRaiseIsChecked ) { pushButton_BetRaise->click(); pushButtonBetRaiseIsChecked = FALSE;} + if( pushButtonCallCheckIsChecked ) { pushButton_CallCheck->click(); pushButtonCallCheckIsChecked = FALSE;} + if( pushButtonFoldIsChecked ) { + if(lastPushButtonFoldString == "Check / Fold" && pushButton_CallCheck->text() == "Check") { + pushButton_CallCheck->click(); + } + else { + pushButton_Fold->click(); + } + pushButtonFoldIsChecked = FALSE; + } + if( pushButtonAllInIsChecked ) { pushButton_AllIn->click(); pushButtonAllInIsChecked = FALSE;} + + //automatic mode + switch (playingMode) { + case 0: // Manual mode + break; + case 1: // Auto check / call all + myCallCheck(); + break; + case 2: // Auto check / fold all + if (pushButton_CallCheck->text() == "Check") { + myCheck(); + } else { + myFold(); + } + break; + } +} + +void gameTableImpl::startTimeoutAnimation(int playerId, int timeoutSec) { + assert(playerId >= 0 && playerId < mySession->getCurrentGame()->getStartQuantityPlayers()); + + //beep for player 0 + if(playerId) { setLabelArray[playerId]->startTimeOutAnimation(timeoutSec, FALSE); } + else { setLabelArray[playerId]->startTimeOutAnimation(timeoutSec, TRUE); } +} + +void gameTableImpl::stopTimeoutAnimation(int playerId) { + assert(playerId >= 0 && playerId < mySession->getCurrentGame()->getStartQuantityPlayers()); + setLabelArray[playerId]->stopTimeOutAnimation(); +} + +void gameTableImpl::disableMyButtons() { + + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + + clearMyButtons(); + + //clear userWidgets + pushButton_AllIn->setDisabled(TRUE); + horizontalSlider_bet->setDisabled(TRUE); + lineEdit_betValue->setDisabled(TRUE); + horizontalSlider_bet->setMinimum(0); + horizontalSlider_bet->setMaximum(currentHand->getSeatsList()->front()->getMyCash()); + lineEdit_betValue->clear(); + horizontalSlider_bet->setValue(0); + +#ifdef _WIN32 + QString humanPlayerButtonFontSize = "13"; +#else + QString humanPlayerButtonFontSize = "12"; +#endif +} + +void gameTableImpl::myCallCheck() { + + if(pushButton_CallCheck->text().startsWith("Call")) { myCall(); } + if(pushButton_CallCheck->text() == "Check") { myCheck(); } +} + +void gameTableImpl::myFold(){ + + if(pushButton_Fold->text() == "Fold") { + + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + currentHand->getSeatsList()->front()->setMyAction(1); + currentHand->getSeatsList()->front()->setMyTurn(0); + + //set that i was the last active player. need this for unhighlighting groupbox + currentHand->setLastPlayersTurn(0); + + statusBar()->clearMessage(); + + //Spiel läuft weiter + myActionDone(); + } +} + +void gameTableImpl::myCheck() { + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + + currentHand->getSeatsList()->front()->setMyTurn(0); + currentHand->getSeatsList()->front()->setMyAction(2); + + //set that i was the last active player. need this for unhighlighting groupbox + currentHand->setLastPlayersTurn(0); + + statusBar()->clearMessage(); + + //Spiel läuft weiter + myActionDone(); +} + +int gameTableImpl::getMyCallAmount() { + int tempHighestSet = 0; + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + + tempHighestSet = currentHand->getCurrentBeRo()->getHighestSet(); + + if (currentHand->getSeatsList()->front()->getMyCash()+currentHand->getSeatsList()->front()->getMySet() <= tempHighestSet) { + + return currentHand->getSeatsList()->front()->getMyCash(); + } + else { + return tempHighestSet - currentHand->getSeatsList()->front()->getMySet(); + } +} + +int gameTableImpl::getBetRaisePushButtonValue() { + + QString betValueString = pushButton_BetRaise->text().section(" ",1 ,1); + int index = betValueString.indexOf("$"); + betValueString.remove(index,1); + bool ok; + int betValue = betValueString.toInt(&ok,10); + + return betValue; +} + +int gameTableImpl::getMyBetAmount() { + + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + + int betValue = getBetRaisePushButtonValue(); + int minimum; + + minimum = currentHand->getCurrentBeRo()->getHighestSet() - currentHand->getSeatsList()->front()->getMySet() + currentHand->getCurrentBeRo()->getMinimumRaise(); + + if(betValue < minimum) { + return minimum; + } + else { + return betValue; + } +} + +void gameTableImpl::myCall(){ + + int tempHighestSet = 0; + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + + tempHighestSet = currentHand->getCurrentBeRo()->getHighestSet(); + + if (currentHand->getSeatsList()->front()->getMyCash()+currentHand->getSeatsList()->front()->getMySet() <= tempHighestSet) { + + currentHand->getSeatsList()->front()->setMySet(currentHand->getSeatsList()->front()->getMyCash()); + currentHand->getSeatsList()->front()->setMyCash(0); + currentHand->getSeatsList()->front()->setMyAction(6); + } + else { + currentHand->getSeatsList()->front()->setMySet(tempHighestSet - currentHand->getSeatsList()->front()->getMySet()); + currentHand->getSeatsList()->front()->setMyAction(3); + } + currentHand->getSeatsList()->front()->setMyTurn(0); + + currentHand->getBoard()->collectSets(); + refreshPot(); + + //set that i was the last active player. need this for unhighlighting groupbox + currentHand->setLastPlayersTurn(0); + + statusBar()->clearMessage(); + + //Spiel läuft weiter + myActionDone(); +} + +void gameTableImpl::mySet(){ + + if(pushButton_BetRaise->text() != "") { + + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + int tempCash = currentHand->getSeatsList()->front()->getMyCash(); + +// cout << "Set-Value " << getBetRaisePushButtonValue() << endl; + currentHand->getSeatsList()->front()->setMySet(getBetRaisePushButtonValue()); + + if (getBetRaisePushButtonValue() >= tempCash ) { + + currentHand->getSeatsList()->front()->setMySet(currentHand->getSeatsList()->front()->getMyCash()); + currentHand->getSeatsList()->front()->setMyCash(0); + currentHand->getSeatsList()->front()->setMyAction(6); + } + + if(myActionIsRaise) { + //do not if allIn + if(currentHand->getSeatsList()->front()->getMyAction() != 6) { + currentHand->getSeatsList()->front()->setMyAction(5); + } + myActionIsRaise = 0; + + currentHand->getCurrentBeRo()->setMinimumRaise(currentHand->getSeatsList()->front()->getMySet() - currentHand->getCurrentBeRo()->getHighestSet()); + } + + if(myActionIsBet) { + //do not if allIn + if(currentHand->getSeatsList()->front()->getMyAction() != 6) { + currentHand->getSeatsList()->front()->setMyAction(4); + } + myActionIsBet = 0; + + currentHand->getCurrentBeRo()->setMinimumRaise(currentHand->getSeatsList()->front()->getMySet()); + } + + currentHand->getCurrentBeRo()->setHighestSet(currentHand->getSeatsList()->front()->getMySet()); + + currentHand->getSeatsList()->front()->setMyTurn(0); + + currentHand->getBoard()->collectSets(); + refreshPot(); + + statusBar()->clearMessage(); + + //set that i was the last active player. need this for unhighlighting groupbox + currentHand->setLastPlayersTurn(0); + + //Spiel läuft weiter + myActionDone(); + } +} + +void gameTableImpl::myAllIn(){ + + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + + currentHand->getSeatsList()->front()->setMySet(currentHand->getSeatsList()->front()->getMyCash()); + currentHand->getSeatsList()->front()->setMyCash(0); + currentHand->getSeatsList()->front()->setMyAction(6); + + if(currentHand->getSeatsList()->front()->getMySet() > currentHand->getCurrentBeRo()->getHighestSet()) { + currentHand->getCurrentBeRo()->setMinimumRaise(currentHand->getSeatsList()->front()->getMySet() - currentHand->getCurrentBeRo()->getHighestSet()); + + currentHand->getCurrentBeRo()->setHighestSet(currentHand->getSeatsList()->front()->getMySet()); + + } + + currentHand->getSeatsList()->front()->setMyTurn(0); + + currentHand->getBoard()->collectSets(); + refreshPot(); + + statusBar()->clearMessage(); + + //set that i was the last active player. need this for unhighlighting groupbox + currentHand->setLastPlayersTurn(0); + + //Spiel läuft weiter + myActionDone(); +} + + +void gameTableImpl::pushButtonBetRaiseClicked(bool checked) { + + if (pushButton_BetRaise->isCheckable()) { + if(checked) { + pushButton_CallCheck->setChecked(FALSE); + pushButton_Fold->setChecked(FALSE); + pushButton_AllIn->setChecked(FALSE); + + pushButtonCallCheckIsChecked = FALSE; + pushButtonFoldIsChecked = FALSE; + pushButtonAllInIsChecked = FALSE; + + pushButtonBetRaiseIsChecked = TRUE; + + if(!radioButton_manualAction->isChecked()) + radioButton_manualAction->click(); + +// myLastPreActionBetValue = lineEdit_betValue->value(); + + } + else { + pushButtonBetRaiseIsChecked = FALSE; + myLastPreActionBetValue = 0; + } + } + else { + mySet(); + } +} + +void gameTableImpl::pushButtonCallCheckClicked(bool checked) { + + if (pushButton_CallCheck->isCheckable()) { + if(checked) { + pushButton_Fold->setChecked(FALSE); + pushButton_BetRaise->setChecked(FALSE); + pushButton_AllIn->setChecked(FALSE); + + pushButtonAllInIsChecked = FALSE; + pushButtonFoldIsChecked = FALSE; + pushButtonBetRaiseIsChecked = FALSE; + + pushButtonCallCheckIsChecked = TRUE; + + if(!radioButton_manualAction->isChecked()) + radioButton_manualAction->click(); + } + else { + pushButtonCallCheckIsChecked = FALSE; + } + } + else { + myCallCheck(); + } +} + +void gameTableImpl::pushButtonFoldClicked(bool checked) { + + if (pushButton_Fold->isCheckable()) { + if(checked) { + pushButton_CallCheck->setChecked(FALSE); + pushButton_BetRaise->setChecked(FALSE); + pushButton_AllIn->setChecked(FALSE); + + pushButtonAllInIsChecked = FALSE; + pushButtonCallCheckIsChecked = FALSE; + pushButtonBetRaiseIsChecked = FALSE; + + pushButtonFoldIsChecked = TRUE; + + if(!radioButton_manualAction->isChecked()) + radioButton_manualAction->click(); + } + else { + pushButtonFoldIsChecked = FALSE; + } + } + else { + myFold(); + } +} + +void gameTableImpl::pushButtonAllInClicked(bool checked) { + + if (pushButton_AllIn->isCheckable()) { + if(checked) { + pushButton_CallCheck->setChecked(FALSE); + pushButton_BetRaise->setChecked(FALSE); + pushButton_Fold->setChecked(FALSE); + + pushButtonFoldIsChecked = FALSE; + pushButtonCallCheckIsChecked = FALSE; + pushButtonBetRaiseIsChecked = FALSE; + + pushButtonAllInIsChecked = TRUE; + + if(!radioButton_manualAction->isChecked()) + radioButton_manualAction->click(); + } + else { + pushButtonAllInIsChecked = FALSE; + } + } + else { + myAllIn(); + } +} + +void gameTableImpl::myActionDone() { + + // If a network client is running, we need + // to transfer the action to the server. + mySession->sendClientPlayerAction(); + + // TODO: Should not call in networking game. + disableMyButtons(); + + if (!mySession->isNetworkClientRunning()) + nextPlayerAnimation(); + + //prevent escape button working while allIn + myActionIsRaise = 0; + myActionIsBet = 0; +} + +void gameTableImpl::nextPlayerAnimation() { + + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + + //refresh Change Player + refreshSet(); + + PlayerListConstIterator it_c; + for(it_c=currentHand->getSeatsList()->begin(); it_c!=currentHand->getSeatsList()->end(); it_c++) { + if((*it_c)->getMyID() == currentHand->getLastPlayersTurn()) break; + } + + if(currentHand->getLastPlayersTurn() != -1) { + refreshAction(currentHand->getLastPlayersTurn(), (*it_c)->getMyAction()); + } + refreshCash(); + + //refresh actions for human player + updateMyButtonsState(); + + nextPlayerAnimationTimer->start(nextPlayerSpeed1); +} + +void gameTableImpl::beRoAnimation2(int myBeRoID) { + + switch(myBeRoID) { + + case 0: { preflopAnimation2(); } + break; + case 1: { flopAnimation2(); } + break; + case 2: { turnAnimation2(); } + break; + case 3: { riverAnimation2(); } + break; + default: { cout << "beRoAnimation2() Error" << endl; } + } +} + + +void gameTableImpl::preflopAnimation1() { preflopAnimation1Timer->start(nextPlayerSpeed2); } +void gameTableImpl::preflopAnimation1Action() { mySession->getCurrentGame()->getCurrentHand()->getCurrentBeRo()->run(); } + +void gameTableImpl::preflopAnimation2() { preflopAnimation2Timer->start(preflopNextPlayerSpeed); } +void gameTableImpl::preflopAnimation2Action() { mySession->getCurrentGame()->getCurrentHand()->getCurrentBeRo()->nextPlayer(); } + + +void gameTableImpl::flopAnimation1() { flopAnimation1Timer->start(nextPlayerSpeed2); } +void gameTableImpl::flopAnimation1Action() { mySession->getCurrentGame()->getCurrentHand()->getCurrentBeRo()->run(); } + +void gameTableImpl::flopAnimation2() { flopAnimation2Timer->start(nextPlayerSpeed3); } +void gameTableImpl::flopAnimation2Action() { mySession->getCurrentGame()->getCurrentHand()->getCurrentBeRo()->nextPlayer(); } + +void gameTableImpl::turnAnimation1() { turnAnimation1Timer->start(nextPlayerSpeed2); } +void gameTableImpl::turnAnimation1Action() { mySession->getCurrentGame()->getCurrentHand()->getCurrentBeRo()->run(); } + +void gameTableImpl::turnAnimation2() { turnAnimation2Timer->start(nextPlayerSpeed3); } +void gameTableImpl::turnAnimation2Action() { mySession->getCurrentGame()->getCurrentHand()->getCurrentBeRo()->nextPlayer(); } + +void gameTableImpl::riverAnimation1() { riverAnimation1Timer->start(nextPlayerSpeed2); } +void gameTableImpl::riverAnimation1Action() { mySession->getCurrentGame()->getCurrentHand()->getCurrentBeRo()->run(); } + +void gameTableImpl::riverAnimation2() { riverAnimation2Timer->start(nextPlayerSpeed3); } +void gameTableImpl::riverAnimation2Action() { mySession->getCurrentGame()->getCurrentHand()->getCurrentBeRo()->nextPlayer(); } + +void gameTableImpl::postRiverAnimation1() { postRiverAnimation1Timer->start(nextPlayerSpeed2); } +void gameTableImpl::postRiverAnimation1Action() { mySession->getCurrentGame()->getCurrentHand()->getCurrentBeRo()->postRiverRun(); } + +void gameTableImpl::postRiverRunAnimation1() { postRiverRunAnimation1Timer->start(postRiverRunAnimationSpeed); } + +void gameTableImpl::postRiverRunAnimation2() { + + uncheckMyButtons(); + myButtonsCheckable(FALSE); + clearMyButtons(); + resetMyButtonsCheckStateMemory(); + + pushButton_AllIn->setDisabled(TRUE); + horizontalSlider_bet->setDisabled(TRUE); + lineEdit_betValue->setDisabled(TRUE); + + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + + int nonfoldPlayersCounter = 0; + PlayerListConstIterator it_c; + for (it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { + if ((*it_c)->getMyAction() != PLAYER_ACTION_FOLD) + nonfoldPlayersCounter++; + } + + if(nonfoldPlayersCounter!=1) { + + if(!flipHolecardsAllInAlreadyDone) { + +//TODO - Turn cards like in the rules + +// postRiverRunAnimation2_flipHoleCards1Timer->start(nextPlayerSpeed2); + +// //Config? mit oder ohne Eye-Candy? + if(myConfig->readConfigInt("ShowFlipCardsAnimation")) { + // mit Eye-Candy + + //TempArrays + int tempCardsIntArray[2]; + + int j; + + for (it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { + (*it_c)->getMyCards(tempCardsIntArray); + if((*it_c)->getMyAction() != PLAYER_ACTION_FOLD) { + if((*it_c)->getMyID() || ((*it_c)->getMyID()==0 && myConfig->readConfigInt("AntiPeekMode")) ) { + for(j=0; j<2; j++) { + + holeCardsArray[(*it_c)->getMyID()][j]->startFlipCards(guiGameSpeed, QPixmap(myAppDataPath +"gfx/cards/default/"+QString::number(tempCardsIntArray[j], 10)+".png"), *flipside); + } + } + //set Player value (logging) + (*it_c)->setMyCardsFlip(1,1); + } + } + } + else { + //without Eye-Candy + + //Karten der aktiven Spieler umdrehen + QPixmap onePix(myAppDataPath +"gfx/gui/misc/1px.png"); + + //TempArrays + QPixmap tempCardsPixmapArray[2]; + int tempCardsIntArray[2]; + + int j; + for (it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { + (*it_c)->getMyCards(tempCardsIntArray); + if((*it_c)->getMyAction() != PLAYER_ACTION_FOLD) { + if((*it_c)->getMyID() || ((*it_c)->getMyID()==0 && myConfig->readConfigInt("AntiPeekMode")) ) { + for(j=0; j<2; j++) { + tempCardsPixmapArray[j].load(myAppDataPath +"gfx/cards/default/"+QString::number(tempCardsIntArray[j], 10)+".png"); + holeCardsArray[(*it_c)->getMyID()][j]->setPixmap(tempCardsPixmapArray[j], FALSE); + + } + } + //set Player value (logging) + (*it_c)->setMyCardsFlip(1,1); + } + } + } + //Wenn einmal umgedreht dann fertig!! + flipHolecardsAllInAlreadyDone = TRUE; + } + else { + int tempCardsIntArray[2]; +// int i; + for (it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { + (*it_c)->getMyCards(tempCardsIntArray); + if((*it_c)->getMyAction() != PLAYER_ACTION_FOLD) { + + //set Player value (logging) + (*it_c)->setMyCardsFlip(1,3); + } + } + } + postRiverRunAnimation2Timer->start(postRiverRunAnimationSpeed); + } + else { postRiverRunAnimation3(); } + +} + +// TODO +void gameTableImpl::postRiverRunAnimation2_flipHoleCards1() { + + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + + currentHand->getCurrentBeRo()->setPlayersTurn(currentHand->getCurrentBeRo()->getLastActionPlayer()); + + postRiverRunAnimation2_flipHoleCards2Timer->start(nextPlayerSpeed2); +} + + +void gameTableImpl::postRiverRunAnimation2_flipHoleCards2() { + +// if() { +// postRiverRunAnimation2_flipHoleCards1Timer->start(nextPlayerSpeed2); +// } +// else { +// postRiverRunAnimation2Timer->start(postRiverRunAnimationSpeed); +// } +} + + +void gameTableImpl::postRiverRunAnimation3() { + + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + //Alle Winner erhellen und "Winner" schreiben + + int nonfoldPlayerCounter = 0; + PlayerListConstIterator it_c; + + for(it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { + if((*it_c)->getMyAction() != PLAYER_ACTION_FOLD) { + nonfoldPlayerCounter++; + } + } + + + list winners = currentHand->getBoard()->getWinners(); + + + for(it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { + if((*it_c)->getMyAction() != PLAYER_ACTION_FOLD && (*it_c)->getMyCardsValueInt() == currentHand->getCurrentBeRo()->getHighestCardsValue() ) { + +// QPalette tempPalette = groupBoxArray[i]->palette(); +// tempPalette.setColor(QPalette::Window, highlight); +// groupBoxArray[i]->setPalette(tempPalette); + actionLabelArray[(*it_c)->getMyID()]->setPixmap(QPixmap(myAppDataPath +"gfx/gui/table/default/action_winner.png")); + + //show winnercards if more than one player is active TODO + if ( nonfoldPlayerCounter != 1 && myConfig->readConfigInt("ShowFadeOutCardsAnimation")) { + + int j; + int bestHandPos[5]; + (*it_c)->getMyBestHandPosition(bestHandPos); + + //index 0 testen --> Karte darf nicht im MyBestHand Position Array drin sein, es darf nicht nur ein Spieler Aktiv sein, die Config fordert die Animation + bool index0 = TRUE; + for(j=0; j<5; j++) { + if (bestHandPos[j] == 0 ) { index0 = FALSE; } + } + if (index0) { holeCardsArray[(*it_c)->getMyID()][0]->startFadeOut(guiGameSpeed); /*cout << "Fade Out index0" << endl;*/} + //index 1 testen + bool index1 = TRUE; + for(j=0; j<5; j++) { + if (bestHandPos[j] == 1 ) { index1 = FALSE; } + } + if (index1) { holeCardsArray[(*it_c)->getMyID()][1]->startFadeOut(guiGameSpeed); /*cout << "Fade Out index1" << endl;*/} + //index 2 testen + bool index2 = TRUE; + for(j=0; j<5; j++) { + if (bestHandPos[j] == 2 ) { index2 = FALSE; } + } + if (index2) { boardCardsArray[0]->startFadeOut(guiGameSpeed); /*cout << "Fade Out index2" << endl;*/} + //index 3 testen + bool index3 = TRUE; + for(j=0; j<5; j++) { + if (bestHandPos[j] == 3 ) { index3 = FALSE; } + } + if (index3) { boardCardsArray[1]->startFadeOut(guiGameSpeed); /*cout << "Fade Out index3" << endl;*/} + //index 4 testen + bool index4 = TRUE; + for(j=0; j<5; j++) { + if (bestHandPos[j] == 4 ) { index4 = FALSE; } + } + if (index4) { boardCardsArray[2]->startFadeOut(guiGameSpeed); /*cout << "Fade Out index4" << endl;*/} + //index 5 testen + bool index5 = TRUE; + for(j=0; j<5; j++) { + if (bestHandPos[j] == 5 ) { index5 = FALSE; } + } + if (index5) { boardCardsArray[3]->startFadeOut(guiGameSpeed); /*cout << "Fade Out index5" << endl;*/} + //index 6 testen + bool index6 = TRUE; + for(j=0; j<5; j++) { + if (bestHandPos[j] == 6 ) { index6 = FALSE; } + } + if (index6) { boardCardsArray[4]->startFadeOut(guiGameSpeed); /*cout << "Fade Out index6" << endl;*/} + } + //Pot-Verteilung Loggen + //Pro Spieler den Cash aus dem Player und dem Label auslesen. Player_cash - Label_cash = Gewinnsumme + int pot = (*it_c)->getLastMoneyWon(); + //Wenn River dann auch das Blatt loggen! +// if (textLabel_handLabel->text() == "River") { + + //set Player value (logging) + (*it_c)->setMyWinnerState(true, pot); + +// } +// else { +// myLog->logPlayerWinsMsg(i, pot); +// } + } + else { + + if( currentHand->getActivePlayerList()->size() != 1 && (*it_c)->getMyAction() != PLAYER_ACTION_FOLD && myConfig->readConfigInt("ShowFadeOutCardsAnimation") ) { + + //aufgedeckte Gegner auch ausblenden + holeCardsArray[(*it_c)->getMyID()][0]->startFadeOut(guiGameSpeed); + holeCardsArray[(*it_c)->getMyID()][1]->startFadeOut(guiGameSpeed); + } + } + } + + // log side pot winners -> TODO + list::iterator it_int; + for(it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { + if((*it_c)->getMyAction() != PLAYER_ACTION_FOLD && (*it_c)->getMyCardsValueInt() != currentHand->getCurrentBeRo()->getHighestCardsValue() ) { + + for(it_int = winners.begin(); it_int != winners.end(); it_int++) { + if((*it_int) == (*it_c)->getMyUniqueID()) { + int pot = (*it_c)->getLastMoneyWon(); + (*it_c)->setMyWinnerState(false, pot); + } + } + + } + } + + for(it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { + if((*it_c)->getMyCash() == 0) { + currentHand->getGuiInterface()->logPlayerSitsOut((*it_c)->getMyName()); + } + } + + textBrowser_Log->append(""); + + postRiverRunAnimation3Timer->start(postRiverRunAnimationSpeed/2); +} + +void gameTableImpl::postRiverRunAnimation4() { + + distributePotAnimCounter=0; + potDistributeTimer->start(winnerBlinkSpeed); +} + +void gameTableImpl::postRiverRunAnimation5() { + + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + + PlayerListConstIterator it_c; + + if (distributePotAnimCounter<10) { + + if (distributePotAnimCounter==0 || distributePotAnimCounter==2 || distributePotAnimCounter==4 || distributePotAnimCounter==6 || distributePotAnimCounter==8) { + + label_Pot->setText(""); + + for(it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { + if((*it_c)->getMyAction() != PLAYER_ACTION_FOLD && (*it_c)->getMyCardsValueInt() == currentHand->getCurrentBeRo()->getHighestCardsValue() ) { + + cashTopLabelArray[(*it_c)->getMyID()]->setText(""); + } + } + } + else { + label_Pot->setText("Pot"); + + for(it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { + if((*it_c)->getMyAction() != PLAYER_ACTION_FOLD && (*it_c)->getMyCardsValueInt() == currentHand->getCurrentBeRo()->getHighestCardsValue() ) { + + cashTopLabelArray[(*it_c)->getMyID()]->setText("Cash:"); + } + } + } + + distributePotAnimCounter++; + } + else { + potDistributeTimer->stop(); + postRiverRunAnimation5Timer->start(gameSpeed); + } +} + +void gameTableImpl::postRiverRunAnimation6() { + +// int i; + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + + refreshCash(); + refreshPot(); + + // TODO HACK + // Check for network client, do not start new hand if client is running. + if (mySession->isNetworkClientRunning()) + return; + + // wenn nur noch ein Spieler aktive "neues Spiel"-Dialog anzeigen + int playersPositiveCashCounter = 0; + + PlayerListConstIterator it_c; + for (it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { + + if ((*it_c)->getMyCash() > 0) playersPositiveCashCounter++; + } + + if (playersPositiveCashCounter==1) { + + for (it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { + + if ((*it_c)->getMyCash() > 0) { + currentHand->getGuiInterface()->logPlayerWinGame((*it_c)->getMyName(), mySession->getCurrentGame()->getMyGameID()); + } + } + + if( !DEBUG_MODE ) { + + if(mySession->getGameType() == Session::GAME_TYPE_LOCAL) { + currentGameOver = TRUE; + pushButton_break->setDisabled(FALSE); + QFontMetrics tempMetrics = this->fontMetrics(); + int width = tempMetrics.width(tr("Start")); + pushButton_break->setMinimumSize(width+10,20); + pushButton_break->setText(tr("Start")); + blinkingStartButtonAnimationTimer->start(500); + } + } + else { + callNewGameDialog(); + //Bei Cancel nichts machen!!! + } + return; + } + + postRiverRunAnimation6Timer->start(newRoundSpeed); +} + +void gameTableImpl::flipHolecardsAllIn() { + + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + + if(!flipHolecardsAllInAlreadyDone) { + //Aktive Spieler zählen --> wenn nur noch einer nicht-folded dann keine Karten umdrehen + int nonfoldPlayersCounter = 0; + PlayerListConstIterator it_c; + for (it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { + if ((*it_c)->getMyAction() != PLAYER_ACTION_FOLD) nonfoldPlayersCounter++; + } + + if(nonfoldPlayersCounter!=1) { + + //Config? mit oder ohne Eye-Candy? + if(myConfig->readConfigInt("ShowFlipCardsAnimation")) { + // mit Eye-Candy + + //TempArrays + int tempCardsIntArray[2]; + + int j; + + for (it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { + (*it_c)->getMyCards(tempCardsIntArray); + if((*it_c)->getMyAction() != PLAYER_ACTION_FOLD) { + if((*it_c)->getMyID() || ((*it_c)->getMyID()==0 && myConfig->readConfigInt("AntiPeekMode")) ) { + for(j=0; j<2; j++) { + holeCardsArray[(*it_c)->getMyID()][j]->startFlipCards(guiGameSpeed, QPixmap(myAppDataPath +"gfx/cards/default/"+QString::number(tempCardsIntArray[j], 10)+".png"), *flipside); + } + } + //set Player value (logging) + (*it_c)->setMyCardsFlip(1,2); + + } + } + } + else { + //without Eye-Candy + + //Karten der aktiven Spieler umdrehen + QPixmap onePix(myAppDataPath +"gfx/gui/misc/1px.png"); + + //TempArrays + QPixmap tempCardsPixmapArray[2]; + int temp2CardsIntArray[2]; + + int j; + for (it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { + (*it_c)->getMyCards(temp2CardsIntArray); + if((*it_c)->getMyAction() != PLAYER_ACTION_FOLD) { + if((*it_c)->getMyID() || ((*it_c)->getMyID()==0 && myConfig->readConfigInt("AntiPeekMode")) ) { + for(j=0; j<2; j++) { + + tempCardsPixmapArray[j].load(myAppDataPath +"gfx/cards/default/"+QString::number(temp2CardsIntArray[j], 10)+".png"); + holeCardsArray[(*it_c)->getMyID()][j]->setPixmap(tempCardsPixmapArray[j], FALSE); + } + } + //set Player value (logging) + (*it_c)->setMyCardsFlip(1,2); + } + } + } + } + } + + //Wenn einmal umgedreht dann fertig!! + flipHolecardsAllInAlreadyDone = TRUE; +} + +void gameTableImpl::showMyCards() { + + //TempArrays + int tempCardsIntArray[2]; + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + + currentHand->getSeatsList()->front()->getMyCards(tempCardsIntArray); + if( currentHand->getSeatsList()->front()->getMyCardsFlip() == 0 && currentHand->getCurrentRound() == 4 && currentHand->getSeatsList()->front()->getMyActiveStatus() && currentHand->getSeatsList()->front()->getMyAction() != PLAYER_ACTION_FOLD) { + + //set Player value (logging) + currentHand->getSeatsList()->front()->setMyCardsFlip(1,1); + } +} + + +void gameTableImpl::startNewHand() { + + if( !breakAfterCurrentHand){ + mySession->getCurrentGame()->initHand(); + mySession->getCurrentGame()->startHand(); + } + else { + + if(mySession->getGameType() == Session::GAME_TYPE_LOCAL) { + pushButton_break->setDisabled(FALSE); + + QFontMetrics tempMetrics = this->fontMetrics(); + int width = tempMetrics.width(tr("Start")); + pushButton_break->setMinimumSize(width+10,20); + + pushButton_break->setText(tr("Start")); + breakAfterCurrentHand=FALSE; + + blinkingStartButtonAnimationTimer->start(500); + } + } +} + +void gameTableImpl::handSwitchRounds() { mySession->getCurrentGame()->getCurrentHand()->switchRounds(); +} + +void gameTableImpl::nextRoundCleanGui() { + + int i,j; + + // GUI bereinigen - Bilder löschen, Animationen unterbrechen + QPixmap onePix(myAppDataPath +"gfx/gui/misc/1px.png"); + for (i=0; i<5; i++ ) { + boardCardsArray[i]->setPixmap(onePix, FALSE); + boardCardsArray[i]->setFadeOutAction(FALSE); + boardCardsArray[i]->stopFlipCardsAnimation(); + setLabelArray[i]->stopTimeOutAnimation(); + + } + for (i=0; isetFadeOutAction(FALSE);} + } + + // for startNewGame during human player is active + if(mySession->getCurrentGame()->getCurrentHand()->getSeatsList()->front()->getMyActiveStatus() == 1) { + disableMyButtons(); + } + + textLabel_handLabel->setText(""); + + refreshAll(); + + flipHolecardsAllInAlreadyDone = FALSE; + + //Wenn Pause zwischen den Hands in der Konfiguration steht den Stop Button drücken! + if (myConfig->readConfigInt("PauseBetweenHands") && blinkingStartButtonAnimationTimer->isActive() == FALSE && mySession->getGameType() == Session::GAME_TYPE_LOCAL) { + pushButton_break->click(); + } + else { + //FIX STRG+N Bug + pushButton_break->setEnabled(TRUE); + breakAfterCurrentHand=FALSE; + } + + //Clean breakbutton + if(mySession->getGameType() == Session::GAME_TYPE_LOCAL) { + blinkingStartButtonAnimationTimer->stop(); + pushButton_break->setStyleSheet("QPushButton { background-color: #145300; color: #99D500;}"); + blinkingStartButtonAnimationTimer->stop(); + QFontMetrics tempMetrics = this->fontMetrics(); + int width = tempMetrics.width(tr("Stop")); + pushButton_break->setMinimumSize(width+10,20); + pushButton_break->setText(tr("Stop")); + } + //Clear Statusbarmessage + statusBar()->clearMessage(); + + //fix press mouse button during bankrupt with anti-peek-mode + this->mouseOverFlipCards(FALSE); + + pushButton_AllIn->setDisabled(TRUE); + horizontalSlider_bet->setDisabled(TRUE); + lineEdit_betValue->setDisabled(TRUE); + + uncheckMyButtons(); + myButtonsCheckable(FALSE); + resetMyButtonsCheckStateMemory(); + clearMyButtons(); +} + +void gameTableImpl::stopTimer() { + + dealFlopCards0Timer->stop(); + dealFlopCards1Timer->stop(); + dealFlopCards2Timer->stop(); + dealFlopCards3Timer->stop(); + dealFlopCards4Timer->stop(); + dealFlopCards5Timer->stop(); + dealFlopCards6Timer->stop(); + dealTurnCards0Timer->stop(); + dealTurnCards1Timer->stop(); + dealTurnCards2Timer->stop(); + dealRiverCards0Timer->stop(); + dealRiverCards1Timer->stop(); + dealRiverCards2Timer->stop(); + + nextPlayerAnimationTimer->stop(); + preflopAnimation1Timer->stop(); + preflopAnimation2Timer->stop(); + flopAnimation1Timer->stop(); + flopAnimation2Timer->stop(); + turnAnimation1Timer->stop(); + turnAnimation2Timer->stop(); + riverAnimation1Timer->stop(); + riverAnimation2Timer->stop(); + + postRiverAnimation1Timer->stop(); + postRiverRunAnimation1Timer->stop(); + postRiverRunAnimation2Timer->stop(); + postRiverRunAnimation3Timer->stop(); + postRiverRunAnimation5Timer->stop(); + postRiverRunAnimation6Timer->stop(); + potDistributeTimer->stop(); +} + +void gameTableImpl::setSpeeds() { + + gameSpeed = (11-guiGameSpeed)*10; + dealCardsSpeed = (gameSpeed/2)*10; //milliseconds + preDealCardsSpeed = dealCardsSpeed*2; //Zeit for Karten aufdecken auf dem Board (Flop, Turn, River) + postDealCardsSpeed = dealCardsSpeed*3; //Zeit nach Karten aufdecken auf dem Board (Flop, Turn, River) + AllInDealCardsSpeed = dealCardsSpeed*4; //Zeit nach Karten aufdecken auf dem Board (Flop, Turn, River) bei AllIn + postRiverRunAnimationSpeed = gameSpeed*18; + winnerBlinkSpeed = gameSpeed*3; //milliseconds + newRoundSpeed = gameSpeed*35; + nextPlayerSpeed1 = gameSpeed*10; // Zeit zwischen dem Setzen des Spielers und dem Verdunkeln + nextPlayerSpeed2 = gameSpeed*4; // Zeit zwischen Verdunkeln des einen und aufhellen des anderen Spielers + nextPlayerSpeed3 = gameSpeed*7; // Zeit bis zwischen Aufhellen und Aktion + preflopNextPlayerSpeed = gameSpeed*10; // Zeit bis zwischen Aufhellen und Aktion im Preflop (etwas langsamer da nicht gerechnet wird. ) +} + +void gameTableImpl::breakButtonClicked() { + + if (pushButton_break->text() == tr("Stop")) { + pushButton_break->setDisabled(TRUE); + breakAfterCurrentHand=TRUE; + } + else if (pushButton_break->text() == tr("Lobby")) { + leaveCurrentNetworkGame(); + } + else if (pushButton_break->text() == tr("Start")) { + + blinkingStartButtonAnimationTimer->stop(); + //Set default Color + pushButton_break->setStyleSheet("QPushButton { background-color: #145300; color: #99D500;}"); + QFontMetrics tempMetrics = this->fontMetrics(); + int width = tempMetrics.width(tr("Stop")); + pushButton_break->setMinimumSize(width+10,20); + + pushButton_break->setText(tr("Stop")); + + if(currentGameOver) { + currentGameOver = FALSE; + callNewGameDialog(); + //Bei Cancel nichts machen!!! + } + else { + startNewHand(); + } + } +} + +void gameTableImpl::paintStartSplash() { + + StartSplash *mySplash = new StartSplash(this, myConfig); + +#ifdef __APPLE__ + int offset = 305; +#else + int offset = 237; +#endif + mySplash->setGeometry(this->pos().x()+offset,this->pos().y()+210,400,250); +// mySplash->setWindowFlags(Qt::SplashScreen); + mySplash->show(); +} + + +void gameTableImpl::networkError(int errorID, int /*osErrorID*/) { + + hideTimeoutDialog(); + switch (errorID) { + case ERR_SOCK_SERVERADDR_NOT_SET: + {QMessageBox::warning(this, tr("Network Error"), + tr("Server address was not set."), + QMessageBox::Close); } + break; + case ERR_SOCK_INVALID_PORT: + { QMessageBox::warning(this, tr("Network Error"), + tr("An invalid port was set (ports 0-1023 are not allowed)."), + QMessageBox::Close); } + break; + case ERR_SOCK_CREATION_FAILED: + { QMessageBox::warning(this, tr("Network Error"), + tr("Could not create a socket for TCP communication."), + QMessageBox::Close); } + break; + case ERR_SOCK_SET_ADDR_FAILED: + { QMessageBox::warning(this, tr("Network Error"), + tr("Could not set the IP address."), + QMessageBox::Close); } + break; + case ERR_SOCK_SET_PORT_FAILED: + { QMessageBox::warning(this, tr("Network Error"), + tr("Could not set the port for this type of address."), + QMessageBox::Close); } + break; + case ERR_SOCK_RESOLVE_FAILED: + { QMessageBox::warning(this, tr("Network Error"), + tr("The server name could not be resolved."), + QMessageBox::Close); } + break; + case ERR_SOCK_BIND_FAILED: + { QMessageBox::warning(this, tr("Network Error"), + tr("Bind failed - please choose a different port."), + QMessageBox::Close); } + break; + case ERR_SOCK_LISTEN_FAILED: + { QMessageBox::warning(this, tr("Network Error"), + tr("Internal network error: \"listen\" failed."), + QMessageBox::Close); } + break; + case ERR_SOCK_ACCEPT_FAILED: + { QMessageBox::warning(this, tr("Network Error"), + tr("Server execution was terminated."), + QMessageBox::Close); } + break; + case ERR_SOCK_CONNECT_FAILED: + { QMessageBox::warning(this, tr("Network Error"), + tr("Could not connect to the server."), + QMessageBox::Close); } + break; + case ERR_SOCK_CONNECT_TIMEOUT: + { QMessageBox::warning(this, tr("Network Error"), + tr("Connection timed out.\nPlease check the server address.\n\nIf the server is behind a NAT-Router, make sure port forwarding has been set up on server side."), + QMessageBox::Close); } + break; + case ERR_SOCK_SELECT_FAILED: + { QMessageBox::warning(this, tr("Network Error"), + tr("Internal network error: \"select\" failed."), + QMessageBox::Close); } + break; + case ERR_SOCK_SEND_FAILED: + { QMessageBox::warning(this, tr("Network Error"), + tr("Internal network error: \"send\" failed."), + QMessageBox::Close); } + break; + case ERR_SOCK_RECV_FAILED: // Sometimes windows reports recv failed on close. + case ERR_SOCK_CONN_RESET: + { QMessageBox::warning(this, tr("Network Error"), + tr("Connection was closed by the server."), + QMessageBox::Close); } + break; + case ERR_SOCK_CONN_EXISTS: + { QMessageBox::warning(this, tr("Network Error"), + tr("Internal network error: Duplicate TCP connection."), + QMessageBox::Close); } + break; + case ERR_SOCK_INVALID_PACKET: + { QMessageBox::warning(this, tr("Network Error"), + tr("An invalid network packet was received.\nPlease make sure that all players use the same version of PokerTH."), + QMessageBox::Close); } + break; + case ERR_SOCK_INVALID_STATE: + { QMessageBox::warning(this, tr("Network Error"), + tr("Internal state error.\nPlease make sure that all players use the same version of PokerTH."), + QMessageBox::Close); } + break; + case ERR_NET_VERSION_NOT_SUPPORTED: + { QMessageBox msgBox(QMessageBox::Warning, tr("Network Error"), + tr("The PokerTH server does not support this version of the game.
Please go to http://www.pokerth.net and download the latest version."), + QMessageBox::Close, this); + msgBox.setTextFormat(Qt::RichText); + msgBox.exec(); + } + break; + case ERR_NET_SERVER_FULL: + { QMessageBox::warning(this, tr("Network Error"), + tr("Sorry, this server is already full."), + QMessageBox::Close); } + break; + case ERR_NET_INVALID_PASSWORD: + { QMessageBox::warning(this, tr("Network Error"), + tr("Invalid password when joining the game.\nPlease reenter the password and try again."), + QMessageBox::Close); } + break; + case ERR_NET_INVALID_PASSWORD_STR: + { QMessageBox::warning(this, tr("Network Error"), + tr("The password is too long. Please choose another one."), + QMessageBox::Close); } + break; + case ERR_NET_PLAYER_NAME_IN_USE: + { myChangeHumanPlayerNameDialog->label_Message->setText(tr("Your player name is already used by another player.\nPlease choose a different name.")); + myChangeHumanPlayerNameDialog->exec(); } + break; + case ERR_NET_INVALID_PLAYER_NAME: + { myChangeHumanPlayerNameDialog->label_Message->setText(tr("The player name is too short, too long or invalid. Please choose another one.")); + myChangeHumanPlayerNameDialog->exec(); } + break; + case ERR_NET_INVALID_GAME_NAME: + { QMessageBox::warning(this, tr("Network Error"), + tr("The game name is either too short or too long. Please choose another one."), + QMessageBox::Close); } + break; + case ERR_NET_UNKNOWN_GAME: + { QMessageBox::warning(this, tr("Network Error"), + tr("The game could not be found."), + QMessageBox::Close); } + break; + case ERR_NET_INVALID_CHAT_TEXT: + { QMessageBox::warning(this, tr("Network Error"), + tr("The chat text is invalid."), + QMessageBox::Close); } + break; + case ERR_NET_UNKNOWN_PLAYER_ID: + { QMessageBox::warning(this, tr("Network Error"), + tr("The server referred to an unknown player. Aborting."), + QMessageBox::Close); } + break; + case ERR_NET_NO_CURRENT_PLAYER: + { QMessageBox::warning(this, tr("Network Error"), + tr("Internal error: The current player could not be found."), + QMessageBox::Close); } + break; + case ERR_NET_PLAYER_NOT_ACTIVE: + { QMessageBox::warning(this, tr("Network Error"), + tr("Internal error: The current player is not active."), + QMessageBox::Close); } + break; + case ERR_NET_PLAYER_KICKED: + { mySession->terminateNetworkClient(); + QMessageBox::warning(this, tr("Network Error"), + tr("You were kicked from the server."), + QMessageBox::Close); } + break; + case ERR_NET_PLAYER_BANNED: + { mySession->terminateNetworkClient(); + QMessageBox::warning(this, tr("Network Error"), + tr("You were temporarily banned from the server."), + QMessageBox::Close); } + break; + case ERR_NET_SESSION_TIMED_OUT: + { mySession->terminateNetworkClient(); + QMessageBox::warning(this, tr("Network Error"), + tr("Your server connection timed out due to inactivity. You are very welcome to reconnect!"), + QMessageBox::Close); } + break; + case ERR_NET_INVALID_PLAYER_COUNT: + { QMessageBox::warning(this, tr("Network Error"), + tr("The client player count is invalid."), + QMessageBox::Close); } + break; + case ERR_NET_TOO_MANY_MANUAL_BLINDS: + { QMessageBox::warning(this, tr("Network Error"), + tr("Too many manual blinds were set. Please reconfigure the manual blinds."), + QMessageBox::Close); } + break; + case ERR_NET_INVALID_AVATAR_FILE: + case ERR_NET_WRONG_AVATAR_SIZE: + { QMessageBox::warning(this, tr("Network Error"), + tr("An invalid avatar file was configured. Please choose a different avatar."), + QMessageBox::Close); } + break; + case ERR_NET_AVATAR_TOO_LARGE: + { QMessageBox::warning(this, tr("Network Error"), + tr("The selected avatar file is too large. Please choose a different avatar."), + QMessageBox::Close); } + break; + case ERR_NET_AVATAR_UPLOAD_BLOCKED: + { QMessageBox::warning(this, tr("Network Error"), + tr("You cannot upload a new avatar file at this time. Please try again in a few seconds."), + QMessageBox::Close); } + break; + case ERR_NET_INVALID_REQUEST_ID: + { QMessageBox::warning(this, tr("Network Error"), + tr("An internal avatar error occured. Please report this to an admin in the lobby chat."), + QMessageBox::Close); } + break; + case ERR_NET_START_TIMEOUT: + { QMessageBox::warning(this, tr("Network Error"), + tr("Could not start game: Synchronization failed."), + QMessageBox::Close); } + break; + case ERR_NET_SERVER_MAINTENANCE: + { QMessageBox::warning(this, tr("Network Error"), + tr("The server is down for maintenance. Please try again later."), + QMessageBox::Close); } + break; + default: { QMessageBox::warning(this, tr("Network Error"), + tr("An internal error occured."), + QMessageBox::Close); } + } + // close dialogs + myGameLobbyDialog->reject(); + myConnectToServerDialog->reject(); + myStartNetworkGameDialog->reject(); +} + +void gameTableImpl::networkNotification(int notificationId) +{ + hideTimeoutDialog(); + switch (notificationId) + { + case NTF_NET_REMOVED_KICKED: + { QMessageBox::warning(this, tr("Network Notification"), + tr("You were kicked from the game."), + QMessageBox::Close); } + break; + case NTF_NET_REMOVED_GAME_FULL: + case NTF_NET_JOIN_GAME_FULL: + { QMessageBox::warning(this, tr("Network Notification"), + tr("Sorry, this game is already full."), + QMessageBox::Close); } + break; + case NTF_NET_REMOVED_ALREADY_RUNNING: + case NTF_NET_JOIN_ALREADY_RUNNING: + { QMessageBox::warning(this, tr("Network Notification"), + tr("Unable to join - the server has already started the game."), + QMessageBox::Close); } + break; + case NTF_NET_REMOVED_TIMEOUT: + { QMessageBox::warning(this, tr("Network Notification"), + tr("Your admin state timed out due to inactivity. Feel free to create a new game!"), + QMessageBox::Close); } + break; + case NTF_NET_JOIN_INVALID_PASSWORD: + { QMessageBox::warning(this, tr("Network Notification"), + tr("Invalid password when joining the game.\nPlease reenter the password and try again."), + QMessageBox::Close); } + break; + case NTF_NET_NEW_RELEASE_AVAILABLE: + { QMessageBox msgBox(QMessageBox::Information, tr("Network Notification"), + tr("A new release of PokerTH is available.
Please go to http://www.pokerth.net and download the latest version."), + QMessageBox::Close, this); + msgBox.setTextFormat(Qt::RichText); + msgBox.exec(); + } + break; + case NTF_NET_OUTDATED_BETA: + { QMessageBox msgBox(QMessageBox::Information, tr("Network Notification"), + tr("This beta release of PokerTH is outdated.
Please go to http://www.pokerth.net and download the latest version."), + QMessageBox::Close, this); + msgBox.setTextFormat(Qt::RichText); + msgBox.exec(); + } + break; + } +} + +void gameTableImpl::networkStart(boost::shared_ptr game) +{ + mySession->startClientGame(game); + + //send playerNicksList to chat for nick-autocompletition + myChat->setPlayerNicksList(getPlayerNicksList()); +} + +void gameTableImpl::keyPressEvent ( QKeyEvent * event ) { + +// cout << event->key() << endl; + + bool ctrlPressed = FALSE; + + if (event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return ) /*ENTER*/ { + if(lineEdit_betValue->hasFocus()) { + pushButton_BetRaise->click(); + } + } + if (event->key() == Qt::Key_F1) { + if (myConfig->readConfigInt("AlternateFKeysUserActionMode") == 0) { + pushButton_Fold->click(); + } else { + pushButton_AllIn->click(); + } + } + if (event->key() == Qt::Key_F2) { + if (myConfig->readConfigInt("AlternateFKeysUserActionMode") == 0) { + pushButton_CallCheck->click(); + } else { + pushButton_BetRaise->click(); + } + + } + if (event->key() == Qt::Key_F3 ) { + if (myConfig->readConfigInt("AlternateFKeysUserActionMode") == 0) { + pushButton_BetRaise->click(); + } else { + pushButton_CallCheck->click(); + } + } + if (event->key() == Qt::Key_F4) { + if (myConfig->readConfigInt("AlternateFKeysUserActionMode") == 0) { + pushButton_AllIn->click(); + } else { + pushButton_Fold->click(); + } + } + if (event->key() == Qt::Key_F5) { radioButton_manualAction->click(); } + if (event->key() == Qt::Key_F6) { radioButton_autoCheckFold->click(); } + if (event->key() == Qt::Key_F7) { radioButton_autoCheckCallAny->click(); } + if (event->key() == 16777249) { //CTRL + if(mySession->getGameType() == Session::GAME_TYPE_LOCAL) { + pushButton_break->click(); + ctrlPressed = TRUE; + } + } + if (event->key() == Qt::Key_Escape && (myActionIsBet || myActionIsRaise)) { + meInAction(); + } + if (event->key() == Qt::Key_Up && lineEdit_ChatInput->hasFocus()) { + if((keyUpDownChatCounter + 1) <= myChat->getChatLinesHistorySize()) { keyUpDownChatCounter++; } +// std::cout << "Up keyUpDownChatCounter: " << keyUpDownChatCounter << "\n"; + myChat->showChatHistoryIndex(keyUpDownChatCounter); + } + else if(event->key() == Qt::Key_Down && lineEdit_ChatInput->hasFocus()) { + if((keyUpDownChatCounter - 1) >= 0) { keyUpDownChatCounter--; } +// std::cout << "Down keyUpDownChatCounter: " << keyUpDownChatCounter << "\n"; + myChat->showChatHistoryIndex(keyUpDownChatCounter); + } + else { keyUpDownChatCounter = 0; } + + +} + +void gameTableImpl::changePlayingMode() { + + int mode = -1; + + if(radioButton_manualAction->isChecked()) { mode=0; } + if(radioButton_autoCheckFold->isChecked()) { mode=2; } + if(radioButton_autoCheckCallAny->isChecked()) { mode=1; } + + + switch (mode) { + + case 0: { statusBar()->showMessage(tr("Manual mode set. You've got to choose yourself now."), 5000); } + break; + case 1: { statusBar()->showMessage(tr("Auto mode set: Check or call any."), 5000); } + break; + case 2: { statusBar()->showMessage(tr("Auto mode set: Check or fold."), 5000); } + break; + default: { cout << "changePlayingMode ERROR!!!!" << endl; } + + } + + playingMode = mode; +} + +bool gameTableImpl::eventFilter(QObject *obj, QEvent *event) +{ + QKeyEvent *keyEvent = static_cast(event); + + if (/*obj == lineEdit_ChatInput && lineEdit_ChatInput->text() != "" && */event->type() == QEvent::KeyPress && keyEvent->key() == Qt::Key_Tab) { + myChat->nickAutoCompletition(); + return true; + } + else if (event->type() == QEvent::Close) { + event->ignore(); + quitPokerTH(); + return true; + } + else { + // pass the event on to the parent class + return QMainWindow::eventFilter(obj, event); + } +} + +void gameTableImpl::switchChatWindow() { + + int tab = 1; + if (groupBox_LeftToolBox->isHidden()) { + tabWidget_Left->setCurrentIndex(tab); + groupBox_LeftToolBox->show(); + } else { + if (tabWidget_Left->currentIndex() == tab) { + groupBox_LeftToolBox->hide(); + } else { + tabWidget_Left->setCurrentIndex(tab); + } + } +} + +void gameTableImpl::switchHelpWindow() { + + int tab = 0; + if (groupBox_LeftToolBox->isHidden()) { + tabWidget_Left->setCurrentIndex(tab); + groupBox_LeftToolBox->show(); + } else { + if (tabWidget_Left->currentIndex() == tab) { + groupBox_LeftToolBox->hide(); + } else { + tabWidget_Left->setCurrentIndex(tab); + } + } +} + +void gameTableImpl::switchLogWindow() { + + int tab = 0; + if (groupBox_RightToolBox->isHidden()) { + tabWidget_Right->setCurrentIndex(tab); + groupBox_RightToolBox->show(); + } else { + if (tabWidget_Right->currentIndex() == tab) { + groupBox_RightToolBox->hide(); + } else { + tabWidget_Right->setCurrentIndex(tab); + } + } +} + +void gameTableImpl::switchAwayWindow() { + + int tab = 1; + if (groupBox_RightToolBox->isHidden()) { + tabWidget_Right->setCurrentIndex(tab); + groupBox_RightToolBox->show(); + } else { + if (tabWidget_Right->currentIndex() == tab) { + groupBox_RightToolBox->hide(); + } else { + tabWidget_Right->setCurrentIndex(tab); + } + } +} + +void gameTableImpl::switchFullscreen() { + + if (this->isFullScreen()) { + this->showNormal(); + } + else { + this->showFullScreen(); + } +} + +void gameTableImpl::blinkingStartButtonAnimationAction() { + + QString style = pushButton_break->styleSheet(); + + if(style.contains("QPushButton { background-color: #145300;")) { + pushButton_break->setStyleSheet("QPushButton { background-color: #6E9E00; color: black;}"); + } + else { + pushButton_break->setStyleSheet("QPushButton { background-color: #145300; color: #99D500;}"); + } +} + +void gameTableImpl::sendChatMessage() { myChat->sendMessage(); } +void gameTableImpl::checkChatInputLength(QString string) { myChat->checkInputLength(string); } + + +void gameTableImpl::tabSwitchAction() { + + switch(tabWidget_Left->currentIndex()) { + + case 1: { lineEdit_ChatInput->setFocus(); + myChat->checkInvisible(); + } + break; + default: { lineEdit_ChatInput->clearFocus(); } + + } +} + + +void gameTableImpl::localGameModification() { + + tabWidget_Left->setCurrentIndex(0); + tabWidget_Left->removeTab(1); + + int i; + for (i=0; istopTimeOutAnimation(); + } + + pushButton_break->show(); + QFontMetrics tempMetrics = this->fontMetrics(); + int width = tempMetrics.width(tr("Stop")); + pushButton_break->setText(tr("Stop")); + pushButton_break->setMinimumSize(width+10,20); + + //Set the playing mode to "manual" + radioButton_manualAction->click(); + + //clear log + textBrowser_Log->clear(); +} + +void gameTableImpl::networkGameModification() { + + if(tabWidget_Left->widget(1) != tab_Chat) + tabWidget_Left->insertTab(1, tab_Chat, QString(tr("Chat"))); + + tabWidget_Left->setCurrentIndex(1); + myChat->clearNewGame(); + + if(mySession->getGameType() == Session::GAME_TYPE_INTERNET) { + pushButton_break->show(); + QFontMetrics tempMetrics = this->fontMetrics(); + int width = tempMetrics.width(tr("Lobby")); + pushButton_break->setText(tr("Lobby")); + pushButton_break->setMinimumSize(width+10,20); + } + if(mySession->getGameType() == Session::GAME_TYPE_NETWORK) { + + pushButton_break->hide(); + } + //Set the playing mode to "manual" + radioButton_manualAction->click(); + + //clear log + textBrowser_Log->clear(); +} + +void gameTableImpl::mouseOverFlipCards(bool front) { + + if(mySession->getCurrentGame()) { + if(myConfig->readConfigInt("AntiPeekMode") && mySession->getCurrentGame()->getCurrentHand()->getSeatsList()->front()->getMyActiveStatus() && mySession->getCurrentGame()->getSeatsList()->front()->getMyAction() != PLAYER_ACTION_FOLD) { + holeCardsArray[0][0]->signalFastFlipCards(front); + holeCardsArray[0][1]->signalFastFlipCards(front); + } + } +} + +void gameTableImpl::updateMyButtonsState(int mode) { + + HandInterface *currentHand = mySession->getCurrentGame()->getCurrentHand(); + + if(currentHand->getLastPlayersTurn() == 0) { + myButtonsCheckable(FALSE); + clearMyButtons(); + } + else { + if(mySession->getCurrentGame()->getSeatsList()->front()->getMyAction() != PLAYER_ACTION_ALLIN) { // dont show pre-actions after flip cards when allin + myButtonsCheckable(TRUE); + provideMyActions(mode); + } + } +} + +void gameTableImpl::uncheckMyButtons() { + + pushButton_BetRaise->setChecked(FALSE); + pushButton_CallCheck->setChecked(FALSE); + pushButton_Fold->setChecked(FALSE); + pushButton_AllIn->setChecked(FALSE); + +} + +void gameTableImpl::resetMyButtonsCheckStateMemory() { + + pushButtonCallCheckIsChecked = FALSE; + pushButtonFoldIsChecked = FALSE; + pushButtonAllInIsChecked = FALSE; + pushButtonBetRaiseIsChecked = FALSE; +} + +void gameTableImpl::clearMyButtons() { + + pushButton_BetRaise->setText(""); + pushButton_CallCheck->setText(""); + pushButton_Fold->setText(""); +} + +void gameTableImpl::myButtonsCheckable(bool state) { + +#ifdef _WIN32 + QString humanPlayerButtonFontSize = "13"; +#else + QString humanPlayerButtonFontSize = "12"; +#endif + + if(state) { + //checkable + + pushButton_BetRaise->setCheckable(TRUE); + pushButton_CallCheck->setCheckable(TRUE); + pushButton_Fold->setCheckable(TRUE); + pushButton_AllIn->setCheckable(TRUE); + + //design + pushButton_BetRaise->setStyleSheet("QPushButton { border:none; background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_green.png); "+ font2String +" font-size: "+humanPlayerButtonFontSize+"px; font-weight: bold; color: #87FF97;} QPushButton:unchecked { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_green.png);} QPushButton:checked { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_green_checked.png);} QPushButton:hover { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_green_hover.png);} QPushButton:checked:hover { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_green_checked_hover.png);}"); + pushButton_CallCheck->setStyleSheet("QPushButton { border:none; background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_blue.png); "+ font2String +" font-size: "+humanPlayerButtonFontSize+"px; font-weight: bold; color: #87CDFF;} QPushButton:unchecked { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_blue.png); } QPushButton:checked { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_blue_checked.png);} QPushButton:hover { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_blue_hover.png); } QPushButton:checked:hover { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_blue_checked_hover.png); }"); + pushButton_Fold->setStyleSheet("QPushButton { border:none; background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_red.png); "+ font2String +" font-size: "+humanPlayerButtonFontSize+"px; font-weight: bold; color: #FF8787;} QPushButton:unchecked { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_red.png); } QPushButton:checked { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_red_checked.png);} QPushButton:hover { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_red_hover.png); } QPushButton:checked:hover { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_red_checked_hover.png); }"); + + myButtonsAreCheckable = TRUE; + } + else { + //not checkable + + pushButton_BetRaise->setCheckable(FALSE); + pushButton_CallCheck->setCheckable(FALSE); + pushButton_Fold->setCheckable(FALSE); + pushButton_AllIn->setCheckable(FALSE); + + QString hover; + if(pushButton_AllIn->isEnabled()) { hover = "_hover"; } + + //design + pushButton_BetRaise->setStyleSheet("QPushButton { border:none; background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_green.png); "+ font2String +" font-size: "+humanPlayerButtonFontSize+"px; font-weight: bold; color: #F0F0F0;} QPushButton:unchecked { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_green.png); } QPushButton:checked { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_green_checked.png);} QPushButton:hover { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_green"+hover+".png); } QPushButton:checked:hover { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_green_checked"+hover+".png);}"); + pushButton_CallCheck->setStyleSheet("QPushButton { border:none; background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_blue.png); "+ font2String +" font-size: "+humanPlayerButtonFontSize+"px; font-weight: bold; color: #F0F0F0;} QPushButton:unchecked { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_blue.png); } QPushButton:checked { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_blue_checked.png);} QPushButton:hover { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_blue"+hover+".png); } QPushButton:checked:hover { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_blue_checked"+hover+".png);}"); + pushButton_Fold->setStyleSheet("QPushButton { border:none; background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_red.png); "+ font2String +" font-size: "+humanPlayerButtonFontSize+"px; font-weight: bold; color: #F0F0F0;} QPushButton:unchecked { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_red.png); } QPushButton:checked { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_red_checked.png);} QPushButton:hover { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_red"+hover+".png); } QPushButton:checked:hover { background-image: url(" + myAppDataPath +"gfx/gui/table/default/playeraction_red_checked"+hover+".png);}"); + + myButtonsAreCheckable = FALSE; + } + +} + +// // void gameTableImpl::closeEvent(QCloseEvent* /*event*/) { quitPokerTH(); } + +void gameTableImpl::showMaximized () { + this->showFullScreen (); +} + +void gameTableImpl::quitPokerTH() { + + if (myServerGuiInterface.get() && myServerGuiInterface->getSession().isNetworkServerRunning()) { + + QMessageBox msgBox(QMessageBox::Warning, tr("Closing PokerTH during network game"), + tr("You are the hosting server. Do you want to close PokerTH anyway?"), QMessageBox::Yes | QMessageBox::No, this); + + if (msgBox.exec() == QMessageBox::Yes ) { + mySession->terminateNetworkClient(); + stopTimer(); + if (myServerGuiInterface.get()) myServerGuiInterface->getSession().terminateNetworkServer(); + qApp->quit(); + } + } + else { + mySession->terminateNetworkClient(); + stopTimer(); + qApp->quit(); + } +} + +void gameTableImpl::changeLineEditBetValue(int value) { + + int temp; + if(betSliderChangedByInput) { + //prevent interval cutting of lineEdit_betValue input from code below + betSliderChangedByInput = FALSE; + } + else { + if(horizontalSlider_bet->maximum() <= 1000 ) { + temp = (int)((value/10)*10); + if(temp < horizontalSlider_bet->minimum()) + lineEdit_betValue->setText(QString::number(horizontalSlider_bet->minimum())); + else + lineEdit_betValue->setText(QString::number(temp)); + } + else { + temp = (int)((value/50)*50); + if(temp < horizontalSlider_bet->minimum()) + lineEdit_betValue->setText(QString::number(horizontalSlider_bet->minimum())); + else + lineEdit_betValue->setText(QString::number(temp)); + } + } +} + +void gameTableImpl::lineEditBetValueChanged(QString valueString) { + + if(horizontalSlider_bet->isEnabled()) { + + bool ok; + int betValue = QString(valueString).toInt(&ok, 10); + QString betRaise = pushButton_BetRaise->text().section(" ",0 ,0); + + if(betValue >= horizontalSlider_bet->minimum()) { + + if(betValue > horizontalSlider_bet->maximum()) { // print the maximum + pushButton_BetRaise->setText(betRaise + " $" + QString::number(horizontalSlider_bet->maximum())); + betSliderChangedByInput = TRUE; + horizontalSlider_bet->setValue(horizontalSlider_bet->maximum()); + } + else { // really print the value + pushButton_BetRaise->setText(betRaise + " $" + valueString); + betSliderChangedByInput = TRUE; + horizontalSlider_bet->setValue(betValue); + } + } + else { // print the minimum + pushButton_BetRaise->setText(betRaise + " $" + QString::number(horizontalSlider_bet->minimum())); + betSliderChangedByInput = TRUE; + horizontalSlider_bet->setValue(horizontalSlider_bet->minimum()); + } + } +} + +void gameTableImpl::leaveCurrentNetworkGame() { + + if (mySession->isNetworkClientRunning()) { + + if(myConfig->readConfigInt("DisableBackToLobbyWarning")) { + + assert(mySession); + mySession->sendLeaveCurrentGame(); + } + else { + myMessageDialogImpl dialog(this); + dialog.setWindowTitle(tr("PokerTH - Internet Game Message")); + dialog.label_icon->setPixmap(QPixmap(myAppDataPath +"gfx/gui/misc/logoChip3D.png").scaled(50,50,Qt::KeepAspectRatio,Qt::SmoothTransformation)); + dialog.label->setText(tr("Attention! Do you really want to leave the current game\nand go back to the lobby?")); + + if (dialog.exec() == QDialog::Accepted ) { + + if(dialog.checkBox->isChecked()) { + myConfig->writeConfigInt("DisableBackToLobbyWarning",1); + myConfig->writeBuffer(); + } + assert(mySession); + mySession->sendLeaveCurrentGame(); + } + } + } +} + + +void gameTableImpl::showTimeoutDialog(int msgID, unsigned duration) { + + if(myTimeoutDialog->isHidden()) { + myTimeoutDialog->setMySession(mySession); + myTimeoutDialog->setMsgID((NetTimeoutReason)msgID); + myTimeoutDialog->setTimeoutDuration(duration); + myTimeoutDialog->show(); + myTimeoutDialog->raise(); + myTimeoutDialog->activateWindow(); + myTimeoutDialog->startTimeout(); + } +} + +void gameTableImpl::hideTimeoutDialog() { myTimeoutDialog->hide(); } diff --git a/src/gui/qt/gametable/gametableimpl.h b/src/gui/qt/gametable/gametableimpl.h new file mode 100755 index 00000000..a6fff0c1 --- /dev/null +++ b/src/gui/qt/gametable/gametableimpl.h @@ -0,0 +1,473 @@ +/*************************************************************************** + * Copyright (C) 2006 by FThauer FHammer * + * f.thauer@web.de * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#ifndef GAMETABLEIMPL_H +#define GAMETABLEIMPL_H + +#include "ui_gametable.h" +#include "game_defs.h" + +#include +#include + +#include +#include + +class Log; +class Chat; +class ConfigFile; +class Session; +class Game; + +class GuiInterface; +class BoardInterface; +// class HandInterface; +class PlayerInterface; +class MyCardsPixmapLabel; +class MyAvatarLabel; +class newGameDialogImpl; +class settingsDialogImpl; +class selectAvatarDialogImpl; +class aboutPokerthImpl; +class joinNetworkGameDialogImpl; +class connectToServerDialogImpl; +class createNetworkGameDialogImpl; +class startNetworkGameDialogImpl; +class changeHumanPlayerNameDialogImpl; +class gameLobbyDialogImpl; +class timeoutMsgBoxImpl; + +class QColor; +class SDLPlayer; +// class StyleSheetReader; + + +class gameTableImpl: public QMainWindow, public Ui::gameTable { +Q_OBJECT + +public: + gameTableImpl(ConfigFile *c = 0, QMainWindow *parent = 0); + + ~gameTableImpl(); + + Session &getSession(); + void setSession(boost::shared_ptr session); + + void setLog(Log* l) { myLog = l; } + + SDLPlayer* getMySDLPlayer() const { return mySDLPlayer; } + + void setSpeeds(); + +signals: + void signalInitGui(int speed); + + void signalShowClientDialog(); + + void signalRefreshSet(); + void signalRefreshCash(); + void signalRefreshAction(int =-1, int=-1); + void signalRefreshChangePlayer(); + void signalRefreshPot(); + void signalRefreshGroupbox(int =-1, int =-1); + void signalRefreshAll(); + void signalRefreshPlayerName(); + void signalRefreshButton(); + void signalRefreshGameLabels(int); + + void signalSetPlayerAvatar(int, QString); + + void signalGuiUpdateDone(); + + void signalMeInAction(); + void signalUpdateMyButtonsState(); + void signalDisableMyButtons(); + void signalStartTimeoutAnimation(int playerId, int timeoutSec); + void signalStopTimeoutAnimation(int playerId); + + void signalDealBeRoCards(int myBeRoID); + + void signalDealHoleCards(); + void signalDealFlopCards0(); + void signalDealTurnCards0(); + void signalDealRiverCards0(); + + void signalNextPlayerAnimation(); + + void signalBeRoAnimation2(int); + + void signalPreflopAnimation1(); + void signalPreflopAnimation2(); + void signalFlopAnimation1(); + void signalFlopAnimation2(); + void signalTurnAnimation1(); + void signalTurnAnimation2(); + void signalRiverAnimation1(); + void signalRiverAnimation2(); + void signalPostRiverAnimation1(); + void signalPostRiverRunAnimation1(); + + void signalFlipHolecardsAllIn(); + + void signalNextRoundCleanGui(); + + void signalNetClientConnect(int actionID); + void signalNetClientGameInfo(int actionID); + void signalNetClientError(int errorID, int osErrorID); + void signalNetClientNotification(int notificationId); + void signalNetClientStatsUpdate(ServerStats stats); + void signalNetClientShowTimeoutDialog(int, unsigned); + void signalNetClientRemovedFromGame(int notificationId); + void signalNetServerError(int errorID, int osErrorID); + void signalNetClientSelfJoined(unsigned playerId, QString playerName, int rights); + void signalNetClientPlayerJoined(unsigned playerId, QString playerName, int rights); + void signalNetClientPlayerChanged(unsigned playerId, QString newPlayerName); + void signalNetClientPlayerLeft(unsigned playerId, QString playerName); + void signalNetClientNewGameAdmin(unsigned playerId, QString playerName); + void signalNetClientGameListNew(unsigned gameId); + void signalNetClientGameListRemove(unsigned gameId); + void signalNetClientGameListUpdateMode(unsigned gameId, int mode); + void signalNetClientGameListUpdateAdmin(unsigned gameId, unsigned adminPlayerId); + void signalNetClientGameListPlayerJoined(unsigned gameId, unsigned playerId); + void signalNetClientGameListPlayerLeft(unsigned gameId, unsigned playerId); + void signalNetClientGameStart(boost::shared_ptr game); + void signalNetClientChatMsg(QString nickName, QString msg); + + void signalIrcConnect(QString server); + void signalIrcSelfJoined(QString nickName, QString channel); + void signalIrcPlayerJoined(QString nickName); + void signalIrcPlayerChanged(QString oldNick, QString newNick); + void signalIrcPlayerKicked(QString nickName, QString byWhom, QString reason); + void signalIrcPlayerLeft(QString nickName); + void signalIrcChatMessage(QString nickName, QString msg); + void signalIrcError(int errorCode); + void signalIrcServerError(int errorCode); + +public slots: + + void initGui(int speed); + + void showClientDialog(); + void showNetworkStartDialog(); + void showLobbyDialog(); + + //refresh-Funktionen + void refreshSet(); + void refreshCash(); + void refreshAction(int =-1, int=-1); + void refreshChangePlayer(); + void refreshPot(); + void refreshGroupbox(int =-1, int =-1); + void refreshAll(); + void refreshPlayerName(); + QStringList getPlayerNicksList(); + void refreshGameLabels(int); + void refreshButton(); + void refreshPlayerAvatar(); + void setPlayerAvatar(int myID, QString myAvatar); + + void guiUpdateDone(); + void waitForGuiUpdateDone(); + + // Karten-Funktionen + void dealHoleCards(); + + //Spieler-Funktionen + void provideMyActions(int mode = -1); //mode 0 == called from dealberocards + void meInAction(); + void disableMyButtons(); + void startTimeoutAnimation(int playerId, int timoutSec); + void stopTimeoutAnimation(int playerId); + + void setGameSpeed(const int theValue) { guiGameSpeed = theValue; setSpeeds(); } // Achtung Faktor 10!!! + + void callNewGameDialog() ; + void callAboutPokerthDialog(); + void callSettingsDialog(); + void callCreateNetworkGameDialog(); + void callJoinNetworkGameDialog(); + void callGameLobbyDialog(); + void joinGameLobby(); + + void pushButtonBetRaiseClicked(bool checked); + void pushButtonCallCheckClicked(bool checked); + void pushButtonFoldClicked(bool checked); + void pushButtonAllInClicked(bool checked); + + void myCallCheck(); + + void myFold(); + void myCheck(); + int getMyCallAmount(); + int getBetRaisePushButtonValue(); + int getMyBetAmount(); + void myCall(); + void mySet(); + void myAllIn(); + + void myActionDone(); + + void dealBeRoCards(int); + + void dealFlopCards0(); + void dealFlopCards1(); + void dealFlopCards2(); + void dealFlopCards3(); + void dealFlopCards4(); + void dealFlopCards5(); + void dealFlopCards6(); + + void dealTurnCards0(); + void dealTurnCards1(); + void dealTurnCards2(); + + void dealRiverCards0(); + void dealRiverCards1(); + void dealRiverCards2(); + + void nextPlayerAnimation(); + + void beRoAnimation2(int); + + void preflopAnimation1(); + void preflopAnimation1Action(); + void preflopAnimation2(); + void preflopAnimation2Action(); + + void flopAnimation1(); + void flopAnimation1Action(); + void flopAnimation2(); + void flopAnimation2Action(); + + void turnAnimation1(); + void turnAnimation1Action(); + void turnAnimation2(); + void turnAnimation2Action(); + + void riverAnimation1(); + void riverAnimation1Action(); + void riverAnimation2(); + void riverAnimation2Action(); + + void postRiverAnimation1(); + void postRiverAnimation1Action(); + + void postRiverRunAnimation1(); + void postRiverRunAnimation2(); + void postRiverRunAnimation2_flipHoleCards1(); + void postRiverRunAnimation2_flipHoleCards2(); + void postRiverRunAnimation3(); + void postRiverRunAnimation4(); + void postRiverRunAnimation5(); + void postRiverRunAnimation6(); + + void blinkingStartButtonAnimationAction(); + + void flipHolecardsAllIn(); + void showMyCards(); + + void handSwitchRounds(); + + void startNewHand(); + void startNewLocalGame(newGameDialogImpl* =0); + + void stopTimer(); + + void nextRoundCleanGui(); + + void breakButtonClicked(); + + void keyPressEvent ( QKeyEvent*); + bool eventFilter(QObject *obj, QEvent *event); + + void switchChatWindow(); + void switchHelpWindow(); + void switchLogWindow(); + void switchAwayWindow(); + void switchFullscreen(); + + void paintStartSplash(); + + void sendChatMessage(); + void checkChatInputLength(QString); + void tabSwitchAction(); + + void leaveCurrentNetworkGame(); + + void networkError(int, int); + void networkNotification(int); + void networkStart(boost::shared_ptr game); + +// void closeEvent(QCloseEvent*); + + void localGameModification(); + void networkGameModification(); + + void mouseOverFlipCards(bool front); + + void updateMyButtonsState(int mode = -1); //mode 0 == called from dealberocards + void uncheckMyButtons(); + void resetMyButtonsCheckStateMemory(); + void clearMyButtons(); + void myButtonsCheckable(bool state); + + void changePlayingMode(); + void changeLineEditBetValue(int); + void lineEditBetValueChanged(QString); + + void showMaximized (); + void quitPokerTH(); + + void showTimeoutDialog(int msgID, unsigned duration); + void hideTimeoutDialog(); + +// void paintEvent(QPaintEvent *); + +private: + + boost::shared_ptr myServerGuiInterface; + boost::shared_ptr mySession; + Log *myLog; + Chat *myChat; + ConfigFile *myConfig; + + //Timer + QTimer *potDistributeTimer; + QTimer *timer; + QTimer *dealFlopCards0Timer; + QTimer *dealFlopCards1Timer; + QTimer *dealFlopCards2Timer; + QTimer *dealFlopCards3Timer; + QTimer *dealFlopCards4Timer; + QTimer *dealFlopCards5Timer; + QTimer *dealFlopCards6Timer; + QTimer *dealTurnCards0Timer; + QTimer *dealTurnCards1Timer; + QTimer *dealTurnCards2Timer; + QTimer *dealRiverCards0Timer; + QTimer *dealRiverCards1Timer; + QTimer *dealRiverCards2Timer; + + QTimer *nextPlayerAnimationTimer; + QTimer *preflopAnimation1Timer; + QTimer *preflopAnimation2Timer; + QTimer *flopAnimation1Timer; + QTimer *flopAnimation2Timer; + QTimer *turnAnimation1Timer; + QTimer *turnAnimation2Timer; + QTimer *riverAnimation1Timer; + QTimer *riverAnimation2Timer; + + QTimer *postRiverAnimation1Timer; + QTimer *postRiverRunAnimation1Timer; + QTimer *postRiverRunAnimation2Timer; + QTimer *postRiverRunAnimation2_flipHoleCards1Timer; + QTimer *postRiverRunAnimation2_flipHoleCards2Timer; + QTimer *postRiverRunAnimation3Timer; + QTimer *postRiverRunAnimation5Timer; + QTimer *postRiverRunAnimation6Timer; + + QTimer *blinkingStartButtonAnimationTimer; + + + QWidget *userWidgetsArray[6]; + QLabel *buttonLabelArray[MAX_NUMBER_OF_PLAYERS]; + QLabel *cashLabelArray[MAX_NUMBER_OF_PLAYERS]; + QLabel *cashTopLabelArray[MAX_NUMBER_OF_PLAYERS]; + MySetLabel *setLabelArray[MAX_NUMBER_OF_PLAYERS]; + QLabel *actionLabelArray[MAX_NUMBER_OF_PLAYERS]; + QLabel *playerNameLabelArray[MAX_NUMBER_OF_PLAYERS]; + MyAvatarLabel *playerAvatarLabelArray[MAX_NUMBER_OF_PLAYERS]; + + QGroupBox *groupBoxArray[MAX_NUMBER_OF_PLAYERS]; + MyCardsPixmapLabel *boardCardsArray[5]; + MyCardsPixmapLabel *holeCardsArray[MAX_NUMBER_OF_PLAYERS][2]; + + QPixmap *flipside; + + //Dialoge + aboutPokerthImpl *myAboutPokerthDialog; + newGameDialogImpl *myNewGameDialog; + settingsDialogImpl *mySettingsDialog; + selectAvatarDialogImpl *mySelectAvatarDialog; + changeHumanPlayerNameDialogImpl *myChangeHumanPlayerNameDialog; + joinNetworkGameDialogImpl *myJoinNetworkGameDialog; + connectToServerDialogImpl *myConnectToServerDialog; + startNetworkGameDialogImpl *myStartNetworkGameDialog; + createNetworkGameDialogImpl *myCreateNetworkGameDialog; + gameLobbyDialogImpl *myGameLobbyDialog; + boost::shared_ptr myTimeoutDialog; + + //Sound + SDLPlayer *mySDLPlayer; + QString myAppDataPath; + + + int distributePotAnimCounter; + int playingMode; + + QString font2String; + QString font1String; + + //Speed + int guiGameSpeed; + int gameSpeed; + int dealCardsSpeed; + int preDealCardsSpeed; + int postDealCardsSpeed; + int AllInDealCardsSpeed; + int postRiverRunAnimationSpeed; + int winnerBlinkSpeed; + int newRoundSpeed; + int nextPlayerSpeed1; + int nextPlayerSpeed2; + int nextPlayerSpeed3; + int preflopNextPlayerSpeed; + int nextOpponentSpeed; + + bool myActionIsBet; + bool myActionIsRaise; + bool pushButtonBetRaiseIsChecked; + bool pushButtonCallCheckIsChecked; + bool pushButtonFoldIsChecked; + bool pushButtonAllInIsChecked; + bool myButtonsAreCheckable; + bool breakAfterCurrentHand; + bool currentGameOver; + bool flipHolecardsAllInAlreadyDone; + bool betSliderChangedByInput; + + QColor active; + QColor inactive; + QColor highlight; + + // statistic testing + int statisticArray[15]; + + QSemaphore guiUpdateSemaphore; + + int keyUpDownChatCounter; + int myLastPreActionBetValue; + +// StyleSheetReader *myStyleSheetReader; + +friend class GuiWrapper; +}; + +#endif diff --git a/src/gui/qt/gametable/log/log.cpp b/src/gui/qt/gametable/log/log.cpp new file mode 100755 index 00000000..20cef59a --- /dev/null +++ b/src/gui/qt/gametable/log/log.cpp @@ -0,0 +1,1668 @@ +/*************************************************************************** + * Copyright (C) 2006 by FThauer FHammer * + * f.thauer@web.de * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#include "log.h" + +#include "gametableimpl.h" +#include +#include +#include +#include + +using namespace std; + +Log::Log(gameTableImpl* w, ConfigFile *c) : myW(w), myConfig(c), myLogDir(0), myLogFile(0) +{ + myW->setLog(this); + + myAppDataPath = QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str()); + + connect(this, SIGNAL(signalLogPlayerActionMsg(QString, int, int)), this, SLOT(logPlayerActionMsg(QString, int, int))); + connect(this, SIGNAL(signalLogNewGameHandMsg(int, int)), this, SLOT(logNewGameHandMsg(int, int))); + connect(this, SIGNAL(signalLogNewBlindsSetsMsg(int, int, QString, QString)), this, SLOT(logNewBlindsSetsMsg(int, int, QString, QString))); + connect(this, SIGNAL(signalLogPlayerWinsMsg(QString, int, bool)), this, SLOT(logPlayerWinsMsg(QString, int, bool))); + connect(this, SIGNAL(signalLogPlayerSitsOut(QString)), this, SLOT(logPlayerSitsOut(QString))); + connect(this, SIGNAL(signalLogDealBoardCardsMsg(int, int, int, int, int, int)), this, SLOT(logDealBoardCardsMsg(int, int, int, int, int, int))); + connect(this, SIGNAL(signalLogFlipHoleCardsMsg(QString, int, int, int, QString)), this, SLOT(logFlipHoleCardsMsg(QString, int, int, int, QString))); + connect(this, SIGNAL(signalLogPlayerLeftMsg(QString)), this, SLOT(logPlayerLeftMsg(QString))); + connect(this, SIGNAL(signalLogNewGameAdminMsg(QString)), this, SLOT(logNewGameAdminMsg(QString))); + connect(this, SIGNAL(signalLogPlayerWinGame(QString, int)), this, SLOT(logPlayerWinGame(QString, int))); + connect(this, SIGNAL(signalFlushLogAtGame(int)), this, SLOT(flushLogAtGame(int))); + connect(this, SIGNAL(signalFlushLogAtHand()), this, SLOT(flushLogAtHand())); + + + logFileStreamString = ""; + lastGameID = 0; + + if(myConfig->readConfigInt("LogOnOff")) { + //if write logfiles is enabled + if(myConfig->readConfigString("LogDir") != "" && QDir::QDir(QString::fromUtf8(myConfig->readConfigString("LogDir").c_str())).exists()) { + + myLogDir = new QDir(QString::fromUtf8(myConfig->readConfigString("LogDir").c_str())); + myLogFile = new QFile(myLogDir->absolutePath()+"/pokerth-log-"+QDateTime::currentDateTime().toString("yyyy-MM-dd_hh.mm.ss")+".html"); + + //Logo-Pixmap extrahieren + QPixmap::QPixmap(myAppDataPath +"gfx/gui/misc/logoChip3D.png").save(myLogDir->absolutePath()+"/logo.png"); + + // myW->textBrowser_Log->append(myLogFile->fileName()); + + myLogFile->open( QIODevice::WriteOnly ); + QTextStream stream( myLogFile ); + stream << "\n"; + stream << "\n"; + stream << ""; + stream << "\n"; + stream << "\n"; + stream << "\n"; + stream << QString("

Log-File for PokerTH %1 Session started on ").arg(POKERTH_BETA_RELEASE_STRING)+QDate::currentDate().toString("yyyy-MM-dd")+" at "+QTime::currentTime().toString("hh:mm:ss")+"

\n"; + myLogFile->close(); + + //Zu alte Dateien löschen!!! + int daysUntilWaste = myConfig->readConfigInt("LogStoreDuration"); + int i; + + QStringList filters("pokerth-log*"); + QStringList logFileList = myLogDir->entryList(filters, QDir::Files); + + for(i=0; i daysUntilWaste) { + + // cout << QString::QString(myLogDir->absolutePath()+"/"+logFileList.at(i)).toStdString() << endl; + QFile fileToDelete(myLogDir->absolutePath()+"/"+logFileList.at(i)); + fileToDelete.remove(); + } + + } + + } + else { cout << "Log directory doesn't exist. Cannot create log files"; } + } +} + +Log::~Log() +{ + delete myConfig; + myConfig = 0; +} + +void Log::logPlayerActionMsg(QString msg, int action, int setValue) { + + switch (action) { + + case 1: msg += " folds."; + break; + case 2: msg += " checks."; + break; + case 3: msg += " calls "; + break; + case 4: msg += " bets "; + break; + case 5: msg += " bets "; + break; + case 6: msg += " is all in with "; + break; + default: msg += "ERROR"; + } + + if (action >= 3) { msg += "$"+QString::number(setValue,10)+"."; } + + myW->textBrowser_Log->append(msg); + + if(myConfig->readConfigInt("LogOnOff")) { + //if write logfiles is enabled + logFileStreamString += msg+"
\n"; + + if(myConfig->readConfigInt("LogInterval") == 0) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } + + } +} + +void Log::logNewGameHandMsg(int gameID, int handID) { + + PlayerListConstIterator it_c; + HandInterface *currentHand = myW->getSession().getCurrentGame()->getCurrentHand(); + + myW->textBrowser_Log->append("## Game: "+QString::number(gameID,10)+" | Hand: "+QString::number(handID,10)+" ##"); + + if(myConfig->readConfigInt("LogOnOff")) { + //if write logfiles is enabled + + logFileStreamString += "

Game: "+QString::number(gameID,10)+" | Hand: "+QString::number(handID,10)+"
"; + logFileStreamString += "BLIND LEVEL: $"+QString::number(currentHand->getSmallBlind())+" / $"+QString::number(currentHand->getSmallBlind()*2)+"
"; + + //print cash only for active players + for(it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { + + logFileStreamString += "Seat " + QString::number((*it_c)->getMyID()+1,10) + ": " + QString::fromUtf8((*it_c)->getMyName().c_str()) + " ($" + QString::number((*it_c)->getMyCash()+(*it_c)->getMySet(),10)+")
"; + + } + } + +} + +void Log::logNewBlindsSetsMsg(int sbSet, int bbSet, QString sbName, QString bbName) { + + // log blinds + logFileStreamString += "BLINDS: "; + + logFileStreamString += sbName+" ($"+QString::number(sbSet,10)+"), "; + logFileStreamString += bbName+" ($"+QString::number(bbSet,10)+")"; + + myW->textBrowser_Log->append(""+sbName+" posts small blind ($"+QString::number(sbSet,10)+")"); + myW->textBrowser_Log->append(""+bbName+" posts big blind ($"+QString::number(bbSet,10)+")"); + + PlayerListConstIterator it_c; + HandInterface *currentHand = myW->getSession().getCurrentGame()->getCurrentHand(); + for(it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { + if(currentHand->getActivePlayerList()->size() > 2) { + if((*it_c)->getMyButton() == BUTTON_DEALER) { + + logFileStreamString += "
" + QString::fromUtf8((*it_c)->getMyName().c_str()) + " starts as dealer."; + break; + } + } else { + if((*it_c)->getMyButton() == BUTTON_SMALL_BLIND) { + + logFileStreamString += "
" + QString::fromUtf8((*it_c)->getMyName().c_str()) + " starts as dealer."; + break; + } + } + } + + logFileStreamString += "

PREFLOP"; + logFileStreamString += "
\n"; +} + +void Log::logPlayerWinsMsg(QString playerName, int pot, bool main) { + + if(main) { + myW->textBrowser_Log->append(""+playerName+" wins $"+QString::number(pot,10)+""); + } else { + myW->textBrowser_Log->append(""+playerName+" wins $"+QString::number(pot,10)+" (side pot)"); + } + + if(myConfig->readConfigInt("LogOnOff")) { + //if write logfiles is enabled + + logFileStreamString += "
"+playerName+" wins $"+QString::number(pot,10); + if(!main) { + logFileStreamString += " (side pot)"; + } + logFileStreamString += "\n"; + + if(myConfig->readConfigInt("LogInterval") == 0) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } + } +} + + +void Log::logPlayerSitsOut(QString playerName) { + + myW->textBrowser_Log->append(""+playerName+" sits out"); + + if(myConfig->readConfigInt("LogOnOff")) { + + logFileStreamString += "
"+playerName+" sits out\n"; + + if(myConfig->readConfigInt("LogInterval") == 0) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } + } +} + + +void Log::logDealBoardCardsMsg(int roundID, int card1, int card2, int card3, int card4, int card5) { + + QString round; + + switch (roundID) { + + case 1: round = "Flop"; + myW->textBrowser_Log->append("--- "+round+" --- "+"["+translateCardCode(card1).at(0)+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+translateCardCode(card3).at(1)+"]"); + break; + case 2: round = "Turn"; + myW->textBrowser_Log->append("--- "+round+" --- "+"["+translateCardCode(card1).at(0)+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+translateCardCode(card3).at(1)+","+translateCardCode(card4).at(0)+translateCardCode(card4).at(1)+"]"); + break; + case 3: round = "River"; + myW->textBrowser_Log->append("--- "+round+" --- "+"["+translateCardCode(card1).at(0)+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+translateCardCode(card3).at(1)+","+translateCardCode(card4).at(0)+translateCardCode(card4).at(1)+","+translateCardCode(card5).at(0)+translateCardCode(card5).at(1)+"]"); + break; + default: round = "ERROR"; + } + + if(myConfig->readConfigInt("LogOnOff")) { + //if write logfiles is enabled + + switch (roundID) { + + case 1: round = "Flop"; + logFileStreamString += "
"+round.toUpper()+" [board cards "+translateCardCode(card1).at(0)+""+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+""+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+""+translateCardCode(card3).at(1)+"]"+"
\n"; + break; + case 2: round = "Turn"; + logFileStreamString += "
"+round.toUpper()+" [board cards "+translateCardCode(card1).at(0)+""+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+""+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+""+translateCardCode(card3).at(1)+","+translateCardCode(card4).at(0)+""+translateCardCode(card4).at(1)+"]"+"
\n"; + break; + case 3: round = "River"; + logFileStreamString += "
"+round.toUpper()+" [board cards "+translateCardCode(card1).at(0)+""+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+""+translateCardCode(card2).at(1)+","+translateCardCode(card3).at(0)+""+translateCardCode(card3).at(1)+","+translateCardCode(card4).at(0)+""+translateCardCode(card4).at(1)+","+translateCardCode(card5).at(0)+""+translateCardCode(card5).at(1)+"]"+"
\n"; + break; + default: round = "ERROR"; + } + if(myConfig->readConfigInt("LogInterval") == 0) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } + + } +} + +void Log::logFlipHoleCardsMsg(QString playerName, int card1, int card2, int cardsValueInt, QString showHas) { + + if (cardsValueInt != -1) { + + QString tempHandName = determineHandName(cardsValueInt); + + myW->textBrowser_Log->append(playerName+" "+showHas+" \""+tempHandName+"\""); + + if(myConfig->readConfigInt("LogOnOff")) { + //if write logfiles is enabled + + logFileStreamString += playerName+" "+showHas+" [ "+translateCardCode(card1).at(0)+""+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+""+translateCardCode(card2).at(1)+"] - "+tempHandName+"
\n"; + + if(myConfig->readConfigInt("LogInterval") == 0) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } + + } + } + else { + myW->textBrowser_Log->append(playerName+" "+showHas+" ["+translateCardCode(card1).at(0)+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+translateCardCode(card2).at(1)+"]"); + + if(myConfig->readConfigInt("LogOnOff")) { + //if write logfiles is enabled + + logFileStreamString += playerName+" "+showHas+" ["+translateCardCode(card1).at(0)+""+translateCardCode(card1).at(1)+","+translateCardCode(card2).at(0)+""+translateCardCode(card2).at(1)+"]"+"
\n"; + if(myConfig->readConfigInt("LogInterval") == 0) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } + } + } + +} + +void Log::logPlayerLeftMsg(QString playerName) { + + myW->textBrowser_Log->append( ""+playerName+" has left the game!"); + + if(myConfig->readConfigInt("LogOnOff")) { + + logFileStreamString += ""+playerName+" has left the game!
\n"; + + if(myConfig->readConfigInt("LogInterval") == 0) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } + } +} + +void Log::logNewGameAdminMsg(QString playerName) { + + myW->textBrowser_Log->append( ""+playerName+" is game admin now!"); + + if(myConfig->readConfigInt("LogOnOff")) { + + logFileStreamString += ""+playerName+" is game admin now!
\n"; + + if(myConfig->readConfigInt("LogInterval") == 0) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } + } +} + + +void Log::logPlayerWinGame(QString playerName, int gameID) { + + myW->textBrowser_Log->append( ""+playerName+" wins game " + QString::number(gameID,10) +"!
"); + + if(myConfig->readConfigInt("LogOnOff")) { + + logFileStreamString += "

"+playerName+" wins game " + QString::number(gameID,10) +"!
\n"; + + if(myConfig->readConfigInt("LogInterval") == 0) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } + } + +} + +QStringList Log::translateCardCode(int cardCode) { + + int value = cardCode%13; + int color = cardCode/13; + + QStringList cardString; + + switch (value) { + + case 0: cardString << "2"; + break; + case 1: cardString << "3"; + break; + case 2: cardString << "4"; + break; + case 3: cardString << "5"; + break; + case 4: cardString << "6"; + break; + case 5: cardString << "7"; + break; + case 6: cardString << "8"; + break; + case 7: cardString << "9"; + break; + case 8: cardString << "T"; + break; + case 9: cardString << "J"; + break; + case 10: cardString << "Q"; + break; + case 11: cardString << "K"; + break; + case 12: cardString << "A"; + break; + default: cardString << "ERROR"; + } + + switch (color) { + + case 0: cardString << "d"; + break; + case 1: cardString << "h"; + break; + case 2: cardString << "s"; + break; + case 3: cardString << "c"; + break; + default: cardString << "ERROR"; + } + + return cardString; +} + +QStringList Log::translateCardsValueCode(int cardsValueCode) { + + QStringList cardString; + + //erste Ziffer : Blattname + int firstPart = cardsValueCode/100000000; + //zweite und dritte Ziffer : Kicker, highest Card, usw. + int secondPart = cardsValueCode/1000000 - firstPart*100; + //vierte und fünfte Ziffer + int thirdPart = cardsValueCode/10000 - firstPart*10000 - secondPart*100; + // usw + int fourthPart = cardsValueCode/100 - firstPart*1000000 - secondPart*10000 - thirdPart*100; + // + int fifthPart = cardsValueCode - firstPart*100000000 - secondPart*1000000 - thirdPart*10000 - fourthPart*100; + // fuer highest Card + int fifthPartA = cardsValueCode/10 - firstPart*10000000 - secondPart*100000 - thirdPart*1000 - fourthPart*10; + int fifthPartB = cardsValueCode - firstPart*100000000 - secondPart*1000000 - thirdPart*10000 - fourthPart*100 - fifthPartA*10; + + + switch (firstPart) { + + // Royal Flush + case 9: cardString << "Royal Flush"; + break; + // Straight Flush + case 8: { + cardString << "Straight Flush, "; + switch(secondPart) { + case 11: cardString << "King high"; + break; + case 10: cardString << "Queen high"; + break; + case 9: cardString << "Jack high"; + break; + case 8: cardString << "Ten high"; + break; + case 7: cardString << "Nine high"; + break; + case 6: cardString << "Eight high"; + break; + case 5: cardString << "Seven high"; + break; + case 4: cardString << "Six high"; + break; + case 3: cardString << "Five high"; + break; + default: cardString << "ERROR"; + } + } + break; + // Four of a Kind + case 7: { + cardString << "Four of a Kind, "; + switch(secondPart) { + case 12: cardString << "Aces"; + break; + case 11: cardString << "Kings"; + break; + case 10: cardString << "Queens"; + break; + case 9: cardString << "Jacks"; + break; + case 8: cardString << "Tens"; + break; + case 7: cardString << "Nines"; + break; + case 6: cardString << "Eights"; + break; + case 5: cardString << "Sevens"; + break; + case 4: cardString << "Sixes"; + break; + case 3: cardString << "Fives"; + break; + case 2: cardString << "Fours"; + break; + case 1: cardString << "Threes"; + break; + case 0: cardString << "Deuces"; + break; + default: cardString << "ERROR"; + } + // Kicker + switch(thirdPart) { + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + } + break; + // Full House + case 6: { + cardString << "Full House, "; + //Drilling + switch(secondPart) { + case 12: cardString << "Aces full of "; + break; + case 11: cardString << "Kings full of "; + break; + case 10: cardString << "Queens full of "; + break; + case 9: cardString << "Jacks full of "; + break; + case 8: cardString << "Tens full of "; + break; + case 7: cardString << "Nines full of "; + break; + case 6: cardString << "Eights full of "; + break; + case 5: cardString << "Sevens full of "; + break; + case 4: cardString << "Sixes full of "; + break; + case 3: cardString << "Fives full of "; + break; + case 2: cardString << "Fours full of "; + break; + case 1: cardString << "Threes full of "; + break; + case 0: cardString << "Deuces full of "; + break; + default: cardString << "ERROR"; + } + //Pärchen + switch(thirdPart) { + case 12: cardString << "Aces"; + break; + case 11: cardString << "Kings"; + break; + case 10: cardString << "Queens"; + break; + case 9: cardString << "Jacks"; + break; + case 8: cardString << "Tens"; + break; + case 7: cardString << "Nines"; + break; + case 6: cardString << "Eights"; + break; + case 5: cardString << "Sevens"; + break; + case 4: cardString << "Sixes"; + break; + case 3: cardString << "Fives"; + break; + case 2: cardString << "Fours"; + break; + case 1: cardString << "Threes"; + break; + case 0: cardString << "Deuces"; + break; + default: cardString << "ERROR"; + } + } + break; + // Flush + case 5: { + cardString << "Flush, "; + //highest Card + switch(secondPart) { + case 12: cardString << "Ace high"; + break; + case 11: cardString << "King high"; + break; + case 10: cardString << "Queen high"; + break; + case 9: cardString << "Jack high"; + break; + case 8: cardString << "Ten high"; + break; + case 7: cardString << "Nine high"; + break; + case 6: cardString << "Eight high"; + break; + case 5: cardString << "Seven high"; + break; + case 4: cardString << "Six high"; + break; + default: cardString << "ERROR"; + } + // Kicker 1 + switch(thirdPart) { + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + //Kicker 2 + switch(fourthPart) { + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + //Kicker 3 + switch(fifthPartA) { + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + //Kicker 4 + switch(fifthPartB) { + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + } + break; + // Straight + case 4: { + cardString << "Straight, "; + switch(secondPart) { + case 12: cardString << "Ace high"; + break; + case 11: cardString << "King high"; + break; + case 10: cardString << "Queen high"; + break; + case 9: cardString << "Jack high"; + break; + case 8: cardString << "Ten high"; + break; + case 7: cardString << "Nine high"; + break; + case 6: cardString << "Eight high"; + break; + case 5: cardString << "Seven high"; + break; + case 4: cardString << "Six high"; + break; + case 3: cardString << "Five high"; + break; + default: cardString << "ERROR"; + } + } + break; + // Three of a Kind + case 3: { + cardString << "Three of a Kind, "; + switch(secondPart) { + case 12: cardString << "Aces"; + break; + case 11: cardString << "Kings"; + break; + case 10: cardString << "Queens"; + break; + case 9: cardString << "Jacks"; + break; + case 8: cardString << "Tens"; + break; + case 7: cardString << "Nines"; + break; + case 6: cardString << "Eights"; + break; + case 5: cardString << "Sevens"; + break; + case 4: cardString << "Sixes"; + break; + case 3: cardString << "Fives"; + break; + case 2: cardString << "Fours"; + break; + case 1: cardString << "Threes"; + break; + case 0: cardString << "Deuces"; + break; + default: cardString << "ERROR"; + } + //Kicker 1 + switch(thirdPart) { + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + //Kicker 2 + switch(fourthPart) { + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + } + break; + // Two Pairs + case 2: { + cardString << "Two Pairs, "; + // erster Pair + switch(secondPart) { + case 12: cardString << "Aces and "; + break; + case 11: cardString << "Kings and "; + break; + case 10: cardString << "Queens and "; + break; + case 9: cardString << "Jacks and "; + break; + case 8: cardString << "Tens and "; + break; + case 7: cardString << "Nines and "; + break; + case 6: cardString << "Eights and "; + break; + case 5: cardString << "Sevens and "; + break; + case 4: cardString << "Sixes and "; + break; + case 3: cardString << "Fives and "; + break; + case 2: cardString << "Fours and "; + break; + case 1: cardString << "Threes and "; + break; + case 0: cardString << "Deuces and "; + break; + default: cardString << "ERROR"; + } + // zweiter Pair + switch(thirdPart) { + case 12: cardString << "Aces"; + break; + case 11: cardString << "Kings"; + break; + case 10: cardString << "Queens"; + break; + case 9: cardString << "Jacks"; + break; + case 8: cardString << "Tens"; + break; + case 7: cardString << "Nines"; + break; + case 6: cardString << "Eights"; + break; + case 5: cardString << "Sevens"; + break; + case 4: cardString << "Sixes"; + break; + case 3: cardString << "Fives"; + break; + case 2: cardString << "Fours"; + break; + case 1: cardString << "Threes"; + break; + case 0: cardString << "Deuces"; + break; + default: cardString << "ERROR"; + } + //Kicker + switch(fourthPart) { + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + } + break; + // One Pair + case 1: { + cardString << "One Pair, "; + // Pair + switch(secondPart) { + case 12: cardString << "Aces"; + break; + case 11: cardString << "Kings"; + break; + case 10: cardString << "Queens"; + break; + case 9: cardString << "Jacks"; + break; + case 8: cardString << "Tens"; + break; + case 7: cardString << "Nines"; + break; + case 6: cardString << "Eights"; + break; + case 5: cardString << "Sevens"; + break; + case 4: cardString << "Sixes"; + break; + case 3: cardString << "Fives"; + break; + case 2: cardString << "Fours"; + break; + case 1: cardString << "Threes"; + break; + case 0: cardString << "Deuces"; + break; + default: cardString << "ERROR"; + } + // Kicker 1 + switch(thirdPart) { + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + //Kicker 2 + switch(fourthPart) { + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + //Kicker 3 + switch(fifthPart) { + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + } + break; + // Highest Card + case 0: { + cardString << "High Card, "; + // Kicker 1 + switch(secondPart) { + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuces"; + break; + default: cardString << "ERROR"; + } + // Kicker 2 + switch(thirdPart) { + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + //Kicker 3 + switch(fourthPart) { + case 12: cardString << "Ace"; + break; + case 11: cardString << "King"; + break; + case 10: cardString << "Queen"; + break; + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + //Kicker 4 + switch(fifthPartA) { + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + //Kicker 5 + switch(fifthPartB) { + case 9: cardString << "Jack"; + break; + case 8: cardString << "Ten"; + break; + case 7: cardString << "Nine"; + break; + case 6: cardString << "Eight"; + break; + case 5: cardString << "Seven"; + break; + case 4: cardString << "Six"; + break; + case 3: cardString << "Five"; + break; + case 2: cardString << "Four"; + break; + case 1: cardString << "Three"; + break; + case 0: cardString << "Deuce"; + break; + default: cardString << "ERROR"; + } + } + break; + default: cardString << "ERROR"; + + } + + return cardString; + +} + +QString Log::determineHandName(int myCardsValueInt) { + + list shownCardsValueInt; + list sameHandCardsValueInt; + bool different = false; + bool equal = false; + HandInterface *currentHand = myW->getSession().getCurrentGame()->getCurrentHand(); + PlayerListConstIterator it_c; + + // collect cardsValueInt of all players who will show their cards + for(it_c=currentHand->getActivePlayerList()->begin(); it_c!=currentHand->getActivePlayerList()->end(); it_c++) { + if( (*it_c)->getMyAction() != PLAYER_ACTION_FOLD) { + shownCardsValueInt.push_back( (*it_c)->getMyCardsValueInt()); + } + } + + // erase own cardsValueInt + list::iterator it; + for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { + if((*it) == myCardsValueInt) { + shownCardsValueInt.erase(it); + break; + } + } + + QString handName; + + switch(myCardsValueInt/100000000) { + // Royal Flush + case 9: { + handName = translateCardsValueCode(myCardsValueInt).at(0); + } + break; + // Straight Flush + case 8: { + handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); + } + break; + // Four of a kind + case 7: { + + handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); + + // same hand detection + for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { + if(((*it)/1000000) == (myCardsValueInt/1000000)) { + sameHandCardsValueInt.push_back(*it); + } + } + + // 1.same hands existing + if(!(sameHandCardsValueInt.empty())) { + // first kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/10000) == (myCardsValueInt/10000)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(2); + } + + } + + } + break; + // Full House + case 6: { + handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1)+translateCardsValueCode(myCardsValueInt).at(2); + } + break; + // Flush + case 5: { + + handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); + + // same hand detection + for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { + if(((*it)/1000000) == (myCardsValueInt/1000000)) { + sameHandCardsValueInt.push_back(*it); + } + } + + // 1.same hands existing + if(!(sameHandCardsValueInt.empty())) { + // first kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/10000) == (myCardsValueInt/10000)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", second card " + translateCardsValueCode(myCardsValueInt).at(2); + } + // 2.there are still same hands + if(equal) { + different = false; + equal = false; + // second kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/100) == (myCardsValueInt/100)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", third card " + translateCardsValueCode(myCardsValueInt).at(3); + } + // 3.there are still same hands + if(equal) { + different = false; + equal = false; + // third kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/10) == (myCardsValueInt/10)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fourth card " + translateCardsValueCode(myCardsValueInt).at(4); + } + // 4.there are still same hands + if(equal) { + different = false; + equal = false; + // third kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if((*it) == myCardsValueInt) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(5); + } + } + } + } + } + + } + break; + // Straight + case 4: { + handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); + } + break; + // Three of a kind + case 3: { + handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); + + // same hand detection + for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { + if(((*it)/1000000) == (myCardsValueInt/1000000)) { + sameHandCardsValueInt.push_back(*it); + } + } + + // 1.same hands existing + if(!(sameHandCardsValueInt.empty())) { + // first kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/10000) == (myCardsValueInt/10000)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fourth card " + translateCardsValueCode(myCardsValueInt).at(2); + } + // 2.there are still same hands + if(equal) { + different = false; + equal = false; + // second kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/100) == (myCardsValueInt/100)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(3); + } + } + } + + } + break; + // Two Pairs + case 2: { + + handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1)+translateCardsValueCode(myCardsValueInt).at(2); + + // same hand detection + for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { + if(((*it)/10000) == (myCardsValueInt/10000)) { + sameHandCardsValueInt.push_back(*it); + } + } + + // 1.same hands existing + if(!(sameHandCardsValueInt.empty())) { + // first kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/100) == (myCardsValueInt/100)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(3); + } + + } + + } + break; + // Pair + case 1: { + + handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); + + // same hand detection + for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { + if(((*it)/1000000) == (myCardsValueInt/1000000)) { + sameHandCardsValueInt.push_back(*it); + } + } + + // 1.same hands existing + if(!(sameHandCardsValueInt.empty())) { + // first kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/10000) == (myCardsValueInt/10000)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", third card " + translateCardsValueCode(myCardsValueInt).at(2); + } + // 2.there are still same hands + if(equal) { + different = false; + equal = false; + // second kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/100) == (myCardsValueInt/100)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fourth card " + translateCardsValueCode(myCardsValueInt).at(3); + } + // 3.there are still same hands + if(equal) { + different = false; + equal = false; + // third kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if((*it) == myCardsValueInt) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(4); + } + } + } + } + + } + break; + // highestCard + case 0: { + + handName = translateCardsValueCode(myCardsValueInt).at(0)+translateCardsValueCode(myCardsValueInt).at(1); + + // same hand detection + for(it = shownCardsValueInt.begin(); it != shownCardsValueInt.end(); it++) { + if(((*it)/1000000) == (myCardsValueInt/1000000)) { + sameHandCardsValueInt.push_back(*it); + } + } + + // 1.same hands existing + if(!(sameHandCardsValueInt.empty())) { + // first kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/10000) == (myCardsValueInt/10000)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", second card " + translateCardsValueCode(myCardsValueInt).at(2); + } + // 2.there are still same hands + if(equal) { + different = false; + equal = false; + // second kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/100) == (myCardsValueInt/100)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", third card " + translateCardsValueCode(myCardsValueInt).at(3); + } + // 3.there are still same hands + if(equal) { + different = false; + equal = false; + // third kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if(((*it)/10) == (myCardsValueInt/10)) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fourth card " + translateCardsValueCode(myCardsValueInt).at(4); + } + // 4.there are still same hands + if(equal) { + different = false; + equal = false; + // third kicker? + for(it = sameHandCardsValueInt.begin(); it != sameHandCardsValueInt.end(); ) { + if((*it) == myCardsValueInt) { + equal = true; + it++; + } else { + different = true; + it = sameHandCardsValueInt.erase(it); + } + } + if(different) { + handName += ", fifth card " + translateCardsValueCode(myCardsValueInt).at(5); + } + } + } + } + } + + } + break; + default: {} + } + + return handName; + +} + +void Log::writeLogFileStream(QString streamString) { + + if(myLogFile) { + if(myLogFile->open( QIODevice::ReadWrite )) { + QTextStream stream( myLogFile ); + stream.readAll(); + stream << streamString; + myLogFile->close(); + } + else { cout << "Could not open log-file to write log-messages!" << endl; } + } + else { cout << "Could not find log-file to write log-messages!" << endl; } +} + +void Log::flushLogAtHand() { + + if(myConfig->readConfigInt("LogInterval") < 2) { +// write for log after every action and after every hand + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + } +} + +void Log::flushLogAtGame(int gameID) { +// write for log after every game + if(gameID > lastGameID) { + writeLogFileStream(logFileStreamString); + logFileStreamString = ""; + lastGameID = gameID; + } +} diff --git a/src/gui/qt/gametable/log/log.h b/src/gui/qt/gametable/log/log.h new file mode 100755 index 00000000..54cbb5e8 --- /dev/null +++ b/src/gui/qt/gametable/log/log.h @@ -0,0 +1,93 @@ +/*************************************************************************** + * Copyright (C) 2006 by FThauer FHammer * + * f.thauer@web.de * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#ifndef LOG_H +#define LOG_H + +#include + +#include "configfile.h" + + +#include + +class gameTableImpl; + + +class Log : public QObject +{ +Q_OBJECT + +public: + Log(gameTableImpl*, ConfigFile *c); + + ~Log(); + +public slots: + void logPlayerActionMsg(QString playerName, int action, int setValue); + void logNewGameHandMsg(int gameID, int handID); + void logNewBlindsSetsMsg(int sbSet, int bbSet, QString sbName, QString bbName); + void logPlayerWinsMsg(QString playerName, int pot, bool main); + void logPlayerSitsOut(QString playerName); + void logDealBoardCardsMsg(int roundID, int card1, int card2, int card3, int card4 = -1, int card5 = -1); + void logFlipHoleCardsMsg(QString playerName, int card1, int card2, int cardsValueInt = -1, QString showHas = "shows"); + void logPlayerLeftMsg(QString playerName); + void logNewGameAdminMsg(QString playerName); + void logPlayerWinGame(QString playerName, int gameID); + void flushLogAtGame(int gameID); + void flushLogAtHand(); + + +public: + QStringList translateCardsValueCode(int cardsValueCode); + QStringList translateCardCode(int cardCode); + QString determineHandName(int cardsValueInt); + + void writeLogFileStream(QString string); + +signals: + void signalLogPlayerActionMsg(QString playerName, int action, int setValue); + void signalLogNewGameHandMsg(int gameID, int handID); + void signalLogNewBlindsSetsMsg(int sbSet, int bbSet, QString sbName, QString bbName); + void signalLogPlayerWinsMsg(QString playerName, int pot, bool main); + void signalLogPlayerSitsOut(QString playerName); + void signalLogDealBoardCardsMsg(int roundID, int card1, int card2, int card3, int card4 = -1, int card5 = -1); + void signalLogFlipHoleCardsMsg(QString playerName, int card1, int card2, int cardsValueInt = -1, QString showHas = "shows"); + void signalLogPlayerLeftMsg(QString playerName); + void signalLogNewGameAdminMsg(QString playerName); + void signalLogPlayerWinGame(QString playerName, int gameID); + void signalFlushLogAtGame(int gameID); + void signalFlushLogAtHand(); + + +private: + int lastGameID; + + gameTableImpl *myW; + ConfigFile *myConfig; + QTextStream stream; + QDir *myLogDir; + QFile *myLogFile; + QString logFileStreamString; + QString myAppDataPath; + +friend class GuiWrapper; +}; + +#endif diff --git a/src/gui/qt/gametable/myavatarlabel.cpp b/src/gui/qt/gametable/myavatarlabel.cpp new file mode 100644 index 00000000..ffbe3bfe --- /dev/null +++ b/src/gui/qt/gametable/myavatarlabel.cpp @@ -0,0 +1,40 @@ +// +// C++ Implementation: mycardspixmaplabel +// +// Description: +// +// +// Author: FThauer FHammer , (C) 2007 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#include "mysetlabel.h" + +#include "gametableimpl.h" + +using namespace std; + +MyAvatarLabel::MyAvatarLabel(QGroupBox* parent) + : QLabel(parent) +{ + + myContextMenu = new QMenu; + myContextMenu->addAction(tr("Vote for kick this user")); + +} + + +MyAvatarLabel::~MyAvatarLabel() +{ +} + +void MyAvatarLabel::contextMenuEvent ( QContextMenuEvent * event ) { + +// showContextMenu(event->globalPos()); +} + +void MyAvatarLabel::showContextMenu(const QPoint &pos) { + +// myContextMenu->popup(pos); +} diff --git a/src/gui/qt/gametable/myavatarlabel.h b/src/gui/qt/gametable/myavatarlabel.h new file mode 100644 index 00000000..70ab5e20 --- /dev/null +++ b/src/gui/qt/gametable/myavatarlabel.h @@ -0,0 +1,45 @@ +// +// C++ Interface: mycardspixmaplabel +// +// Description: +// +// +// Author: FThauer FHammer , (C) 2007 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#ifndef MYAVATARLABEL_H +#define MYAVATARLABEL_H + +#include + +#include +#include + +class gameTableImpl; + +class MyAvatarLabel : public QLabel +{ +Q_OBJECT +public: + MyAvatarLabel(QGroupBox*); + + ~MyAvatarLabel(); + + + void setMyW ( gameTableImpl* theValue ) { myW = theValue; } + + void contextMenuEvent ( QContextMenuEvent * event ); + +public slots: + + void showContextMenu(const QPoint &pos); + +private: + + gameTableImpl *myW; + QMenu *myContextMenu; +}; + +#endif diff --git a/src/gui/qt/gametable/mycardspixmaplabel.cpp b/src/gui/qt/gametable/mycardspixmaplabel.cpp new file mode 100755 index 00000000..f07c93cc --- /dev/null +++ b/src/gui/qt/gametable/mycardspixmaplabel.cpp @@ -0,0 +1,232 @@ +// +// C++ Implementation: mycardspixmaplabel +// +// Description: +// +// +// Author: FThauer FHammer , (C) 2007 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#include "mycardspixmaplabel.h" +#include "gametableimpl.h" +// using namespace std; + +MyCardsPixmapLabel::MyCardsPixmapLabel(QFrame* parent) + : QLabel(parent), myW(NULL) +{ + + this->setMouseTracking(TRUE); + + fadeOutAction = FALSE; + flipCardsAction1 = FALSE; + flipCardsAction2 = FALSE; + + mousePress = FALSE; + fastFlipCardsFront = FALSE; + +// rotationIntervall = 0.03; + + isFlipside = FALSE; + + fadeOutTimer = new QTimer; + connect(fadeOutTimer, SIGNAL(timeout()), this, SLOT(nextFadeOutFrame())); + flipCardsTimer = new QTimer; + connect(flipCardsTimer, SIGNAL(timeout()), this, SLOT(nextFlipCardsFrame())); + + connect(this, SIGNAL(signalFastFlipCards(bool)), this, SLOT(fastFlipCards(bool))); +} + + +MyCardsPixmapLabel::~MyCardsPixmapLabel() +{ +} + +void MyCardsPixmapLabel::startFadeOut(int speed) { + + + frameOpacity = 0.0; + + if(speed <= 4) { opacityRaiseInterval = 0.01; } + if(speed > 4 && speed <= 7) { opacityRaiseInterval = 0.02; } + if(speed > 7 && speed <= 10) { opacityRaiseInterval = 0.04; } + + if(speed != 11) { + fadeOutAction = TRUE; + frameOpacity = 0.0; + fadeOutTimer->start(40); + } + +} + + +void MyCardsPixmapLabel::nextFadeOutFrame() { + + if (frameOpacity < 0.75) { + frameOpacity += opacityRaiseInterval; + update(); + } + else { + + fadeOutTimer->stop(); +// fadeOutAction = FALSE; + } + +} + +void MyCardsPixmapLabel::startFlipCards(int speed, const QPixmap &frontPix, const QPixmap &flipsidePix) { + + stopFlipCards = FALSE; + + QLabel::setPixmap(frontPix); + + frameFlipCardsAction1Size = 1.0; + frameFlipCardsAction2Size = 0.0; + + front = frontPix.scaled(width(), height(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);; + flipside = flipsidePix.scaled(width(), height(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);; + + if(speed <= 4) { flipCardsScaleIntervall = 0.1; } + if(speed > 4 && speed <= 6) { flipCardsScaleIntervall = 0.20; } + if(speed > 6 && speed <= 8) { flipCardsScaleIntervall = 0.25; } + if(speed > 8 && speed <= 10) { flipCardsScaleIntervall = 0.5; } +// + + if(speed != 11) { + flipCardsAction1 = TRUE; + flipCardsTimer->start(40); + } + +} + +void MyCardsPixmapLabel::stopFlipCardsAnimation() { + + flipCardsTimer->stop(); + flipCardsAction1 = FALSE; + flipCardsAction2 = FALSE; + stopFlipCards = TRUE; + update(); +} + +void MyCardsPixmapLabel::nextFlipCardsFrame() { + + if (frameFlipCardsAction1Size > 0.1 ) { + //erst flipside verkleinern + frameFlipCardsAction1Size -= flipCardsScaleIntervall; + update(); + } + else { + if(flipCardsAction1) { + flipCardsAction1 = FALSE; + flipCardsAction2 = TRUE; + } + else { + //dann front vergrößern + if (frameFlipCardsAction2Size < 0.9 ) { + + frameFlipCardsAction2Size += flipCardsScaleIntervall; + update(); + } + else { + flipCardsAction2 = FALSE; + flipCardsTimer->stop(); + } + + } + } +} + +void MyCardsPixmapLabel::setPixmap(const QPixmap &pic, const bool flipsideIs) { + + QLabel::setPixmap(pic); + isFlipside = flipsideIs; + +} + +void MyCardsPixmapLabel::setFrontPixmap ( const QPixmap &pic ) { + + myHiddenFront = pic.scaled(width(), height(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);; +} + +void MyCardsPixmapLabel::paintEvent(QPaintEvent * event) { + + if (!(flipCardsAction1 || flipCardsAction2)) { + QLabel::paintEvent(event); + } + + if (fadeOutAction) { + + QPainter painter(this); +// painter.setPen(QColor(74,131,83)); + painter.setBrush(QColor(74,131,83)); +// painter.setBrush(palette().color(QPalette::Background)); + // painter.setBrush(QColor(0,0,0)); + + painter.setOpacity(frameOpacity); + // painter.drawRect(this->geometry()); + if(objectName().contains("pixmapLabel_cardBoard")) + painter.drawRect(-1,-1,80,115); + else + painter.drawRect(-1,-1,81,112); + + } + + if (flipCardsAction1) { + QPainter painter2(this); + QPointF center(flipside.width()/2.0, flipside.height()/2.0); + painter2.translate(center); + painter2.scale(frameFlipCardsAction1Size ,1); + painter2.translate(-center); + painter2.drawPixmap(0,0, flipside); + } + + if (flipCardsAction2) { + QPainter painter3(this); + QPointF center(front.width()/2.0, front.height()/2.0); + painter3.translate(center); + painter3.scale(frameFlipCardsAction2Size ,1); + painter3.translate(-center); + painter3.drawPixmap(0,0, front); + } + + if (fastFlipCardsFront && !fadeOutAction && !flipCardsAction1 && !flipCardsAction2) { + if(objectName().contains("pixmapLabel_card0")) { + QPainter painter4(this); + painter4.drawPixmap(0,0, myHiddenFront); + } + } +} + +void MyCardsPixmapLabel::fastFlipCards(bool front){ + + if (front) { + fastFlipCardsFront = TRUE; + update(); + } + else { + fastFlipCardsFront = FALSE; + update(); + } +} + +void MyCardsPixmapLabel::mousePressEvent(QMouseEvent * event) { + + if (!mousePress && objectName().contains("pixmapLabel_card0")) { + mousePress = TRUE; + myW->mouseOverFlipCards(TRUE); + + } + +QLabel::mousePressEvent(event); +} + +void MyCardsPixmapLabel::mouseReleaseEvent(QMouseEvent * event) { + + if (mousePress && objectName().contains("pixmapLabel_card0")) { + mousePress = FALSE; + myW->mouseOverFlipCards(FALSE); + } + +QLabel::mouseReleaseEvent(event); +} diff --git a/src/gui/qt/gametable/mycardspixmaplabel.h b/src/gui/qt/gametable/mycardspixmaplabel.h new file mode 100755 index 00000000..47d4cff6 --- /dev/null +++ b/src/gui/qt/gametable/mycardspixmaplabel.h @@ -0,0 +1,93 @@ +// +// C++ Interface: mycardspixmaplabel +// +// Description: +// +// +// Author: FThauer FHammer , (C) 2007 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#ifndef MYCARDSPIXMAPLABEL_H +#define MYCARDSPIXMAPLABEL_H + +#include + +#include +#include + +class gameTableImpl; + +class MyCardsPixmapLabel : public QLabel +{ +Q_OBJECT +public: + MyCardsPixmapLabel(QFrame*); + + ~MyCardsPixmapLabel(); + + void setMyW ( gameTableImpl* theValue ) { myW = theValue; } + + void setIsFlipside(bool theValue){ isFlipside = theValue;} + bool getIsFlipside() const{ return isFlipside;} + + void setFadeOutAction(bool theValue) { fadeOutAction = theValue; } + bool getFadeOutAction() const { return fadeOutAction;} + + void startFadeOut(int); + void startFlipCards(int, const QPixmap & , const QPixmap &); + void stopFlipCardsAnimation(); + + void paintEvent(QPaintEvent * event); + +signals: + void signalFastFlipCards(bool); + + +public slots: + + void setPixmap ( const QPixmap &, const bool ); + void setFrontPixmap ( const QPixmap &); + + void nextFadeOutFrame(); + void nextFlipCardsFrame(); + + void fastFlipCards(bool front); + +// void mouseMoveEvent ( QMouseEvent *); + + void mousePressEvent ( QMouseEvent *); + void mouseReleaseEvent ( QMouseEvent *); + +private: + + gameTableImpl* myW; + + qreal frameOpacity; + qreal opacityRaiseInterval; + + qreal flipCardsScaleIntervall; + qreal frameFlipCardsAction1Size; + qreal frameFlipCardsAction2Size; + + QTimer *fadeOutTimer; + QTimer *flipCardsTimer; + + bool isFlipside; + bool fadeOutAction; + bool flipCardsAction1; + bool flipCardsAction2; + bool stopFlipCards; + + bool mousePress; + bool fastFlipCardsFront; + + QPixmap front; + QPixmap flipside; + QPixmap myHiddenFront; + +friend class gameTableImpl; +}; + +#endif diff --git a/src/gui/qt/gametable/mylefttabwidget.cpp b/src/gui/qt/gametable/mylefttabwidget.cpp new file mode 100755 index 00000000..46c6b76a --- /dev/null +++ b/src/gui/qt/gametable/mylefttabwidget.cpp @@ -0,0 +1,73 @@ +// +// C++ Implementation: MyLeftTabWidget +// +// Description: +// +// +// Author: FThauer FHammer , (C) 2007 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#include "mylefttabwidget.h" + +// using namespace std; + +MyLeftTabWidget::MyLeftTabWidget(QGroupBox *parent) + : QTabWidget(parent), chatBlinkTimer(0), myTabBar(0) +{ +// fadeOutTimer = new QTimer; +// connect(flipCardsTimer, SIGNAL(timeout()), this, SLOT(nextFlipCardsFrame())); + myTabBar = this->tabBar(); + + chatBlinkTimer = new QTimer; + connect(chatBlinkTimer, SIGNAL(timeout()), this, SLOT( blinkChatTab() )); + + this->setStyleSheet("QTabWidget::pane { border: 2px solid #286400; border-radius: 2px; background-color: #145300; } QTabWidget::tab-bar { left: 5px; } "); + +#ifdef _WIN32 + QString font1String("font-family: \"Arial\";"); + int paddingTop = 1; + int paddingSide = 7; +#else + #ifdef __APPLE__ + QString font1String("font-family: \"Lucida Grande\";"); + int paddingTop = 1; + int paddingSide = 9; + #else + QString font1String("font-family: \"Nimbus Sans L\";"); + int paddingTop = 0; + int paddingSide = 9; + #endif +#endif + + QTabBar *myTabBar = this->tabBar(); + + myTabBar->setStyleSheet("QTabBar::tab{ "+ font1String +" font-size: 11px; color: #99D500; background-color: #145300; border: 2px solid #286400; border-bottom-color: #286400; border-top-left-radius: 4px; border-top-right-radius: 4px; padding-top: "+QString::number(paddingTop,10)+"px; padding-left:"+QString::number(paddingSide,10)+"px; padding-right:"+QString::number(paddingSide,10)+"px;} QTabBar::tab:selected, QTabBar::tab:hover { background-color: #145300; padding-top: "+QString::number(paddingTop,10)+"px; padding-left:"+QString::number(paddingSide,10)+"px; padding-right:"+QString::number(paddingSide,10)+"px;} QTabBar::tab:selected { border-color: #286400; border-bottom-color: #145300; padding-top: "+QString::number(paddingTop,10)+"px; padding-left:"+QString::number(paddingSide,10)+"px; padding-right:"+QString::number(paddingSide,10)+"px;} QTabBar::tab:!selected { margin-top: 2px; padding-top: "+QString::number(paddingTop,10)+"px; padding-left:"+QString::number(paddingSide,10)+"px; padding-right:"+QString::number(paddingSide,10)+"px;} QTabBar::tab:selected { margin-left: -4px; margin-right: -4px; padding-top: "+QString::number(paddingTop,10)+"px; padding-left:"+QString::number(paddingSide,10)+"px; padding-right:"+QString::number(paddingSide,10)+"px;} QTabBar::tab:first:selected { margin-left: 0; padding-top: "+QString::number(paddingTop,10)+"px; padding-left:"+QString::number(paddingSide,10)+"px; padding-right:"+QString::number(paddingSide,10)+"px;} QTabBar::tab:last:selected { margin-right: 0; padding-top: "+QString::number(paddingTop,10)+"px; padding-left:"+QString::number(paddingSide,10)+"px; padding-right:"+QString::number(paddingSide,10)+"px;} QTabBar::tab:only-one { margin: 0; } QTabBar::tab:disabled { font-size: 11px; font-weight: 900; color: #144D03; background-color: #144D03; border-left-color: #255704; border-right-color: #255704; border-top-color: #255704; }"); + +} + + +MyLeftTabWidget::~MyLeftTabWidget() +{ +} + +void MyLeftTabWidget::startBlinkChatTab() { chatBlinkTimer->start(500); } +void MyLeftTabWidget::stopBlinkChatTab() { chatBlinkTimer->stop(); } +void MyLeftTabWidget::showDefaultChatTab() { myTabBar->setTabTextColor(1, QColor(240,240,240)); } +void MyLeftTabWidget::disableTab(int tabIndex, bool yesNo) { myTabBar->setTabEnabled(tabIndex, !yesNo); } + +void MyLeftTabWidget::blinkChatTab() { + + if(myTabBar->tabTextColor(1).red() == 240) myTabBar->setTabTextColor(1, QColor(113,162,0)); + else myTabBar->setTabTextColor(1, QColor(240,240,240)); +} + +void MyLeftTabWidget::paintEvent(QPaintEvent * event) { + + QTabWidget::paintEvent(event); + +} + + + diff --git a/src/gui/qt/gametable/mylefttabwidget.h b/src/gui/qt/gametable/mylefttabwidget.h new file mode 100755 index 00000000..1737ae04 --- /dev/null +++ b/src/gui/qt/gametable/mylefttabwidget.h @@ -0,0 +1,45 @@ +// +// C++ Interface: MyLeftTabWidget +// +// Description: +// +// +// Author: FThauer FHammer , (C) 2007 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#ifndef MYLEFTTABWIDGET_H +#define MYLEFTTABWIDGET_H + +#include +#include + + +class MyLeftTabWidget : public QTabWidget +{ +Q_OBJECT +public: + MyLeftTabWidget(QGroupBox*); + + ~MyLeftTabWidget(); + + + void paintEvent(QPaintEvent * event); + void startBlinkChatTab(); + void stopBlinkChatTab(); + void showDefaultChatTab(); + void disableTab(int tabIndex, bool yesNO); + +public slots: + + void blinkChatTab(); + +private: + + QTimer *chatBlinkTimer; + QTabBar *myTabBar; + +}; + +#endif diff --git a/src/gui/qt/gametable/myrighttabwidget.cpp b/src/gui/qt/gametable/myrighttabwidget.cpp new file mode 100755 index 00000000..32335e7e --- /dev/null +++ b/src/gui/qt/gametable/myrighttabwidget.cpp @@ -0,0 +1,72 @@ +// +// C++ Implementation: MyRightTabWidget +// +// Description: +// +// +// Author: FThauer FHammer , (C) 2007 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#include "myrighttabwidget.h" +#include + +using namespace std; + +MyRightTabWidget::MyRightTabWidget(QGroupBox *parent) + : QTabWidget(parent), myTabBar(0) +{ +// fadeOutTimer = new QTimer; +// connect(flipCardsTimer, SIGNAL(timeout()), this, SLOT(nextFlipCardsFrame())); + myTabBar = this->tabBar(); + +// chatBlinkTimer = new QTimer; +// connect(chatBlinkTimer, SIGNAL(timeout()), this, SLOT( blinkChatTab() )); + + this->setStyleSheet("QTabWidget::pane { border: 2px solid #286400; border-radius: 2px; background-color: #145300; } QTabWidget::tab-bar { left: 5px; } "); + +#ifdef _WIN32 + QString font1String("font-family: \"Arial\";"); + int paddingTop = 1; + int paddingSide = 7; +#else + #ifdef __APPLE__ + QString font1String("font-family: \"Lucida Grande\";"); + int paddingTop = 1; + int paddingSide = 9; + #else + QString font1String("font-family: \"Nimbus Sans L\";"); + int paddingTop = 0; + int paddingSide = 9; + #endif +#endif + + QTabBar *myTabBar = this->tabBar(); + + myTabBar->setStyleSheet("QTabBar::tab{ "+ font1String +" font-size: 11px; color: #99D500; background-color: #145300; border: 2px solid #286400; border-bottom-color: #286400; border-top-left-radius: 4px; border-top-right-radius: 4px; padding-top: "+QString::number(paddingTop,10)+"px; padding-left:"+QString::number(paddingSide,10)+"px; padding-right:"+QString::number(paddingSide,10)+"px;} QTabBar::tab:selected, QTabBar::tab:hover { background-color: #145300; padding-top: "+QString::number(paddingTop,10)+"px; padding-left:"+QString::number(paddingSide,10)+"px; padding-right:"+QString::number(paddingSide,10)+"px;} QTabBar::tab:selected { border-color: #286400; border-bottom-color: #145300; padding-top: "+QString::number(paddingTop,10)+"px; padding-left:"+QString::number(paddingSide,10)+"px; padding-right:"+QString::number(paddingSide,10)+"px;} QTabBar::tab:!selected { margin-top: 2px; padding-top: "+QString::number(paddingTop,10)+"px; padding-left:"+QString::number(paddingSide,10)+"px; padding-right:"+QString::number(paddingSide,10)+"px;} QTabBar::tab:selected { margin-left: -4px; margin-right: -4px; padding-top: "+QString::number(paddingTop,10)+"px; padding-left:"+QString::number(paddingSide,10)+"px; padding-right:"+QString::number(paddingSide,10)+"px;} QTabBar::tab:first:selected { margin-left: 0; padding-top: "+QString::number(paddingTop,10)+"px; padding-left:"+QString::number(paddingSide,10)+"px; padding-right:"+QString::number(paddingSide,10)+"px;} QTabBar::tab:last:selected { margin-right: 0; padding-top: "+QString::number(paddingTop,10)+"px; padding-left:"+QString::number(paddingSide,10)+"px; padding-right:"+QString::number(paddingSide,10)+"px;} QTabBar::tab:only-one { margin: 0; } QTabBar::tab:disabled { font-size: 11px; font-weight: 900; color: #144D03; background-color: #144D03; border-left-color: #255704; border-right-color: #255704; border-top-color: #255704; }"); + +} + +MyRightTabWidget::~MyRightTabWidget() +{ +} + +// // void MyRightTabWidget::startBlinkChatTab() { chatBlinkTimer->start(500); } +// void MyRightTabWidget::stopBlinkChatTab() { chatBlinkTimer->stop(); } +// void MyRightTabWidget::showDefaultChatTab() { myTabBar->setTabTextColor(1, QColor(240,240,240)); } + +// void MyRightTabWidget::blinkChatTab() { +// +// if(myTabBar->tabTextColor(1).red() == 240) myTabBar->setTabTextColor(1, QColor(113,162,0)); +// else myTabBar->setTabTextColor(1, QColor(240,240,240)); +// } + +void MyRightTabWidget::paintEvent(QPaintEvent * event) { + + QTabWidget::paintEvent(event); + +} + + + diff --git a/src/gui/qt/gametable/myrighttabwidget.h b/src/gui/qt/gametable/myrighttabwidget.h new file mode 100755 index 00000000..f0cf4a30 --- /dev/null +++ b/src/gui/qt/gametable/myrighttabwidget.h @@ -0,0 +1,43 @@ +// +// C++ Interface: MyRightTabWidget +// +// Description: +// +// +// Author: FThauer FHammer , (C) 2007 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#ifndef MYRIGHTTABWIDGET_H +#define MYRIGHTTABWIDGET_H + +#include +#include + +class MyRightTabWidget : public QTabWidget +{ +Q_OBJECT +public: + MyRightTabWidget(QGroupBox*); + + ~MyRightTabWidget(); + + + void paintEvent(QPaintEvent * event); +// void startBlinkChatTab(); +// void stopBlinkChatTab(); +// void showDefaultChatTab(); + +public slots: + +// void blinkChatTab(); + +private: + +// QTimer *chatBlinkTimer; + QTabBar *myTabBar; + +}; + +#endif diff --git a/src/gui/qt/gametable/mysetlabel.cpp b/src/gui/qt/gametable/mysetlabel.cpp new file mode 100755 index 00000000..ca2705bd --- /dev/null +++ b/src/gui/qt/gametable/mysetlabel.cpp @@ -0,0 +1,127 @@ +// +// C++ Implementation: mycardspixmaplabel +// +// Description: +// +// +// Author: FThauer FHammer , (C) 2007 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#include "mysetlabel.h" + +#include "gametableimpl.h" + +using namespace std; + +MySetLabel::MySetLabel(QGroupBox* parent) + : QLabel(parent), timeOutAnimation(FALSE), timeOutValue(0), timeOutFrame(0), waitFrames(0), timerIntervall(0), isBeep(0), isBeepPlayed(0) +{ + + timeOutAnimationTimer = new QTimer; + + connect(timeOutAnimationTimer, SIGNAL(timeout()), this, SLOT(nextTimeOutAnimationFrame())); +} + + +MySetLabel::~MySetLabel() +{ +} + +void MySetLabel::startTimeOutAnimation(int secs, bool beep) { + + isBeepPlayed = FALSE; + isBeep = beep; + + timeOutValue = secs; + timeOutFrame = 1; + timeOutAnimationWidth = 118; + + int preTimerIntervall = ((timeOutValue-3) * 1000)/timeOutAnimationWidth; + + timerIntervall = preTimerIntervall; + + //save gfx ressources and never play more the 10 pps + while(timerIntervall < 100) { + if(secs <= 9 && secs >= 6) { + //fix inaccuracies caused by integer division + timerIntervall = timerIntervall + preTimerIntervall + 5; + } + else { + timerIntervall = timerIntervall + preTimerIntervall; + } + } + + waitFrames = 3000/timerIntervall; + + //start the real timer + realTimer.reset(); + realTimer.start(); + +// std::cout << timerIntervall << endl; + timeOutAnimation = TRUE; + timeOutAnimationTimer->start(timerIntervall); +} + +void MySetLabel::startTimeOutAnimationNow() { + + timeOutAnimation = TRUE; + timeOutAnimationTimer->start(83); + +} + +void MySetLabel::stopTimeOutAnimation() { + +// timeOutAnimationKickOnTimer->stop(); + timeOutAnimationTimer->stop(); + timeOutAnimation = FALSE; + update(); +} + +void MySetLabel::nextTimeOutAnimationFrame() { + + if(timeOutAnimationWidth >=0) { + if(timeOutFrame > waitFrames) { + //play beep after waitFrames one time + if(isBeep && !isBeepPlayed) { + myW->getMySDLPlayer()->playSound("yourturn",0); + isBeepPlayed = TRUE; + } + //save gfx ressources and never play more the 10 pps + unsigned int realTimerValue = realTimer.elapsed().total_milliseconds(); + timeOutAnimationWidth = 118-(((realTimerValue-3000)*118)/((timeOutValue-3)*1000)); + + } + timeOutFrame++; + update(); + } + else { + stopTimeOutAnimation(); + // no callback is called here. + // the server initiates any action required. + } +} + + +void MySetLabel::paintEvent(QPaintEvent * event) { + + if(!timeOutAnimation || timeOutFrame <= waitFrames) { + QLabel::paintEvent(event); + } + + if(timeOutAnimation && timeOutFrame > waitFrames) { + + QPainter painter(this); + + QLinearGradient linearGrad(QPointF(0, 10), QPointF(113, 10)); + linearGrad.setColorAt(0, Qt::red); + linearGrad.setColorAt(0.5, Qt::yellow); + linearGrad.setColorAt(1, Qt::green); + + painter.setBrush(linearGrad); + + painter.setPen(QColor(0,0,0)); + painter.drawRect(0,6,timeOutAnimationWidth-1,8); + } +} diff --git a/src/gui/qt/gametable/mysetlabel.h b/src/gui/qt/gametable/mysetlabel.h new file mode 100644 index 00000000..b7e67683 --- /dev/null +++ b/src/gui/qt/gametable/mysetlabel.h @@ -0,0 +1,70 @@ +// +// C++ Interface: mycardspixmaplabel +// +// Description: +// +// +// Author: FThauer FHammer , (C) 2007 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#ifndef MYSETLABEL_H +#define MYSETLABEL_H + +#include + +#include +#include +#include +#include "sdlplayer.h" + +class gameTableImpl; + +class MySetLabel : public QLabel +{ +Q_OBJECT +public: + MySetLabel(QGroupBox*); + + ~MySetLabel(); + + + void setMyW ( gameTableImpl* theValue ) { myW = theValue; } + + void startTimeOutAnimation(int secs, bool beep); + void stopTimeOutAnimation(); + + void paintEvent(QPaintEvent * event); + + +public slots: + void startTimeOutAnimationNow(); + void nextTimeOutAnimationFrame(); + + +private: + + gameTableImpl *myW; + QTimer *timeOutAnimationTimer; + QTimer *timeOutAnimationKickOnTimer; + +// boost::shared_ptr mySDLPlayer; + + boost::timers::portable::microsec_timer realTimer; + + bool timeOutAnimation; + + int timeOutAnimationWidth; + int timeOutValue; + int timeOutFrame; + int waitFrames; + int decreaseWidthIntervall; + int timerIntervall; + bool isBeep; + bool isBeepPlayed; + + +}; + +#endif diff --git a/src/gui/qt/gametable/mystatuslabel.cpp b/src/gui/qt/gametable/mystatuslabel.cpp new file mode 100755 index 00000000..d66ce0e7 --- /dev/null +++ b/src/gui/qt/gametable/mystatuslabel.cpp @@ -0,0 +1,48 @@ +// +// C++ Implementation: mycardspixmaplabel +// +// Description: +// +// +// Author: FThauer FHammer , (C) 2007 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#include "mysetlabel.h" + +#include "gametableimpl.h" + +using namespace std; + +MyStatusLabel::MyStatusLabel(QFrame* parent) + : QLabel(parent) { + + mousePress = FALSE; + +} + +MyStatusLabel::~MyStatusLabel() +{ +} + +void MyStatusLabel::mousePressEvent(QMouseEvent * event) { + + if (!mousePress && objectName().contains("textLabel_Status0")) { + mousePress = TRUE; + myW->mouseOverFlipCards(TRUE); + + } + + QLabel::mousePressEvent(event); +} + +void MyStatusLabel::mouseReleaseEvent(QMouseEvent * event) { + + if (mousePress && objectName().contains("textLabel_Status0")) { + mousePress = FALSE; + myW->mouseOverFlipCards(FALSE); + } + + QLabel::mouseReleaseEvent(event); +} diff --git a/src/gui/qt/gametable/mystatuslabel.h b/src/gui/qt/gametable/mystatuslabel.h new file mode 100755 index 00000000..c7114208 --- /dev/null +++ b/src/gui/qt/gametable/mystatuslabel.h @@ -0,0 +1,44 @@ +// +// C++ Interface: mycardspixmaplabel +// +// Description: +// +// +// Author: FThauer FHammer , (C) 2007 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#ifndef MYSTATUSLABEL_H +#define MYSTATUSLABEL_H + +#include + +#include +#include + +class gameTableImpl; + +class MyStatusLabel : public QLabel +{ +Q_OBJECT +public: + MyStatusLabel(QFrame*); + + ~MyStatusLabel(); + + + void setMyW ( gameTableImpl* theValue ) { myW = theValue; } + + void mousePressEvent ( QMouseEvent *); + void mouseReleaseEvent ( QMouseEvent *); + + +private: + + gameTableImpl *myW; + bool mousePress; + +}; + +#endif diff --git a/src/gui/qt/gametable/startsplash/startsplash.cpp b/src/gui/qt/gametable/startsplash/startsplash.cpp new file mode 100755 index 00000000..9b5fa0a0 --- /dev/null +++ b/src/gui/qt/gametable/startsplash/startsplash.cpp @@ -0,0 +1,282 @@ +/*************************************************************************** + * Copyright (C) 2006 by FThauer FHammer * + * f.thauer@web.de * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#include "startsplash.h" + +#include "configfile.h" +#include "gametableimpl.h" + +StartSplash::StartSplash(gameTableImpl *parent, ConfigFile *c) + : QSplashScreen(parent), myW(parent), myConfig(c) +{ + + myAppDataPath = QString::fromUtf8(myConfig->readConfigString("AppDataDir").c_str()); + + logo = myAppDataPath+"gfx/gui/misc/logoChip3D.png"; + + + frameNo = 52; + opacityCounter = 13; + opacity = 1.0; + + QTimer *timer = new QTimer; + connect(timer, SIGNAL(timeout()), this, SLOT(nextAnimationFrame())); + timer->start(40); +} + + +StartSplash::~StartSplash() +{ +} + +void StartSplash::nextAnimationFrame() { + + ++frameNo; + update(); + } + +void StartSplash::paintEvent(QPaintEvent * /*event*/) { + + QPainter painter(this); + +#ifdef _WIN32 + QFont welcomeFont; + welcomeFont.setFamily("Times New Roman"); + welcomeFont.setPixelSize(42); +#else +#ifdef __APPLE__ + QFont welcomeFont; + welcomeFont.setFamily("Century Schoolbook L"); + welcomeFont.setPixelSize(42); +#else + QFont welcomeFont; + welcomeFont.setFamily("Century Schoolbook L"); + welcomeFont.setPixelSize(35); +#endif +#endif +#ifdef __APPLE__ + QFont haveFont; + haveFont.setFamily("Century Schoolbook L"); + haveFont.setPixelSize(24); +#else + QFont haveFont; + haveFont.setFamily("Century Schoolbook L"); + haveFont.setPixelSize(24); +#endif + + QFont versionFont; + versionFont.setFamily("Nimbus Sans L"); + versionFont.setPixelSize(12); + + if(frameNo >= 52 && frameNo < 55) { + + painter.setBrush(QColor(35,71,0)); + painter.drawRect(0,0,399,249); + } + + if(frameNo >= 55 && frameNo < 57) { + + painter.setBrush(QColor(35,71,0)); + painter.drawRect(0,0,399,249); + + + painter.setRenderHint(QPainter::Antialiasing, TRUE); + painter.setFont(welcomeFont); + painter.setPen(QColor(255,255,255)); + painter.drawText(48,27,300,45,4,"W"); + + } + + if(frameNo >= 57 && frameNo < 59) { + + painter.setBrush(QColor(35,71,0)); + painter.drawRect(0,0,399,249); + + painter.setRenderHint(QPainter::Antialiasing, TRUE); + painter.setFont(welcomeFont); + painter.setPen(QColor(255,255,255)); + painter.drawText(48,27,300,45,4,"We"); + + } + + if(frameNo >= 59 && frameNo < 61) { + + painter.setBrush(QColor(35,71,0)); + painter.drawRect(0,0,399,249); + + painter.setRenderHint(QPainter::Antialiasing, TRUE); + painter.setFont(welcomeFont); + painter.setPen(QColor(255,255,255)); + painter.drawText(48,27,300,45,4,"Wel"); + + } + + if(frameNo >= 61 && frameNo < 63) { + + painter.setBrush(QColor(35,71,0)); + painter.drawRect(0,0,399,249); + + painter.setRenderHint(QPainter::Antialiasing, TRUE); + painter.setFont(welcomeFont); + painter.setPen(QColor(255,255,255)); + painter.drawText(48,27,300,45,4,"Welc"); + + } + + if(frameNo >= 63 && frameNo < 65) { + + painter.setBrush(QColor(35,71,0)); + painter.drawRect(0,0,399,249); + + painter.setRenderHint(QPainter::Antialiasing, TRUE); + painter.setFont(welcomeFont); + painter.setPen(QColor(255,255,255)); + painter.drawText(48,27,300,45,4,"Welco"); + + } + + if(frameNo >= 65 && frameNo < 67) { + + painter.setBrush(QColor(35,71,0)); + painter.drawRect(0,0,399,249); + + painter.setRenderHint(QPainter::Antialiasing, TRUE); + painter.setFont(welcomeFont); + painter.setPen(QColor(255,255,255)); + painter.drawText(48,27,300,45,4,"Welcom"); + + } + + if(frameNo >= 67 && frameNo < 72) { + + painter.setBrush(QColor(35,71,0)); + painter.drawRect(0,0,399,249); + + painter.setRenderHint(QPainter::Antialiasing, TRUE); + painter.setFont(welcomeFont); + painter.setPen(QColor(255,255,255)); + painter.drawText(48,27,300,45,4,"Welcome"); + + } + + if(frameNo >= 72 && frameNo < 74) { + + painter.setBrush(QColor(35,71,0)); + painter.drawRect(0,0,399,249); + + painter.setRenderHint(QPainter::Antialiasing, TRUE); + painter.setFont(welcomeFont); + painter.setPen(QColor(255,255,255)); + painter.drawText(48,27,300,45,4,"Welcome t"); + + } + + if(frameNo >= 74 && frameNo < 79 ) { + + painter.setBrush(QColor(35,71,0)); + painter.drawRect(0,0,399,249); + + painter.setRenderHint(QPainter::Antialiasing, TRUE); + painter.setFont(welcomeFont); + painter.setPen(QColor(255,255,255)); + painter.drawText(48,27,300,45,4,"Welcome to"); + + } + + if(frameNo >= 79 && frameNo < 91) { +// + painter.setBrush(QColor(35,71,0)); + painter.drawRect(0,0,399,249); + + painter.setRenderHint(QPainter::Antialiasing, TRUE); + painter.setFont(welcomeFont); + painter.setPen(QColor(255,255,255)); + painter.drawText(48,27,300,45,4,"Welcome to"); + + --opacityCounter; +// std::cout << opacity << " " << opacityCounter << "\n"; + opacity = 1.0/opacityCounter; +// std::cout << opacity << "\n"; + painter.setOpacity(opacity); + painter.drawPixmap(150,85,100,100,logo); + + } + + if(frameNo >= 91 && frameNo < 106) { +// + painter.setBrush(QColor(35,71,0)); + painter.drawRect(0,0,399,249); + + painter.setRenderHint(QPainter::Antialiasing, TRUE); + painter.setFont(welcomeFont); + painter.setPen(QColor(255,255,255)); + painter.drawText(48,27,300,45,4,"Welcome to"); + + painter.drawPixmap(150,85,100,100,logo); + + } + + if(frameNo >= 106 && frameNo < 136) { +// + painter.setBrush(QColor(35,71,0)); + painter.drawRect(0,0,399,249); + + painter.setRenderHint(QPainter::Antialiasing, TRUE); + painter.setFont(welcomeFont); + painter.setPen(QColor(255,255,255)); + painter.drawText(48,27,300,45,4,"Welcome to"); + + painter.drawPixmap(150,85,100,100,logo); + + painter.setFont(haveFont); + painter.setPen(QColor(255,255,255)); + painter.drawText(3,190,390,40,4,"Have a lot of fun!"); + + } + + if(frameNo >= 136 && frameNo < 190) { +// + painter.setBrush(QColor(35,71,0)); + painter.drawRect(0,0,399,249); + + painter.setRenderHint(QPainter::Antialiasing, TRUE); + painter.setFont(welcomeFont); + painter.setPen(QColor(255,255,255)); + painter.drawText(48,27,300,45,4,"Welcome to"); + + painter.drawPixmap(150,85,100,100,logo); + + painter.setFont(haveFont); + painter.setPen(QColor(255,255,255)); + painter.drawText(3,190,390,40,4,"Have a lot of fun! ;-)"); + + } + + //even draw version number + painter.setOpacity(1.0); + painter.setFont(versionFont); + painter.setPen(QColor(153,213,0)); + painter.drawText(309,227,100,20,4,QString("Version %1").arg(POKERTH_BETA_RELEASE_STRING)); + painter.setOpacity(opacity); + + if(frameNo >=190) { + this->close(); + } +} + diff --git a/src/gui/qt/gametable/startsplash/startsplash.h b/src/gui/qt/gametable/startsplash/startsplash.h new file mode 100755 index 00000000..8e5d6514 --- /dev/null +++ b/src/gui/qt/gametable/startsplash/startsplash.h @@ -0,0 +1,47 @@ +// +// C++ Interface: startsplash +// +// Description: +// +// +// Author: FThauer FHammer , (C) 2007 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#ifndef STARTSPLASH_H +#define STARTSPLASH_H + +#include +#include + +class gameTableImpl; +class ConfigFile; +class StartSplash : public QSplashScreen +{ +Q_OBJECT +public: + StartSplash(gameTableImpl *, ConfigFile*); + + ~StartSplash(); + + int frameNo; + int opacityCounter; + qreal opacity; + + void paintEvent(QPaintEvent * event); + +public slots: + + void nextAnimationFrame(); + +private: + + gameTableImpl *myW; + QString myAppDataPath; + QPixmap logo; + ConfigFile *myConfig; + +}; + +#endif diff --git a/src/gui/qt/guiwrapper.cpp b/src/gui/qt/guiwrapper.cpp index 736b5e52..9f1039d3 100644 --- a/src/gui/qt/guiwrapper.cpp +++ b/src/gui/qt/guiwrapper.cpp @@ -22,7 +22,7 @@ #include "session.h" #include "log.h" #include "chat.h" -#include "mainwindowimpl.h" +#include "gametableimpl.h" #include "configfile.h" using namespace std; @@ -32,7 +32,7 @@ GuiWrapper::GuiWrapper(ConfigFile *c) : myLog(0), myW(0), myConfig(c) { - myW = new mainWindowImpl(myConfig); + myW = new gameTableImpl(myConfig); myW->show(); myLog = new Log(myW, myConfig); } diff --git a/src/gui/qt/guiwrapper.h b/src/gui/qt/guiwrapper.h index 91706719..9851f2ce 100644 --- a/src/gui/qt/guiwrapper.h +++ b/src/gui/qt/guiwrapper.h @@ -25,7 +25,7 @@ #include class Session; -class mainWindowImpl; +class gameTableImpl; class Log; class Chat; class ConfigFile; @@ -144,7 +144,7 @@ private: Log *myLog; Chat *myChat; - mainWindowImpl *myW; + gameTableImpl *myW; ConfigFile *myConfig; }; diff --git a/src/gui/qt/startnetworkgamedialog/startnetworkgamedialogimpl.h b/src/gui/qt/startnetworkgamedialog/startnetworkgamedialogimpl.h index 35c2dfad..f4fd9fba 100644 --- a/src/gui/qt/startnetworkgamedialog/startnetworkgamedialogimpl.h +++ b/src/gui/qt/startnetworkgamedialog/startnetworkgamedialogimpl.h @@ -25,7 +25,7 @@ #include #include #include "sdlplayer.h" -#include "mainwindowimpl.h" +#include "gametableimpl.h" class Session; class ConfigFile; @@ -40,7 +40,7 @@ public: public slots: - void setMyW ( mainWindowImpl* theValue ) { myW = theValue; } + void setMyW ( gameTableImpl* theValue ) { myW = theValue; } void startGame(); @@ -72,7 +72,7 @@ public slots: private: - mainWindowImpl* myW; + gameTableImpl* myW; int maxPlayerNumber; int keyUpDownChatCounter; unsigned myPlayerId; diff --git a/ts/pokerth_START_HERE.ts b/ts/pokerth_START_HERE.ts index 0154f16d..9d962534 100644 --- a/ts/pokerth_START_HERE.ts +++ b/ts/pokerth_START_HERE.ts @@ -3,12 +3,12 @@ Chat - + You cannot kick yourself! - + You cannot kick any player - You are not game admin! @@ -69,7 +69,7 @@ MyAvatarLabel - + Vote for kick this user @@ -842,283 +842,283 @@ Would you like to overwrite ? - mainWindow + gameTable - + PokerTH 0.6-beta - The Open-Source Texas Holdem Engine - + Hands - + Chat - + Log - + Away - + Manual Action (default) - + Auto-Check / Auto-Fold - + Auto-Check / Auto-Call-Any - + Speed: - + View - + Game - + Network Game - + Start Local Game ... - + Ctrl+N - + Quit - + Ctrl+Q - + About PokerTH ... - + Settings ... - + Create Network Game ... - + Ctrl+O - + Join Network Game ... - + Ctrl+J - + Fullscreen - + Ctrl+F - + Show/Hide Chat Window - + Ctrl+T - + Show/Hide Hands Window - + Ctrl+H - + Show/Hide Log Window - + Ctrl+L - + Internet Game ... - + Ctrl+I - + Show/Hide Away Window - + Ctrl+A - mainWindowImpl + gameTableImpl - + Stop - + Cmd+N to start a new game - + Ctrl+N to start a new game - + PokerTH %1 - The Open-Source Texas Holdem Engine - + You cannot join Internet-Game-Lobby with "Human Player" as nickname. Please choose another one. - + F1 - Fold | F2 - Check/Call | F3 - Bet/Raise | F4 - All-In - + F1 - All-In | F2 - Bet/Raise | F3 - Check/Call | F4 - Fold - + Start - + Lobby - + Network Error - + Server address was not set. - + An invalid port was set (ports 0-1023 are not allowed). - + Could not create a socket for TCP communication. - + Could not set the IP address. - + Could not set the port for this type of address. - + The server name could not be resolved. - + Bind failed - please choose a different port. - + Internal network error: "listen" failed. - + Server execution was terminated. - + Could not connect to the server. - + Connection timed out. Please check the server address. @@ -1126,232 +1126,232 @@ If the server is behind a NAT-Router, make sure port forwarding has been set up - + Internal network error: "select" failed. - + Internal network error: "send" failed. - + Connection was closed by the server. - + Internal network error: Duplicate TCP connection. - + An invalid network packet was received. Please make sure that all players use the same version of PokerTH. - + Internal state error. Please make sure that all players use the same version of PokerTH. - + The PokerTH server does not support this version of the game.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. - + Sorry, this server is already full. - + Invalid password when joining the game. Please reenter the password and try again. - + The password is too long. Please choose another one. - + Your player name is already used by another player. Please choose a different name. - + The player name is too short, too long or invalid. Please choose another one. - + The game name is either too short or too long. Please choose another one. - + The game could not be found. - + The chat text is invalid. - + The server referred to an unknown player. Aborting. - + Internal error: The current player could not be found. - + Internal error: The current player is not active. - + You were kicked from the server. - + The client player count is invalid. - + Too many manual blinds were set. Please reconfigure the manual blinds. - + An invalid avatar file was configured. Please choose a different avatar. - + The selected avatar file is too large. Please choose a different avatar. - + An internal avatar error occured. Please report this to an admin in the lobby chat. - + Could not start game: Synchronization failed. - + The server is down for maintenance. Please try again later. - + An internal error occured. - + Network Notification - + You were kicked from the game. - + Sorry, this game is already full. - + Unable to join - the server has already started the game. - + A new release of PokerTH is available.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. - + This beta release of PokerTH is outdated.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. - + Manual mode set. You've got to choose yourself now. - + Auto mode set: Check or call any. - + Auto mode set: Check or fold. - + Chat - + Closing PokerTH during network game - + You are the hosting server. Do you want to close PokerTH anyway? - + PokerTH - Internet Game Message - + Attention! Do you really want to leave the current game and go back to the lobby? - + You were temporarily banned from the server. - + Your server connection timed out due to inactivity. You are very welcome to reconnect! - + You cannot upload a new avatar file at this time. Please try again in a few seconds. - + Your admin state timed out due to inactivity. Feel free to create a new game! diff --git a/ts/pokerth_bg.ts b/ts/pokerth_bg.ts index bbff3e6a..2a71d60d 100644 --- a/ts/pokerth_bg.ts +++ b/ts/pokerth_bg.ts @@ -3,12 +3,12 @@ Chat - + You cannot kick yourself! Не можеш да изгониш себе си! - + You cannot kick any player - You are not game admin! Не можеш да изгониш никой играч - не си администратора на играта! @@ -79,7 +79,7 @@ MyAvatarLabel - + Vote for kick this user @@ -861,284 +861,284 @@ Would you like to overwrite ? - mainWindow + gameTable - + PokerTH 0.6-beta - The Open-Source Texas Holdem Engine PokerTH 0.6-beta - Тексас Холдем покер мотора с отворен код - + Hands Ръце - + Chat Чат - + Log Отчитане - + Away Заминал - + Manual Action (default) Ръчно действие (по подразбиране) - + Auto-Check / Auto-Fold Автоматично-Приемай / Автоматично-Оттегляй - + Auto-Check / Auto-Call-Any Автоматично-Приемай / Автоматично-Отговаряй на всичко - + Speed: Скорост: - + View Изглед - + Game Игра - + Network Game Игра в мрежата - + Start Local Game ... Започни локална игра... - + Ctrl+N Ctrl+N - + Quit Изход - + Ctrl+Q Ctrl+Q - + About PokerTH ... Относно PokerTH... - + Settings ... Настройки ... - + Create Network Game ... Създай игра в мрежата ... - + Ctrl+O Ctrl+O - + Join Network Game ... Присъедини се към игра в мрежа ... - + Ctrl+J Ctrl+J - + Fullscreen Пълен екран - + Ctrl+F Ctrl+F - + Show/Hide Chat Window Покажи/Скрий чат прозорец - + Ctrl+T Ctrl+T - + Show/Hide Hands Window Покажи/Скрий прозореца с ръцете - + Ctrl+H Ctrl+H - + Show/Hide Log Window Покажи/Скрий прозореца с регистъра - + Ctrl+L Ctrl+L - + Internet Game ... Интернет игра ... - + Ctrl+I Ctrl+I - + Show/Hide Away Window Покажи/Скрий "Заминал" прозореца - + Ctrl+A Ctrl+A - mainWindowImpl + gameTableImpl - + Stop Спри - + Cmd+N to start a new game Cmd+N за да започнете нова игра - + Ctrl+N to start a new game Ctrl+N за да започнете нова игра - + PokerTH %1 - The Open-Source Texas Holdem Engine PokerTH %1 - Тексас Холдем покер мотора с отворен код - + You cannot join Internet-Game-Lobby with "Human Player" as nickname. Please choose another one. Не можете да се присъедините към лобито на Интернет игра с псевдонима "Жив играч". Моля изберете друг псевдоним. - + F1 - Fold | F2 - Check/Call | F3 - Bet/Raise | F4 - All-In F1 - Оттегли се | F2 - Приеми/Орговори | F3 - Заложи/Наддай | F4 - Всичко вътре - + F1 - All-In | F2 - Bet/Raise | F3 - Check/Call | F4 - Fold F1 - Всичко вътре | F2 - Заложи/Наддай | F3 - Приеми/Орговори | F4 - Оттегли се - + Start Започни - + Lobby Лоби - + Network Error Грешка във връзката - + Server address was not set. Не сте задали адреса на сървъра. - + An invalid port was set (ports 0-1023 are not allowed). Задали сте грешен порт (портове 0-1023 не са разрешени). - + Could not create a socket for TCP communication. Създаването на сокет за TCP комуникация невъзможно. - + Could not set the IP address. Не може да бъде зададен IP адреса. - + Could not set the port for this type of address. Не може да бъде зададен порта за този тип адрес. - + The server name could not be resolved. Името на сървъра не може да бъде превърнато. - + Bind failed - please choose a different port. Връзката се провали - моля изберете друг порт. - + Internal network error: "listen" failed. Вътрешна мержова грешка: "слушането" се провали. - + Server execution was terminated. Паботата на сървъра бе прекратена. - + Could not connect to the server. Връзката със сървъра не може да бъде осъществена. - + Connection timed out. Please check the server address. @@ -1149,237 +1149,237 @@ If the server is behind a NAT-Router, make sure port forwarding has been set up Ако сървъра е зад NAT-рутър, моля бъдете сигурни че порта е правилно препратен от страна на сървъра. - + Internal network error: "select" failed. Вътрешна мержова грешка: "отбелязването" се провали. - + Internal network error: "send" failed. Вътрешна мержова грешка: "изпращането" се провали. - + Connection was closed by the server. Връзката бе прекъсната от сървъра. - + Internal network error: Duplicate TCP connection. Вътрешна грешка в мрежата: Двойна TCP връзка. - + An invalid network packet was received. Please make sure that all players use the same version of PokerTH. Инвалиден мрежов пакет бе получен. Моля бъдете сигурни че всички играчи ползват една и съща версия на PokerTH. - + Internal state error. Please make sure that all players use the same version of PokerTH. Вътрешна сървър грешка. Моля бъдете сигурни че всички играчи ползват една и съща версия на PokerTH. - + The PokerTH server does not support this version of the game.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. PokerTH сървъра не поддържа тази версия на играта.<br>Моля отидете на <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> и свалете последната версия. - + Sorry, this server is already full. Съжалаваме, но този сървър е вече пълен. - + Invalid password when joining the game. Please reenter the password and try again. Грешна парола за присъединяване към играта. Моля вкарайте наново паролата. - + The password is too long. Please choose another one. Паролата е много дълга. Моля изберете друга. - + Your player name is already used by another player. Please choose a different name. Друг играч ползва вече това име. Моля изберете друго име. - + The player name is too short, too long or invalid. Please choose another one. Името ви на играч е много късо, много дълго или невалидно. Моля изберете друго. - + The game name is either too short or too long. Please choose another one. Името на играта е много късо или много дълго. Моля изберете друго. - + The game could not be found. Играта не може да бъде намерена. - + The chat text is invalid. Чат текста не е валиден. - + The server referred to an unknown player. Aborting. Сървъра се отправи към незнаен играч. Спира операцията. - + Internal error: The current player could not be found. Вътрешна грешка. Играча не може да бъде намерен. - + Internal error: The current player is not active. Вътрешна грешка: Играча не е активен. - + You were kicked from the server. Бяхте изгонен от сървъра. - + The client player count is invalid. Броят на играчите не е валиден. - + Too many manual blinds were set. Please reconfigure the manual blinds. Много персонализирани входа са зададени. Моля настройте наново персонализираните входове. - + An invalid avatar file was configured. Please choose a different avatar. Невалиден аватар е зададен. Моля изберете друг аватар. - + The selected avatar file is too large. Please choose a different avatar. Избрания файл за аватар е много широк. Моля изберете друг. - + An internal avatar error occured. Please report this to an admin in the lobby chat. Вътрешна грешка. Моля съобщете на администратор в лоби чата. - + Could not start game: Synchronization failed. Не може да бъде започната играта: синхронизацията се провали. - + The server is down for maintenance. Please try again later. Сървъра е изключен за профилактика. Моля опитайте пак по-късно. - + An internal error occured. Вътрешна грешка. - + Network Notification Мрежово съобщение - + You were kicked from the game. Бяхте изгонен от играта. - + Sorry, this game is already full. Съжалаваме, но тази игра е вече пълна. - + Unable to join - the server has already started the game. Не може да се присъедините - сървъра е започнал играта вече. - + A new release of PokerTH is available.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. Нова версия на PokerTH е излязла.<br>Моля отидете на <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> за да изтеглите последната версия. - + This beta release of PokerTH is outdated.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. Бета версията на PokerTH не е годна.<br>Моля отидете на <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> за да изтеглите последната версия. - + Manual mode set. You've got to choose yourself now. Ръчен метод е настроен. Трябва да изберете себе си. - + Auto mode set: Check or call any. Автоматичен метод е настроен: Приемай или отговаряй на всеки. - + Auto mode set: Check or fold. Автоматичен метод е настроен: Приемай или се оттегляй. - + Chat Чат - + Closing PokerTH during network game Затваряне на PokerTH по време на игра в мрежа - + You are the hosting server. Do you want to close PokerTH anyway? Вие сте сървъра домакин. Искате ли да затворите PokerTH все пак ? - + PokerTH - Internet Game Message PokerTH - Съобщение от интернет игра - + Attention! Do you really want to leave the current game and go back to the lobby? Внимание! Наистина ли искате да напуснете играта и да се върнете в лобите ? - + You were temporarily banned from the server. - + Your server connection timed out due to inactivity. You are very welcome to reconnect! - + You cannot upload a new avatar file at this time. Please try again in a few seconds. - + Your admin state timed out due to inactivity. Feel free to create a new game! diff --git a/ts/pokerth_de.ts b/ts/pokerth_de.ts index 3f9430e8..3e3ff46e 100644 --- a/ts/pokerth_de.ts +++ b/ts/pokerth_de.ts @@ -4,12 +4,12 @@ Chat - + You cannot kick yourself! Sie können sich nicht selbst entfernen! - + You cannot kick any player - You are not game admin! Sie können keinen Spieler entfernen - Sie sind kein Spieladministrator! @@ -80,7 +80,7 @@ MyAvatarLabel - + Vote for kick this user Spielerrauswurf abstimmen @@ -1413,347 +1413,347 @@ Möchten Sie es überschreiben? - mainWindow + gameTable - + Speed: Tempo: - + Stop Stop - + View Ansicht - + Game Spiel - + Ctrl+N Strg+N - + Quit Schließen - + About PokerTH ... Über PokerTH... - + Settings ... Einstellungen... - + Create Network Game ... Netzwerkspiel erstellen... - + Join Network Game ... Netzwerkspiel beitreten... - + Fullscreen Vollbild - + Hands Blätter - + Chat Chat - + Log Log - + Start Local Game ... Lokales Spiel starten... - + Network Game Netzwerkspiel - + Internet Game ... Internetspiel... - + Ctrl+Q Strg+Q - + Show/Hide Chat Window Chat-Fenster zeigen/verstecken - + Show/Hide Log Window Log-Fenster zeigen/verstecken - + Show/Hide Hands Window Blätter-Fenster zeigen/verstecken - + Ctrl+O Strg+O - + Ctrl+J Strg+J - + Ctrl+F Strg+F - + Ctrl+T Strg+T - + Ctrl+H Strg+H - + Ctrl+L Strg+L - + PokerTH 0.6 - The Open-Source Texas Holdem Engine PokerTH 0.6 - Die Open-Source Texas Holdem Engine - + Ctrl+I Strg+I - + All In All In - + Away Abwesend - + Manual Action (default) Manuelle Eingabe (Standard) - + Auto-Check / Auto-Fold Auto-Check und Auto-Fold - + Auto-Check / Auto-Call-Any Auto-Check und Auto-Call-any - + PokerTH 0.6-beta - The Open-Source Texas Holdem Engine PokerTH 0.6-beta - Die Open-Source Texas Holdem Engine - + Show/Hide Away Window Abwesend-Fenster zeigen/verstecken - + Ctrl+A Strg+A - mainWindowImpl + gameTableImpl - + Ctrl+N to start a new game Strg+N um ein neues Spiel zu starten - + F1 - Fold/All-In | F2 - Check/Call | F3 - Bet/Raise F1 - Fold/All-In | F2 - Check/Call | F3 - Bet/Raise - + Network Error Netzwerkfehler - + Server address was not set. Serveradresse wurde nicht angegeben. - + An invalid port was set (ports 0-1023 are not allowed). Ein ungültiger Port wurde angegeben (die Ports 0-1023 sind nicht erlaubt). - + Could not create a socket for TCP communication. Socket für TCP-Übertragung kann nicht erstellt werden. - + Could not set the IP address. IP-Adresse kann nicht gesetzt werden. - + Could not set the port for this type of address. Der Port für diesen Adresstyp kann nicht gesetzt werden. - + The server name could not be resolved. Der Servername kann nicht aufgelöst werden. - + Bind failed - please choose a different port. Verbindung fehlgeschlagen - bitte einen anderen Port wählen. - + Internal network error: "listen" failed. Interner Netzwerkfehler: "Lauschen" fehlgeschlagen. - + Server execution was terminated. Serverbetrieb wurde beendet. - + Could not connect to the server. Keine Verbindung zum Server. - + Internal network error: "select" failed. Interner Netzwerkfehler: "Auswahl" fehlgeschlagen. - + Internal network error: "send" failed. Interner Netzwerkfehler: "Senden" fehlgeschlagen. - + Internal network error: Duplicate TCP connection. Interner Netzwerkfehler: Doppelte TCP-Verbindung. - + An invalid network packet was received. Please make sure that all players use the same version of PokerTH. Ein ungültiges Netzwerkpaket wurde empfangen. Bitte stellen Sie sicher, dass alle Spieler die gleiche Version von PokerTH benutzen. - + Internal state error. Please make sure that all players use the same version of PokerTH. Interner Status Fehler. Bitte stellen Sie sicher, dass alle Spieler die gleiche Version von PokerTH benutzen. - + The PokerTH server does not support this version of the game. Please update PokerTH. Der PokerTH-Server unterstützt diese Version des Spiels nicht. Führen Sie bitte ein Update von PokerTH durch. - + Sorry, this server is already full. Schade, der Server ist bereits voll. - + Unable to join - the server has already started the game. Betreten nicht möglich - der Server hat das Spiel bereits gestartet. - + Invalid password when joining the game. Please reenter the password and try again. Ungültiges Passwort beim Betreten des Spieltisches. Bitte geben Sie Ihr Passwort erneut ein und versuchen Sie es nochmal. - + The password is too long. Please choose another one. Das Passwort ist zu lang. Bitte wählen Sie ein kürzeres. - + Your player name is already used by another player. Please choose a different name. Ihr Spielername wird bereits von einem anderen Spieler benutzt. Bitte wählen Sie einen anderen Namen. - + An internal error occured. Ein interner Fehler ist aufgetreten. - + Cmd+N to start a new game ⌘N zum Start eines neuen Spiels - + Start Start - + Stop Stop - + Connection timed out. Please check the server address. @@ -1763,237 +1763,237 @@ Bitte überprüfen Sie die Serveradresse. Wenn der Server hinter einem NAT-Router betrieben wird, stellen Sie sicher, dass serverseitig die Portweiterleitung aktiviert wurde. - + Connection was closed by the server. Der Server hat die Verbindung beendet. - + The server referred to an unknown player. Aborting. Der Server verweist den unbekannten Spieler des Tisches. Abbruch. - + You were kicked from the server. Sie wurden des Servers verwiesen. - + The client player count is invalid. Die Anzahl der Mitspieler ist ungültig. - + The player name is too short, too long or reserved. Please choose another one. Der Spielername ist entweder zu kurz, zu lang oder reserviert. Bitte wählen Sie einen anderen. - + The game name is either too short or too long. Please choose another one. Der Spielname ist entweder zu kurz oder zu lang. Bitte wählen Sie einen anderen. - + The game could not be found. Das Spiel konnte nicht gefunden werden. - + The chat text is invalid. Der Chattext ist ungültig. - + Network Notification Netzwerkbenachrichtigung - + You were kicked from the game. Sie wurden des Spiels verwiesen. - + Sorry, this game is already full. Sorry, dieses Spiel ist bereits voll. - + F1 - Bet/Raise | F2 - Check/Call | F3 - Fold/All-In F1 - Bet/Raise | F2 - Check/Call | F3 - Fold/All-In - + Chat Chat - + Manual mode set. You've got to choose yourself now. Manueller Modus aktiv. Sie müssen nun selbst auswählen. - + Auto mode set: Check or call any. Automatischer Modus aktiv: Immer schieben (Check) oder mitgehen (Call). - + Auto mode set: Check or fold. Automatischer Modus aktiv: Immer schieben (Check) oder passen (Fold). - + You cannot join Internet-Game-Lobby with "Human Player" as nickname. Please choose another one. Sie können die Internetspiel-Lobby nicht mit "Human Player" als Nicknamen beitreten. Bitte wählen Sie einen anderen Nicknamen. - + Internal error: The current player could not be found. Interner Fehler: Der aktuelle Spieler kann nicht gefunden werden. - + Internal error: The current player is not active. Interner Fehler: Der aktuelle Spieler ist nicht aktiv. - + Too many manual blinds were set. Please reconfigure the manual blinds. Es wurden zu viele manuelle Blinds gesetzt. Bitte die manuellen Blinds entsprechend ändern. - + An invalid avatar file was configured. Please choose a different avatar. Es wurde eine ungültige Avatardatei konfiguriert. Bitte einen anderen Avatar auswählen. - + The selected avatar file is too large. Please choose a different avatar. Die ausgewählte Avatardatei ist zu groß. Bitte einen anderen Avatar auswählen. - + The server requested a non-existing avatar. Der Server forderte einen Avatar an, der nicht existiert. - + Could not start game: Synchronization failed. Das Spiel konnte nicht gestartet werden: die Synchronisierung ist fehlgeschlagen. - + F1 - Fold | F2 - Check/Call | F3 - Bet/Raise | F4 - All-In F1 - Passen (Fold) | F2 - Schieben/Mitgehen (Check/Call) | F3 - Bieten/Erhöhen (Bet/Raise) | F4 - All-In - + F1 - All-In | F2 - Bet/Raise | F3 - Check/Call | F4 - Fold F1 - All-In | F2 - Bieten/Erhöhen (Bet/Raise) | F3 - Schieben/Mitgehen (Check/Call) | F4 - Passen (Fold) - + The PokerTH server does not support this version of the game. Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> and download the latest version. Der PokerTH-Server unterstützt diese Programmversion nicht. Bitte gehen Sie auf <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> und laden Sie die aktuelle Version herunter. - + The player name is too short, too long or invalid. Please choose another one. Der Spielername ist zu kurz, zu lang oder ungültig. Bitte wählen Sie einen anderen Namen. - + The server is down for maintenance. Please try again later. Der Server wurde für Wartungsarbeiten heruntergefahren. Bitte versuchen Sie es später wieder. - + A new release of PokerTH is available. Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> and download the latest version. Eine neue Version von PokerTH ist verfügbar. Bitte gehen Sie auf <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> und laden Sie die aktuelle Version herunter. - + This beta release of PokerTH is outdated. Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> and download the latest version. Diese Beta-Version von PokerTH ist veraltet. Bitte gehen Sie auf <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> und laden Sie die aktuelle Version herunter. - + Closing PokerTH during network game PokerTH während eines Netzwerkspiels beenden - + You are the hosting server. Do you want to close PokerTH anyway? Sie sind der Gastgeber dieses Spiels. Möchten Sie PokerTH trotzdem beenden? - + The PokerTH server does not support this version of the game.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. Der PokerTH-Server unterstützt diese Programmversion nicht. Bitte gehen Sie auf <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> und laden Sie die aktuelle Version herunter. - + A new release of PokerTH is available.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. Eine neue Version von PokerTH ist verfügbar.<br>Bitte gehen Sie auf <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> und laden Sie die aktuelle Version herunter. - + This beta release of PokerTH is outdated.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. Diese Beta-Version von PokerTH ist veraltet.<br>Bitte gehen Sie auf <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> und laden Sie die aktuelle Version herunter. - + PokerTH %1 - The Open-Source Texas Holdem Engine PokerTH %1 - Die Open-Source Texas Holdem Engine - + Lobby Lobby - + An internal avatar error occured. Please report this to an admin in the lobby chat. Ein interner Avatarfehler ist aufgetreten. Bitte informieren Sie hierüber einen Admin im Lobbychat. - + PokerTH - Internet Game Message PokerTH - Internetspiel-Meldung - + Attention! Do you really want to leave the current game and go back to the lobby? Vorsicht! Möchten Sie das aktuelle Spiel wirklich verlassen und zur Lobby zurückkehren? - + You were temporarily banned from the server. Sie wurden temporär vom Server ausgeschlossen. - + Your server connection timed out due to inactivity. You are very welcome to reconnect! Ihre Serververbindung wurde aufgrund zu langer Inaktivität unterbrochen. Sie sind willkommen sich wieder zu verbinden! - + You cannot upload a new avatar file at this time. Please try again in a few seconds. Derzeit können Sie kein neues Avatar hochladen. Bitte versuchen Sie es in ein paar Sekunden erneut. - + Your admin state timed out due to inactivity. Feel free to create a new game! Das Zeitlimit Ihres Administratorstatus ist aufgrund Inaktivität abgelaufen. Erstellen Sie doch ein neues Spiel! diff --git a/ts/pokerth_es.ts b/ts/pokerth_es.ts index aaede9e7..f2771c64 100644 --- a/ts/pokerth_es.ts +++ b/ts/pokerth_es.ts @@ -4,12 +4,12 @@ Chat - + You cannot kick yourself! No puede expulsarse a sí mismo. - + You cannot kick any player - You are not game admin! No es administrador y no puede expulsar jugadores. @@ -80,7 +80,7 @@ MyAvatarLabel - + Vote for kick this user Votar para expulsar a este usuario @@ -1801,382 +1801,382 @@ Would you like to overwrite ? - mainWindow + gameTable - + QMainWindow { background-image: url(:/guiv2/resources/guiv2/table.png); background-position: bottom center; background-origin: content; } QMainWindow { background-image: url(:/guiv2/resources/guiv2/table.png); background-position: bottom center; background-origin: content; } - + QGroupBox { background-image: url(:/graphics/resources/graphics/toolboxFrameBG.png) } QGroupBox { background-image: url(:/graphics/resources/graphics/toolboxFrameBG.png) } - + Speed: Velocidad: - + Stop Detener - + View Ver - + Game Partida - + Ctrl+N Ctrl+N - + Quit Salir - + About PokerTH ... Acerca de PokerTH... - + Settings ... Preferencias... - + Create Network Game ... Crear partida en red... - + Join Network Game ... Unirse a partida en red... - + Fullscreen Pantalla completa - + Hands Manos - + Chat Charla - + Log Registro - + Start Local Game ... Iniciar partida local... - + Ctrl+Q Ctrl+Q - + PokerTH 0.5 - The Open-Source Texas Holdem Engine PokerTH 0.5 - El motor de Texas Holdem de código abierto - + ⌘F ⌘F - + Show/Hide Chat Window Mostrar/Ocultar ventana de charla - + ⌘C ⌘C - + ⌘H ⌘H - + Show/Hide Log Window Mostrar/Ocultar ventana de registro - + ⌘L ⌘L - + Show/Hide Hands Window Mostrar/Ocultar ventana de manos - + Ctrl+O Ctrl+O - + Ctrl+J Ctrl+J - + Ctrl+F Ctrl+F - + Ctrl+T Ctrl+T - + Ctrl+H Ctrl+H - + Ctrl+L Ctrl+L - + PokerTH 0.6 - The Open-Source Texas Holdem Engine PokerTH 0.5 - El motor de Texas Holdem de código abierto {0.6 ?} - + Network Game Partida de red - + Internet Game ... Partida de Internet... - + Ctrl+I Ctrl+I - + Away Ausente - + Manual Action (default) Acción manual (predeterminado) - + Auto-Check / Auto-Fold Ver apuesta/Abandonar automáticamente - + Auto-Check / Auto-Call-Any Ver cualqueir apuesta automáticamente - + PokerTH 0.6-beta - The Open-Source Texas Holdem Engine PokerTH 0.6-beta - El motor de Texas Holdem de código abierto - + Show/Hide Away Window Mostrar/Ocultar ventana - + Ctrl+A Ctrl+A - mainWindowImpl + gameTableImpl - + Ctrl+N to start a new game Ctrl+N para iniciar una nueva partida - + F1 - Fold/All-In | F2 - Check/Call | F3 - Bet/Raise F1 - Dejarlo/Todo | F2 - Ver/Ir | F3 - Apostar/Subir - + Network Error Error en la red - + Server address was not set. La dirección del servidor no está establecida. - + An invalid port was set (ports 0-1023 are not allowed). Se ha establecido un puerto no válido (no se permiten los puerto 0-1023). - + Could not create a socket for TCP communication. No se puede crear un socket de comunicaciones TCP. - + Could not set the IP address. No se puede establecer la dirección IP. - + Could not set the port for this type of address. No se puede establecer el puerto para este tipo de dirección. - + The server name could not be resolved. No se puede resolver el nombre del servidor. - + Bind failed - please choose a different port. Fallo en la comunicación - seleccione otro puerto. - + Internal network error: "listen" failed. Error interno en la red: fallo en "listen". - + Server execution was terminated. Finalizada la ejecución del servidor. - + Could not connect to the server. No se puede conectar al servidor. - + Internal network error: "select" failed. Error interno en la red: fallo en "select". - + Internal network error: "send" failed. Error interno en la red: fallo en "send". - + Internal network error: Duplicate TCP connection. Error interno en la red: conexión TCP duplicada. - + An invalid network packet was received. Please make sure that all players use the same version of PokerTH. Se ha recibido un paquete de red no válido. Asegúrese de que todos los jugadores utilizan la misma versión de PokerTH. - + Internal state error. Please make sure that all players use the same version of PokerTH. Error interno de estado. Asegúrese de que todos los jugadores utilizan la misma versión de PokerTH. - + The PokerTH server does not support this version of the game. Please update PokerTH. El servidor de PokerTH no permite esta versión del juego. Actualice PokerTH. - + Sorry, this server is already full. Este servidor está lleno. - + Unable to join - the server has already started the game. Imposible unirse - el servidor ya ha comenzado la partida. - + Invalid password when joining the game. Please reenter the password and try again. Contraseña incorrecta al unirse a la partida. Vuelva a introducir la contraseña e inténtelo de nuevo. - + The password is too long. Please choose another one. La contraseña es demasiado larga. Elija otra. - + Your player name is already used by another player. Please choose a different name. Su nombre de jugador ya está en uso por otra persona. Elija un nombre diferente. - + The player name is either too short or too long. Please choose another one. El nombre de jugador es demasiado corto o largo. Elija otro nombre. - + An internal error occured. Ha ocurrido un error interno. - + Cmd+N to start a new game ⌘N para iniciar una nueva partida - + Start Iniciar - + Stop Detener - + Connection timed out. Please check the server address. @@ -2187,201 +2187,201 @@ Por favor, compruebe la dirección del servidor. Si el servidor está detrás de un enrutador NAT, asegúrese de que el puerto de reenvío está configurado en el servidor. - + Connection was closed by the server. Conexión cerrada por el servidor. - + The server referred to an unknown player. Aborting. El servidor se ha referido a un jugador desconocido. Abortando. - + You were kicked from the server. Ha sido expulsado del servidor. - + The client player count is invalid. El número de jugadores no es válido. - + The game name is either too short or too long. Please choose another one. El nombre de la partida es muy largo o muy corto. Seleccione otro. - + The game could not be found. No se encuentra la partida. - + The chat text is invalid. El texto de charla no es válido. - + Network Notification Notificación de red - + You were kicked from the game. Ha sido expulsado de la partida. - + Sorry, this game is already full. Esta partida está llena. - + Chat Charla - + Manual mode set. You've got to choose yourself now. Modo manual. Ahora debe elegir usted. - + Auto mode set: Check or call any. Modo automática: ver cualquier apuesta. - + Auto mode set: Check or fold. Modo automática: ver o abandonar. - + You cannot join Internet-Game-Lobby with "Human Player" as nickname. Please choose another one. No puede acceder a la sala de partidas de Internet con el apodo "Human Player". Seleccione otro. - + Internal error: The current player could not be found. Error interno: no se encuentra el jugador actual. - + Internal error: The current player is not active. Error interno: el jugador actual no está activo. - + Too many manual blinds were set. Please reconfigure the manual blinds. Hay demasiadas ciegas manuales. Reconfigure las ciegas manuales. - + An invalid avatar file was configured. Please choose a different avatar. Se ha configurado un archivo de avatar no válido. Seleccione otro. - + The selected avatar file is too large. Please choose a different avatar. El avatar seleccionado es demasiado grande. Seleccione otro. - + Could not start game: Synchronization failed. No se puede iniciar la partida: error en la sincronización. - + F1 - Fold | F2 - Check/Call | F3 - Bet/Raise | F4 - All-In F1 - Abandonar | F2 - Pasar/Ver | F3 - Apostar/Subir | F4 - Apostar el resto - + F1 - All-In | F2 - Bet/Raise | F3 - Check/Call | F4 - Fold F1 - Apostar el resto | F2 - Apostar/Subir | F3 - Pasar/Ver | F4 - Abandonar - + The player name is too short, too long or invalid. Please choose another one. El nombre del jugador es muy corto, muy largo o no es válido. Seleccione otro. - + The server is down for maintenance. Please try again later. El servidor está desconectado por mantenimiento. Inténtelo de nuevo más tarde. - + Closing PokerTH during network game Cerrando PokerTH durante una partida de red - + You are the hosting server. Do you want to close PokerTH anyway? Usted está alojando la partida. ¿Seguro que desea cerrar PokerTH? - + The PokerTH server does not support this version of the game.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. El servidor de PokerTH no soporta esta versión del juego.<br>Visite <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> y descargue la última versión. - + A new release of PokerTH is available.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. Hay una nueva versión de PokerTH disponible.<br>Visite <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> para descargarla. - + This beta release of PokerTH is outdated.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. El versión beta de PokerTH es obsoleta.<br>Visite <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> para descargar la última versión. - + PokerTH %1 - The Open-Source Texas Holdem Engine PokerTH %1 - El motor de Texas Holdem de código abierto - + Lobby Sala - + An internal avatar error occured. Please report this to an admin in the lobby chat. Ha ocurrido un error interno. Informe al administrador en la sala de charla. - + PokerTH - Internet Game Message PokerTH - Mensaje de partida en Internet - + Attention! Do you really want to leave the current game and go back to the lobby? ¿Seguro que desea abandonar la partida actual y volver a la sala? - + You were temporarily banned from the server. Se le ha prohibido temporalmente el acceso al servidor. - + Your server connection timed out due to inactivity. You are very welcome to reconnect! La conexión se ha cerrado por inactividad. Puede volver a conectarse si lo desea. - + You cannot upload a new avatar file at this time. Please try again in a few seconds. No se puede subir un nuevo avatar en este momento. Inténtelo pasados unos segundos. - + Your admin state timed out due to inactivity. Feel free to create a new game! Ha perdido su estado de administrador por inactividad. Puede crear una nueva partida. diff --git a/ts/pokerth_fr.ts b/ts/pokerth_fr.ts index ddfea209..f7f8a007 100644 --- a/ts/pokerth_fr.ts +++ b/ts/pokerth_fr.ts @@ -3,12 +3,12 @@ Chat - + You cannot kick yourself! Vous ne pouvez pas vous expulser vous-même! - + You cannot kick any player - You are not game admin! Vous ne pouvez expulser aucun joueur - Vous n'êtes pas l'administrateur de la partie! @@ -79,7 +79,7 @@ MyAvatarLabel - + Vote for kick this user Votez pour exclure ce joueur @@ -1785,382 +1785,382 @@ Voulez-vous l'écraser ? - mainWindow + gameTable - + QMainWindow { background-image: url(:/guiv2/resources/guiv2/table.png); background-position: bottom center; background-origin: content; } QMainWindow { background-image: url(:/guiv2/resources/guiv2/table.png); background-position: bottom center; background-origin: content; } - + QGroupBox { background-image: url(:/graphics/resources/graphics/toolboxFrameBG.png) } QGroupBox { background-image: url(:/graphics/resources/graphics/toolboxFrameBG.png) } - + Speed: Vitesse: - + Stop Arrêter - + View Vue - + Game Partie - + Ctrl+N Ctrl+N - + Quit Quitter - + About PokerTH ... A propos de PokerTH ... - + Settings ... Paramètres ... - + Create Network Game ... Créer une partie en réseau ... - + Join Network Game ... Se joindre à une partie en réseau ... - + Fullscreen Plein écran - + Hands Mains - + Chat Chat - + Log Journal - + Start Local Game ... Démarrer une partie solo ... - + Ctrl+Q Ctrl+Q - + PokerTH 0.5 - The Open-Source Texas Holdem Engine PokerTH 0.5 - Le moteur 'Open-Source' Texas Holdem par excellence - + ⌘F ⌘F - + Show/Hide Chat Window Montrer/Cacher la fenêtre de Chat - + ⌘C ⌘C - + ⌘H ⌘H - + Show/Hide Log Window Montrer/Cacher la fenêtre de journal - + ⌘L ⌘L - + Show/Hide Hands Window Montrer/Cacher la fenêtre de mains - + Ctrl+O Ctrl+O - + Ctrl+J Ctrl+J - + Ctrl+F Ctrl+F - + Ctrl+T Ctrl+T - + Ctrl+H Ctrl+H - + Ctrl+L Ctrl+L - + PokerTH 0.6 - The Open-Source Texas Holdem Engine PokerTH 0.5 - Le moteur 'Open-Source' Texas Holdem par excellence {0.6 ?} - + Network Game Partie en réseau - + Internet Game ... Partie sur Internet ... - + Ctrl+I Ctrl+l - + Away Absence - + Manual Action (default) Action manuelle (défaut) - + Auto-Check / Auto-Fold Parole auto / Passer auto - + Auto-Check / Auto-Call-Any Parole auto / Payer auto toutes mains - + PokerTH 0.6-beta - The Open-Source Texas Holdem Engine PokerTH 0.6-beta - Le moteur Open Source de Texas Hold'em - + Show/Hide Away Window Montrer/Cacher la fenêtre d'absence - + Ctrl+A Ctrl+A - mainWindowImpl + gameTableImpl - + Ctrl+N to start a new game Ctrl+N pour démarrer une nouvelle partie - + F1 - Fold/All-In | F2 - Check/Call | F3 - Bet/Raise F1 - Passer/Tapis | F2 - Parole/Suivre | F3 - Miser/Relancer - + Network Error Erreur réseau - + Server address was not set. L'adresse du serveur n'a pas été spécifiée. - + An invalid port was set (ports 0-1023 are not allowed). Un port invalide a été spécifié (les ports 0-1023 ne sont pas permis). - + Could not create a socket for TCP communication. Impossible d'ouvrir un interface de connexion TCP. - + Could not set the IP address. Impossible d'initialiser l'adresse IP. - + Could not set the port for this type of address. Impossible de définir le port pour ce type d'adresse. - + The server name could not be resolved. Impossible de résoudre le nom du serveur. - + Bind failed - please choose a different port. L'opération 'Bind' a échoué - veuillez sélectionner un autre port. - + Internal network error: "listen" failed. Erreur interne réseau: l'opération "listen" a échoué. - + Server execution was terminated. L'exécution du serveur a été arrêté. - + Could not connect to the server. Connexion au serveur impossible. - + Internal network error: "select" failed. Erreur interne réseau: l'opération "select" a échouée. - + Internal network error: "send" failed. Erreur interne réseau: l'opération "send" a échouée. - + Internal network error: Duplicate TCP connection. Erreur interne du réseau: Connection TCP dupliquée. - + An invalid network packet was received. Please make sure that all players use the same version of PokerTH. Un paquet de données invalide a été reçu. Veuillez vous assurer que tous les joueurs utilisent la même version de PokerTH. - + Internal state error. Please make sure that all players use the same version of PokerTH. Erreur d'état interne. Veuillez vous assurer que tous les joueurs utilisent la même version de PokerTH. - + The PokerTH server does not support this version of the game. Please update PokerTH. Le serveur PokerTH ne supporte pas cette version du jeu. Veuillez mettre à jour votre version de PokerTH. - + Sorry, this server is already full. Désolé, ce serveur a présentement atteint sa limite de joueurs. - + Unable to join - the server has already started the game. Impossible de joindre - la partie a déjà commencé. - + Invalid password when joining the game. Please reenter the password and try again. Mot de passe invalide pour la partie sélectionnée. Veuillez entrer le mot de passe à nouveau et réessayez. - + The password is too long. Please choose another one. Ce mot de passe est trop long. Veuillez en choisir un autre. - + Your player name is already used by another player. Please choose a different name. Ce nom d'utilisateur est déjà utilisée par un autre joueur. Veuillez choisir un nom différent. - + The player name is either too short or too long. Please choose another one. Ce nom d'utilisateur est soit trop long ou trop court. Veuillez en choisir un autre. - + An internal error occured. Une erreur interne est survenue. - + Cmd+N to start a new game ⌘N pour démarrer une nouvelle partie - + Start Démarrer - + Stop Arrêter - + Connection timed out. Please check the server address. @@ -2171,201 +2171,201 @@ S.v.p. Vérifiez l'adresse du serveur. Si le serveur est derrière un pare-feu, vérifiez que le port a été ouvert et configuré sur le serveur. - + Connection was closed by the server. La connection a été intérrompue par le serveur. - + The server referred to an unknown player. Aborting. Le serveur a référé à un joueur inconnu. Arrêt de la procédure. - + You were kicked from the server. Vous avez été expulsé du serveur. - + The client player count is invalid. Le compte du nombre de joueur est invalide. - + The game name is either too short or too long. Please choose another one. Le nom de partie est soit trop long soit trop court. Veuillez en choisir un autre. - + The game could not be found. La partie est introuvable. - + The chat text is invalid. Le texte de chat est invalide. - + Network Notification Notification réseau - + You were kicked from the game. Vous avez été expulsé de la partie. - + Sorry, this game is already full. Désolé, la partie est déjà complète. - + Chat Chat - + Manual mode set. You've got to choose yourself now. Mode manuel sélectionnné. Vous devez vous sélectionner maintenant. - + Auto mode set: Check or call any. Mode automatique sélectionné: Parole ou payer pour tous les coups. - + Auto mode set: Check or fold. Mode automatique sélectionné: Parole ou passer pour tous les coups. - + You cannot join Internet-Game-Lobby with "Human Player" as nickname. Please choose another one. Vous ne pouvez pas joindre un chat d'une partie sur Internet en tant que "Joueur Humain". Veuillez choisir un autre pseudonyme. - + Internal error: The current player could not be found. Erreur interne. Le joueur courant n'a pas été trouvé. - + Internal error: The current player is not active. Erreur interne. Le joueur courant n'est pas actif. - + Too many manual blinds were set. Please reconfigure the manual blinds. Trop de blinds manuelles configurés. Veuillez reconfigurer les blinds manuelles. - + An invalid avatar file was configured. Please choose a different avatar. Un avatar invalide a été choisit. Veuillez en choisir un autre. - + The selected avatar file is too large. Please choose a different avatar. Le fichier d'avatar sélectionné est trop volumineux. Veuillez en choisir un autre. - + Could not start game: Synchronization failed. Impossible de démarrer la partie. Echec de la synchronisation. - + F1 - Fold | F2 - Check/Call | F3 - Bet/Raise | F4 - All-In F1 - Passer | F2 - Parole/Payer | F3 - Miser/Surenchérir | F4 - Tapis - + F1 - All-In | F2 - Bet/Raise | F3 - Check/Call | F4 - Fold F1 - Tapis | F2 - Miser/Surenchérir | F3 - Parole/Payer | F4 - Passer - + The player name is too short, too long or invalid. Please choose another one. Le nom de joueur est trop court, trop long ou invalide. Veuillez en choisir un autre. - + The server is down for maintenance. Please try again later. Le serveur est arrêté pour maintenance. Veuillez réessayer plus tard. - + Closing PokerTH during network game Fermer PokerTH durant la partie en réseau - + You are the hosting server. Do you want to close PokerTH anyway? Vous hébergez le serveur. Vouslez-vous quand même fermer PokerTH ? - + The PokerTH server does not support this version of the game.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. Le serveur PokerTH ne supporte pas cette version du jeu.<br> Merci d'aller sur <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a>et de télécharger la dernière version. - + A new release of PokerTH is available.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. Une nouvelle version de PokerTH est disponible. <br>Merci d'aller sur <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> et de télécharger la dernière version. - + This beta release of PokerTH is outdated.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. Cettet version béta de PokerTH est obsolète. <br>Merci d'aller sur <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> et de télécharger la dernière version. - + PokerTH %1 - The Open-Source Texas Holdem Engine PokerTH %1 - Le moteur de Texas Holdem Open-Source - + Lobby Chat - + An internal avatar error occured. Please report this to an admin in the lobby chat. Une erreur interne est survenue. Merci de la signaler à un administrateur sur le chat. - + PokerTH - Internet Game Message PokerTH - Message partie Internet - + Attention! Do you really want to leave the current game and go back to the lobby? Attention! Voulez-vous vraiment quitter la partie en cours et retourner au chat ? - + You were temporarily banned from the server. Vous avez été temporairement bannis du serveur. - + Your server connection timed out due to inactivity. You are very welcome to reconnect! Votre connexion au serveur a expirée pour cause d'inactivité. Vous êtes invités à vous reconnecter ! - + You cannot upload a new avatar file at this time. Please try again in a few seconds. Vousne pouvez pas envoyer un fichier d'avatar maintenant. Veuillez réessayer dans quelques secondes. - + Your admin state timed out due to inactivity. Feel free to create a new game! Votre status d'administrateur a expiré pour cause d'inactivité. Recréez une partie ! diff --git a/ts/pokerth_gr.ts b/ts/pokerth_gr.ts index 435903f3..bd0b29a7 100644 --- a/ts/pokerth_gr.ts +++ b/ts/pokerth_gr.ts @@ -3,12 +3,12 @@ Chat - + You cannot kick yourself! Δεν μπορείς να "διώξεις" τον εαυτό σου! - + You cannot kick any player - You are not game admin! Δεν μπορείς να "διώξεις" κάποιον παίχτη - Δεν είσαι ο admin! @@ -69,7 +69,7 @@ MyAvatarLabel - + Vote for kick this user @@ -894,284 +894,284 @@ Would you like to overwrite ? - mainWindow + gameTable - + PokerTH 0.6-beta - The Open-Source Texas Holdem Engine PokerTH 0.6-beta - The Open-Source Texas Holdem Engine - + Hands Αξία Φύλλων - + Chat Chat - + Log Log - + Away Away - + Manual Action (default) Χειροκίνητο (προεπιλογή) - + Auto-Check / Auto-Fold Αυτόματο: Ντούκου / Πάσο - + Auto-Check / Auto-Call-Any Αυτόματο: Ντούκου / Μέσα-σε-όλα - + Speed: Ταχύτητα: - + View Εμφάνιση - + Game Παιχνίδι - + Network Game Παιχνίδι Δικτύου - + Start Local Game ... Τοπικό Παιχνίδι ... - + Ctrl+N Ctrl+N - + Quit Κλείσιμο - + Ctrl+Q Ctrl+Q - + About PokerTH ... About PokerTH ... - + Settings ... Επιλογές ... - + Create Network Game ... Δημιουργία Παιχνιδιού Δικτύου ... - + Ctrl+O Ctrl+O - + Join Network Game ... Είσοδος σε Παιχνίδι Δικτύου ... - + Ctrl+J Ctrl+J - + Fullscreen Πλήρης Οθόνη - + Ctrl+F Ctrl+F - + Show/Hide Chat Window Εμφάνιση/Απόκρυψη Παραθύρου Chat - + Ctrl+T Ctrl+T - + Show/Hide Hands Window Εμφάνιση/Απόκρυψη Παραθύρου Αξίας Φύλλων - + Ctrl+H Ctrl+H - + Show/Hide Log Window Εμφάνιση/Απόκρυψη Παραθύρου Log - + Ctrl+L Ctrl+L - + Internet Game ... Παιχνίδι στο Internet ... - + Ctrl+I Ctrl+I - + Show/Hide Away Window Εμφάνιση/Απόκρυψη Παραθύρου - + Ctrl+A Ctrl+A - mainWindowImpl + gameTableImpl - + Stop Παύση - + Cmd+N to start a new game Ctrl+N - Νέο Παιχνίδι - + Ctrl+N to start a new game Ctrl+N - Νέο Παιχνίδι - + PokerTH %1 - The Open-Source Texas Holdem Engine PokerTH %1 - The Open-Source Texas Holdem Engine - + You cannot join Internet-Game-Lobby with "Human Player" as nickname. Please choose another one. Δεν μπορείς να εισέλθεις σε παιχνίδι Internet με nickname: "Human Player". Παρακαλώ επιλέξτε άλλο nickname. - + F1 - Fold | F2 - Check/Call | F3 - Bet/Raise | F4 - All-In F1 - Πάσο | F2 - Ντούκου/Μέσα | F3 - Ποντάρω/Ρελάνς | F4 - Όλα Μέσα - + F1 - All-In | F2 - Bet/Raise | F3 - Check/Call | F4 - Fold F1 - Όλα Μέσα | F2 - Ποντάρω/Ρελάνς | F3 - Ντούκου/Μέσα | F4 - Πάσο - + Start Έναρξη - + Lobby Lobby - + Network Error Λάθος Δικτύου - + Server address was not set. Η Server address δεν είχε ορισθεί. - + An invalid port was set (ports 0-1023 are not allowed). Έχει ορισθεί λάθος port (δεν επιτρέπονται ports από 0 εως 1023). - + Could not create a socket for TCP communication. Could not create a socket for TCP communication. - + Could not set the IP address. Could not set the IP address. - + Could not set the port for this type of address. Could not set the port for this type of address. - + The server name could not be resolved. Το όνομα του server δεν μπορεί να βρεθεί. - + Bind failed - please choose a different port. Bind failed - Παρακαλώ διαλέξτε διαφορετικό port. - + Internal network error: "listen" failed. Εσωτερικό λάθος δικτύου: "listen" failed. - + Server execution was terminated. Η λειτουργία του server τερματίστηκε. - + Could not connect to the server. Αδυναμία σύνδεσης με το server. - + Connection timed out. Please check the server address. @@ -1182,237 +1182,237 @@ If the server is behind a NAT-Router, make sure port forwarding has been set up Αν ο server βρίσκεται σε NAT-Router, βεβαιωθείτε ότι το port forwarding λειτουργεί. - + Internal network error: "select" failed. Εσωτερικό λάθος δικτύου: "select" failed. - + Internal network error: "send" failed. Εσωτερικό λάθος δικτύου: "send" failed. - + Connection was closed by the server. Η σύνδεση τερματίστηκε απ' τον server. - + Internal network error: Duplicate TCP connection. Εσωτερικό λάθος δικτύου: Duplicate TCP connection. - + An invalid network packet was received. Please make sure that all players use the same version of PokerTH. Λήψη λανθασμένου πακέτου δικτύου. Παρακαλώ βεβαιωθείτε ότι όλοι οι παίχτες χρησιμοποιούν την ίδια έκδοση του PokerTH. - + Internal state error. Please make sure that all players use the same version of PokerTH. Εσωτερικό λάθος. Παρακαλώ βεβαιωθείτε ότι όλοι οι παίχτες χρησιμοποιούν την ίδια έκδοση του PokerTH. - + The PokerTH server does not support this version of the game.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. Ο server του PokerTH δεν υποστηρίζει αυτή την έκδοση του παιχνιδιού.<br>Παρακαλώ επισκεφθείτε την διεύθυνση <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> και "κατεβάστε" την τελευταία έκδοση. - + Sorry, this server is already full. Συγνώμη, αυτός ο server είναι γεμάτος. - + Invalid password when joining the game. Please reenter the password and try again. Λανθασμένος κωδικός κατά την είσοδο στο παιχνίδι. Παρακαλώ δώστε τον κωδικό και ξαναπροσπαθήστε. - + The password is too long. Please choose another one. Ο κωδικός είναι πολύ μεγάλος. Παρακαλώ επιλέξτε κάποιον άλλο. - + Your player name is already used by another player. Please choose a different name. Το όνομα σας χρησιμοποιείται ήδη από έναν άλλο παίχτη. Παρακαλώ επιλέξτε ένα διαφορετικό όνομα. - + The player name is too short, too long or invalid. Please choose another one. Το όνομα σας είναι πολύ μικρό, ή λανθασμένο. Παρακαλώ επιλέξτε ένα διαφορετικό όνομα. - + The game name is either too short or too long. Please choose another one. Το όνομα του παιχνιδιού είναι πολύ μικρό ή πολύ μεγάλο. Παρακαλώ επιλέξτε ένα διαφορετικό όνομα. - + The game could not be found. Το παιχνίδι δεν βρέθηκε. - + The chat text is invalid. Το κείμενο του chat δεν είναι έγκυρο. - + The server referred to an unknown player. Aborting. Ο server αναφέρεται σε έναν άγνωστο παίχτη. Ακύρωση. - + Internal error: The current player could not be found. Εσωτερικό λάθος: Ο παίχτης δεν μπορεί να βρεθεί. - + Internal error: The current player is not active. Εσωτερικό λάθος: Ο παίχτης δεν είναι ενεργός. - + You were kicked from the server. "Διώχθηκες" απ' τον server. - + The client player count is invalid. Η μέτρηση των παιχτών είναι λανθασμένη. - + Too many manual blinds were set. Please reconfigure the manual blinds. Πολλά χειροκίνητα blinds. Παρακαλώ επανακαθορίστε τα χειροκίνητα blinds. - + An invalid avatar file was configured. Please choose a different avatar. Η εικόνα δεν είναι σωστή. Παρακαλώ επιλέξτε μια διαφορετική εικόνα. - + The selected avatar file is too large. Please choose a different avatar. Η επιλεγμένη εικόνα είναι πολύ μεγάλη. Παρακαλώ επιλέξτε μια διαφορετική εικόνα. - + An internal avatar error occured. Please report this to an admin in the lobby chat. Εσωτερικό λάθος στην εικόνα. Παρακαλώ αναφέρετε το λάθος σε κάποιον admin στο lobby chat. - + Could not start game: Synchronization failed. Αδύνατον να ξεκινήσει το παιχνίδι: Αποτυχία συγχρονισμού. - + The server is down for maintenance. Please try again later. Ο server δεν λειτουργεί λόγω συντήρησης. Παρακαλώ ξαναπροσπαθήστε αργότερα. - + An internal error occured. Εσωτερικό λάθος. - + Network Notification Network Notification - + You were kicked from the game. Σας "έδιωξαν" απ' το παιχνίδι. - + Sorry, this game is already full. Συγνώμη, αυτό το παιχνίδι είναι γεμάτο. - + Unable to join - the server has already started the game. Δεν μπορείτε να εισέλθετε - το παιχνίδι έχει ήδη ξεκινήσει. - + A new release of PokerTH is available.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. Μια νέα έκδοση του PokerTH είναι διαθέσιμη.<br>Παρακαλώ επισκεφθείτε την διεύθυνση <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> και "κατεβάστε" την τελευταία έκδοση. - + This beta release of PokerTH is outdated.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. Αυτή η δοκιμαστική έκδοση του PokerTH έχει ξεπερασθεί.<br>Παρακαλώ επισκεφθείτε την διεύθυνση <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> και "κατεβάστε" την τελευταία έκδοση. - + Manual mode set. You've got to choose yourself now. Χειροκίνητη επιλογή. Πρέπει να διαλέξεις μόνος σου τώρα. - + Auto mode set: Check or call any. Αυτόματο: Ντούκου ή Μέσα σε όλα. - + Auto mode set: Check or fold. Αυτόματο: Ντούκου ή Πάσο. - + Chat Chat - + Closing PokerTH during network game Κλείσιμο PokerTH κατα τη διάρκεια παιχνιδιού σε δίκτυο - + You are the hosting server. Do you want to close PokerTH anyway? Φιλοξενείτε τον server. Θέλετε να κλείσετε το PokerTH? - + PokerTH - Internet Game Message PokerTH - Μήνυμα Παιχνιδιού Internet - + Attention! Do you really want to leave the current game and go back to the lobby? Προσοχή! Θέλετε σίγουρα να φύγετε απ' το παιχνίδι και να επιστρέψετε στο lobby? - + You were temporarily banned from the server. - + Your server connection timed out due to inactivity. You are very welcome to reconnect! - + You cannot upload a new avatar file at this time. Please try again in a few seconds. - + Your admin state timed out due to inactivity. Feel free to create a new game! diff --git a/ts/pokerth_hu.ts b/ts/pokerth_hu.ts index 358e9969..5c335721 100644 --- a/ts/pokerth_hu.ts +++ b/ts/pokerth_hu.ts @@ -3,12 +3,12 @@ Chat - + You cannot kick yourself! - + You cannot kick any player - You are not game admin! @@ -74,7 +74,7 @@ MyAvatarLabel - + Vote for kick this user @@ -1018,382 +1018,382 @@ Would you like to overwrite ? - mainWindow + gameTable - + QMainWindow { background-image: url(:/guiv2/resources/guiv2/table.png); background-position: bottom center; background-origin: content; } QMainWindow { background-image: url(:/guiv2/resources/guiv2/table.png); background-position: bottom center; background-origin: content; } - + QGroupBox { background-image: url(:/graphics/resources/graphics/toolboxFrameBG.png) } QGroupBox { background-image: url(:/graphics/resources/graphics/toolboxFrameBG.png) } - + Speed: Sebesség: - + Stop Állj - + View Nézet - + Game Játék - + Ctrl+N Ctrl+N - + Quit Kilépés - + About PokerTH ... A PokerTH -ról ... - + Settings ... Beállítások ... - + Create Network Game ... Hálózati játék létrehozása ... - + Join Network Game ... Belépés hálózati játékba ... - + Fullscreen Teljes képernyő - + Hands Sorrend - + Chat Társalgó - + Log Napló - + Start Local Game ... Helyi játék indítása ... - + Ctrl+Q Ctrl+Q - + PokerTH 0.5 - The Open-Source Texas Holdem Engine PokerTH 0.5 - A nyílt forráskódú Texas Holdem játék - + ⌘F ⌘F - + Show/Hide Chat Window Társalgó mutatása/elrejtése - + ⌘C ⌘C - + ⌘H ⌘H - + Show/Hide Log Window Napló mutatása/elrejtése - + ⌘L ⌘L - + Show/Hide Hands Window Sorrend mutatása/elrejtése - + Ctrl+O Ctrl+O - + Ctrl+J Ctrl+J - + Ctrl+F Ctrl+F - + Ctrl+T Ctrl+T - + Ctrl+H Ctrl+H - + Ctrl+L Ctrl+L - + PokerTH 0.6 - The Open-Source Texas Holdem Engine PokerTH 0.5 - A nyílt forráskódú Texas Holdem játék {0.6 ?} - + Network Game - + Internet Game ... - + Ctrl+I - + Away - + Manual Action (default) - + Auto-Check / Auto-Fold - + Auto-Check / Auto-Call-Any - + PokerTH 0.6-beta - The Open-Source Texas Holdem Engine - + Show/Hide Away Window - + Ctrl+A - mainWindowImpl + gameTableImpl - + Ctrl+N to start a new game Ctrl+N - új játékot indít - + F1 - Fold/All-In | F2 - Check/Call | F3 - Bet/Raise F1 - Eldob/All-In | F2 - Mehet/Tart | F3 - Emel/Ráemel - + Network Error Hálózati hiba - + Server address was not set. Szerver cím nincs beállítva. - + An invalid port was set (ports 0-1023 are not allowed). Hibás port van beállítva (A portok 0-1023-ig nem engedélyezettek). - + Could not create a socket for TCP communication. Nem lehet létrehozni socket-et a TCP kommunikációhoz. - + Could not set the IP address. Nem lehet beállítani az IP címet. - + Could not set the port for this type of address. Nem lehet beállítani a port-ot ehhez a cím típushoz. - + The server name could not be resolved. A szerver név feloldása nem lehetséges. - + Bind failed - please choose a different port. Kötés sikertelen - kérlek válassz másik port-ot. - + Internal network error: "listen" failed. Belső hálózati hiba: "Listázás" sikertelen. - + Server execution was terminated. Szerver futtatása befejezve. - + Could not connect to the server. Nem lehet kapcsolódni a szerverhez. - + Internal network error: "select" failed. Belső hálózati hiba: "kiválasztás" sikertelen. - + Internal network error: "send" failed. Belső hálózati hiba: "küldés" sikertelen. - + Internal network error: Duplicate TCP connection. Belső hálózati hiba: Duplikált TCP kapcsolódás. - + An invalid network packet was received. Please make sure that all players use the same version of PokerTH. Érvénytelen hálózati csomag került fogadásra. Kérlek bizonyosodj meg róla, hogy az összes játékos ugyanazt a verziót használja. - + Internal state error. Please make sure that all players use the same version of PokerTH. Belső hiba. Kérlek bizonyosodj meg róla, hogy az összes játékos ugyanazt a verziót használja. - + The PokerTH server does not support this version of the game. Please update PokerTH. A PokerTH szerver nem támogatja a játéknak ezt a verzióját. Kérlek frissítsd a PokerTH-t. - + Sorry, this server is already full. Elnézést, a szerver jelenleg tele van. - + Unable to join - the server has already started the game. Csatlakozás sikertelen - a szerver már elindította a játékot. - + Invalid password when joining the game. Please reenter the password and try again. Hibás jelszó a játékhoz való csatlakozáskor. Kérlek írd be a jelszót mégegyszer és próbáld újra. - + The password is too long. Please choose another one. A jelszó túl hosszú. Kérlek válassz egy rövidebbet. - + Your player name is already used by another player. Please choose a different name. A játékos nevedetl már valaki használja. Kérlek válassz egy másik nevet. - + The player name is either too short or too long. Please choose another one. A játékos név túl hosszú vagy túl rövid. Kérlek válassz másik nevet. - + An internal error occured. Belső hiba lépett fel. - + Cmd+N to start a new game Cmd+N - új játék indítása - + Start Indítás - + Stop Állj - + Connection timed out. Please check the server address. @@ -1403,199 +1403,199 @@ Kérlek ellenőrizd a szerver címét. Ha a szerver NAT router mögött van, akkor bizonyosodj meg róla hogy a port továbbítás engedélyezett. - + Connection was closed by the server. A szerver megszakította a kapcsolatot. - + The server referred to an unknown player. Aborting. A szerver egy ismeretlen játékost azonosított. Megszakítás. - + You were kicked from the server. A szerver kidobott a játékból. - + The client player count is invalid. A kliens játékos száma érvénytelen. - + The game name is either too short or too long. Please choose another one. - + The game could not be found. - + The chat text is invalid. - + Network Notification - + You were kicked from the game. - + Sorry, this game is already full. - + Chat Társalgó - + Manual mode set. You've got to choose yourself now. - + Auto mode set: Check or call any. - + Auto mode set: Check or fold. - + You cannot join Internet-Game-Lobby with "Human Player" as nickname. Please choose another one. - + Internal error: The current player could not be found. - + Internal error: The current player is not active. - + Too many manual blinds were set. Please reconfigure the manual blinds. - + An invalid avatar file was configured. Please choose a different avatar. - + The selected avatar file is too large. Please choose a different avatar. - + Could not start game: Synchronization failed. - + F1 - Fold | F2 - Check/Call | F3 - Bet/Raise | F4 - All-In - + F1 - All-In | F2 - Bet/Raise | F3 - Check/Call | F4 - Fold - + The player name is too short, too long or invalid. Please choose another one. - + The server is down for maintenance. Please try again later. - + Closing PokerTH during network game - + You are the hosting server. Do you want to close PokerTH anyway? - + The PokerTH server does not support this version of the game.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. - + A new release of PokerTH is available.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. - + This beta release of PokerTH is outdated.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. - + PokerTH %1 - The Open-Source Texas Holdem Engine - + Lobby - + An internal avatar error occured. Please report this to an admin in the lobby chat. - + PokerTH - Internet Game Message - + Attention! Do you really want to leave the current game and go back to the lobby? - + You were temporarily banned from the server. - + Your server connection timed out due to inactivity. You are very welcome to reconnect! - + You cannot upload a new avatar file at this time. Please try again in a few seconds. - + Your admin state timed out due to inactivity. Feel free to create a new game! diff --git a/ts/pokerth_it.ts b/ts/pokerth_it.ts index 6b4c70b9..495bf02c 100644 --- a/ts/pokerth_it.ts +++ b/ts/pokerth_it.ts @@ -4,12 +4,12 @@ Chat - + You cannot kick any player - You are not game admin! Non puoi espellere nessuno - Non sei l'amministratore della partita! - + You cannot kick yourself! Non puoi autoespellerti! @@ -80,7 +80,7 @@ MyAvatarLabel - + Vote for kick this user Vota per espellere questo utente @@ -1972,313 +1972,313 @@ Si desidera sovrascriverlo? - mainWindow + gameTable - + About PokerTH ... Informazioni su PokerTH ... - + All In All In - + Auto-Check / Auto-Call-Any Auto-Check / Auto-Call (sempre) - + Auto-Check / Auto-Fold Auto-Check / Auto-Fold - + Away Away - + Back to lobby Torna alla lobby - + ⌘C ⌘C - + Chat Chat - + Create Network Game ... Crea Partita in Rete ... - + Ctrl+A Ctrl+A - + Ctrl+F Ctrl+F - + Ctrl+H Ctrl+H - + Ctrl+I Ctrl+I - + Ctrl+J Ctrl+J - + Ctrl+L Ctrl+L - + Ctrl+N Ctrl+N - + Ctrl+O Ctrl+O - + Ctrl+Q Ctrl+Q - + Ctrl+T Ctrl+T - + ⌘F ⌘F - + Fullscreen Tutto schermo - + Game Partita - + ⌘H ⌘H - + Hands Mani - + Internet Game ... Partita in Internet ... - + Join Network Game ... Unisciti a una Partita in Rete ... - + ⌘L ⌘L - + Log Registro - + Manual Action (default) Azione Manuale (predefinito) - + Network Game Partita in Rete - + PokerTH 0.5 - The Open-Source Texas Holdem Engine PokerTH 0.5 - Il Motore Texas Holdem 'Open-Source' - + PokerTH 0.6-beta - The Open-Source Texas Holdem Engine PokerTH 0.6-beta - Il Motore Texas Holdem Open-Source - + PokerTH 0.6 - The Open-Source Texas Holdem Engine PokerTH 0.6 - Il Motore Texas Holdem 'Open-Source' - + QGroupBox { background-image: url(:/graphics/resources/graphics/toolboxFrameBG.png) } QGroupBox { background-image: url(:/graphics/resources/graphics/toolboxFrameBG.png) } - + QMainWindow { background-image: url(:/guiv2/resources/guiv2/table.png); background-position: bottom center; background-origin: content; } QMainWindow { background-image: url(:/guiv2/resources/guiv2/table.png); background-position: bottom center; background-origin: content; } - + Quit Esci - + Settings ... Impostazioni ... - + Show/Hide Away Window Mostra/Nascondi Finestra Away - + Show/Hide Chat Window Mostra/Nascondi Finestra Chat - + Show/Hide Hands Window Mostra/Nascondi Finestra Mani - + Show/Hide Log Window Mostra/Nascondi Finestra Registro - + Speed: Velocità: - + Start Local Game ... Inizia una Partita in Locale ... - + Stop Ferma - + View Visualizza - mainWindowImpl + gameTableImpl - + A new release of PokerTH is available.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. E' disponibile una nuova release di PokerTH.<br>Visitare l'URL <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> e scaricare l'ultima versione. - + A new release of PokerTH is available. Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> and download the latest version. E' disponibile una nuova release di PokerTH. Visitare l'URL <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> e scaricare l'ultima versione. - + An internal avatar error occured. Please report this to an admin in the lobby chat. Si è verificato un errore interno sugli avatar. Si prega di riferire l'accaduto ad un admin nella chat prepartita. - + An internal error occured. Errore interno. - + An invalid avatar file was configured. Please choose a different avatar. E' stato impostato un file di avatar non valido. Si prega di scegliere un avatar diverso. - + An invalid network packet was received. Please make sure that all players use the same version of PokerTH. E' stato ricevuto un pacchetto non valido. Assicurarsi che tutti i giocatori abbiano la stessa versione di PokerTH. - + An invalid port was set (ports 0-1023 are not allowed). E' stata specificata una porta non valida (le porte 0-1023 non sono permesse). - + Attention! Do you really want to leave the current game and go back to the lobby? Attenzione! Vuoi veramente abbandonare la partita corrente e tornare al prepartita? - + Auto mode set: Check or call any. Impostata modalità automatica: Check o Call ogni volta. - + Auto mode set: Check or fold. Impostata modalità automatica: Check o Fold. - + Bind failed - please choose a different port. Bind fallito - selezionare una porta diversa. - + Chat Chat - + Closing PokerTH during network game Si sta chiudendo PokerTH durante una partita in rete - + Cmd+N to start a new game Ctrl+N per iniziare una nuova partita - + Connection timed out. Please check the server address. @@ -2289,315 +2289,315 @@ Controllare l'indirizzo del server. Se il server è alle spalle di un router NAT, assicurarsi che sia stato abilitato il port forwarding. - + Connection was closed by the server. Connessione interrotta dal server. - + Could not connect to the server. Impossibile connettersi al server. - + Could not create a socket for TCP communication. Impossibile creare un socket di comunicazione TCP. - + Could not set the IP address. Impossibile impostare l'indirizzo IP. - + Could not set the port for this type of address. Impossibile impostare la porta per questo tipo di indirizzo. - + Could not start game: Synchronization failed. Impossibile avviare la partita: sincronizzazione fallita. - + Ctrl+N to start a new game Ctrl+N per iniziare una nuova partita - + F1 - All-In | F2 - Bet/Raise | F3 - Check/Call | F4 - Fold F1 - All-In | F2 - Bet/Raise | F3 - Check/Call | F4 - Fold - + F1 - Bet/Raise | F2 - Check/Call | F3 - Fold/All-In F1 - Punto/Rilancio | F2 - Parola/Vedo | F3 - Passo/All-In - + F1 - Fold/All-In | F2 - Check/Call | F3 - Bet/Raise F1 - Passo/All-In | F2 - Parola/Vedo | F3 - Punto/Rilancio - + F1 - Fold | F2 - Check/Call | F3 - Bet/Raise | F4 - All-In F1 - Fold | F2 - Check/Call | F3 - Bet/Raise | F4 - All-In - + Internal error: The current player could not be found. Errore interno: Impossibile trovare il giocatore corrente. - + Internal error: The current player is not active. Errore interno: Il giocatore corrente non è attivo. - + Internal network error: Duplicate TCP connection. Errore di rete interno: connessione TCP duplicata. - + Internal network error: "listen" failed. Errore di rete interno: "listen" fallito. - + Internal network error: "select" failed. Errore di rete interno: "select" fallita. - + Internal network error: "send" failed. Errore di rete interno: "send" fallito. - + Internal state error. Please make sure that all players use the same version of PokerTH. Errore di stato interno. Assicurarsi che tutti i giocatori abbiano la stessa versione di PokerTH. - + Invalid password when joining the game. Please reenter the password and try again. Password sbagliata per la partita selezionata. Reinserire la password e riprovare. - + Lobby Prepartita - + Manual mode set. You've got to choose yourself now. Impostata modalità manuale. Devi scegliere da solo, ora. - + Network Error Errore di rete - + Network Notification Notifica in Rete - + PokerTH %1 - The Open-Source Texas Holdem Engine PokerTH %1 - Il Motore Texas Holdem Open-Source - + PokerTH - Internet Game Message PokerTH - Messaggio Partita su Internet - + Server address was not set. Indirizzo del server mancante. - + Server execution was terminated. L'esecuzione del server è stata interrotta. - + Sorry, this game is already full. Spiacente, la partita è già al completo. - + Sorry, this server is already full. Spiacente, il server è già al completo. - + Start Inizio - + Stop Ferma - + The chat text is invalid. Il testo nella chat non è valido. - + The client player count is invalid. Il numero di giocatori non è valido. - + The game could not be found. Impossibile trovare la partita. - + The game name is either too short or too long. Please choose another one. Il nome della partita è troppo corto o troppo lungo. Si prega di sceglierne un altro. - + The password is too long. Please choose another one. Questa password è troppo lunga. Sceglierne una diversa. - + The player name is either too short or too long. Please choose another one. Il nome del giocatore è troppo lungo o troppo corto. Sceglierne uno diverso. - + The player name is too short, too long or invalid. Please choose another one. Il nome del giocatore è troppo corto, troppo lungo o non valido. Si prega di sceglierne un altro. - + The player name is too short, too long or reserved. Please choose another one. Il nome del giocatore è troppo corto, troppo lungo o è riservato. Si prega di sceglierne un altro. - + The PokerTH server does not support this version of the game.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. Il server di PokerTH non supporta questa versione del gioco. <br>Visitare l'URL <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> e scaricare l'ultima versione. - + The PokerTH server does not support this version of the game. Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> and download the latest version. Il server di PokerTH non supporta questa versione del gioco.Visitare l'URL <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> e scaricare l'ultima release. - + The PokerTH server does not support this version of the game. Please update PokerTH. Il server di PokerTH non supporta questa versione del gioco. Si prega di aggiornare PokerTH. - + The selected avatar file is too large. Please choose a different avatar. Il file di avatar selezionato è troppo grande. Si prega di scegliere un avatar diverso. - + The server is down for maintenance. Please try again later. Il server è down per manutenzione. Si prega di riprovare più tardi. - + The server name could not be resolved. Impossibile risolvere il nome del server. - + The server referred to an unknown player. Aborting. Il server ha contattato un giocatore sconosciuto. Operazione annullata. - + The server requested a non-existing avatar. Il server ha richiesto un avatar inesistente. - + This beta release of PokerTH is outdated.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. Questa versione beta di PokerTH è obsoleta.<br>Visitare l'URL <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> e scaricare l'ultima versione. - + This beta release of PokerTH is outdated. Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> and download the latest version. Questa beta release di PokerTH è obsoleta. Visitare l'URL <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> e scaricare l'ultima versione. - + Too many manual blinds were set. Please reconfigure the manual blinds. Sono stati impostati troppi blind manuali. Si prega di riconfigurarli. - + Unable to join - the server has already started the game. Impossibile partecipare - la partita è già iniziata. - + You are the hosting server. Do you want to close PokerTH anyway? Stai facendo da server. Vuoi comunque chiudere PokerTH? - + You cannot join Internet-Game-Lobby with "Human Player" as nickname. Please choose another one. Impossibile accedere alla chat prepartita di una partita in rete col nickname "Giocatore Umano". Si prega di sceglierne un altro. - + Your player name is already used by another player. Please choose a different name. Il tuo nome è già in uso da un altro giocatore. Scegliere un nome diverso. - + You were kicked from the game. Sei stato espulso dalla partita. - + You were kicked from the server. Sei stato espulso dal server. - + You were temporarily banned from the server. Sei stato temporaneamente bandito dal server. - + Your server connection timed out due to inactivity. You are very welcome to reconnect! La connessione al server è andata in timeout per inattività. Riconnettiti, sei il benvenuto! - + You cannot upload a new avatar file at this time. Please try again in a few seconds. Non puoi caricare un nuovo avatar in questo momento. Per favore, riprova tra qualche secondo. - + Your admin state timed out due to inactivity. Feel free to create a new game! Il tuo status di admin è andato in timeout per inattività. Sentiti libero di creare una nuova partita! diff --git a/ts/pokerth_nl.ts b/ts/pokerth_nl.ts index 8ceff13d..9fd28e2b 100644 --- a/ts/pokerth_nl.ts +++ b/ts/pokerth_nl.ts @@ -4,12 +4,12 @@ Chat - + You cannot kick yourself! U kunt zichzelf niet verwijderen! - + You cannot kick any player - You are not game admin! U kunt geen spelers verwijderen. U bent niet de spelleider! @@ -80,7 +80,7 @@ MyAvatarLabel - + Vote for kick this user Stem om deze gebruiker te verwijderen @@ -2288,7 +2288,7 @@ Wilt u dat profiel overschrijven? - mainWindow + gameTable QMainWindow { background-image: url(:/guiv2/resources/guiv2/table.png); background-position: bottom center; background-origin: content; } @@ -2300,82 +2300,82 @@ Wilt u dat profiel overschrijven? QGroupBox { background-image: url(:/graphics/resources/graphics/toolboxFrameBG.png) } - + Speed: Snelheid: - + Stop Stop - + View Beeld - + Game Spel - + Ctrl+N Ctrl+N - + Quit Afsluiten - + About PokerTH ... Info over PokerTH ... - + Settings ... Instellingen ... - + Create Network Game ... Netwerkspel maken ... - + Join Network Game ... Met netwerkspel meedoen ... - + Fullscreen Volledig scherm - + Hands Handen - + Chat Chat - + Log Log - + Start Local Game ... Lokaal spel starten ... - + Ctrl+Q Ctrl+Q @@ -2390,7 +2390,7 @@ Wilt u dat profiel overschrijven? ⌘F - + Show/Hide Chat Window Chatvenster aan/uit @@ -2405,7 +2405,7 @@ Wilt u dat profiel overschrijven? ⌘H - + Show/Hide Log Window Logvenster aan/uit @@ -2415,233 +2415,233 @@ Wilt u dat profiel overschrijven? ⌘L - + Show/Hide Hands Window Handenvenster aan/uit - + Ctrl+O Ctrl+O - + Ctrl+J Ctrl+J - + Ctrl+F Ctrl+F - + Ctrl+T Ctrl+T - + Ctrl+H Ctrl+H - + Ctrl+L Ctrl+L - + PokerTH 0.6 - The Open-Source Texas Holdem Engine PokertTH 0.6 - De Open-Source Texas Holdem Simulator - + Network Game Netwerkspel - + Internet Game ... Internetspel ... - + Ctrl+I Ctrl+I - + All In All-in - + Away Afwezig - + Manual Action (default) Handmatige acties (standaard) - + Auto-Check / Auto-Fold Automatisch checken of folden - + Auto-Check / Auto-Call-Any Automatisch checken of callen - + PokerTH 0.6-beta - The Open-Source Texas Holdem Engine PokertTH 0.6 bèta - De Open-Source Texas Holdem-simulator - + Back to lobby Terug naar de lobby - + Show/Hide Away Window Afwezig-venster aan/uit - + Ctrl+A Ctrl+A - mainWindowImpl + gameTableImpl - + Ctrl+N to start a new game Ctrl+N om een nieuw spel te starten - + F1 - Fold/All-In | F2 - Check/Call | F3 - Bet/Raise F1 - Folden/All-In | F2 - Checken/Callen | F3 - Betten/Raisen - + Network Error Netwerkfout - + Server address was not set. Serveradres is niet ingesteld. - + An invalid port was set (ports 0-1023 are not allowed). Ongeldige poort ingesteld (poorten 0-1023 zijn niet toegestaan). - + Could not create a socket for TCP communication. Kan geen socket maken voor TCP-communicatie. - + Could not set the IP address. Kan het IP-adres niet instellen. - + Could not set the port for this type of address. Kan de poort niet instellen voor dit adrestype. - + The server name could not be resolved. Kan geen server met die naam vinden. - + Bind failed - please choose a different port. Kan niet verbinden - kies een andere poort. - + Internal network error: "listen" failed. Interne netwerkfout: "listen" niet uitvoerbaar. - + Server execution was terminated. Het uitvoeren op de server is afgebroken. - + Could not connect to the server. Kan geen verbinding maken met de server. - + Internal network error: "select" failed. Interne netwerkfout: "select" niet uitvoerbaar. - + Internal network error: "send" failed. Interne netwerkfout: "send" niet uitvoerbaar. - + Internal network error: Duplicate TCP connection. Interne netwerkfout: Dubbele TCP-verbinding. - + An invalid network packet was received. Please make sure that all players use the same version of PokerTH. Ongeldig netwerkpakket ontvangen. Zorg ervoor dat alle spelers dezelfde versie van PokerTH gebruiken. - + Internal state error. Please make sure that all players use the same version of PokerTH. Interne statusfout. Zorg ervoor dat alle spelers dezelfde versie van PokerTH gebruiken. - + The PokerTH server does not support this version of the game. Please update PokerTH. De PokerTH-server ondersteunt deze versie van het spel niet. Zorg ervoor dat u de nieuwste versie van PokerTH heeft. - + Sorry, this server is already full. Deze server is al vol. - + Unable to join - the server has already started the game. Kan niet meedoen - de server heeft het spel al gestart. - + Invalid password when joining the game. Please reenter the password and try again. Ongeldig wachtwoord bij het verbinden. Voer het wachtwoord opnieuw in en probeer het opnieuw. - + The password is too long. Please choose another one. Het wachtwoord is te lang. Kies een ander wachtwoord. - + Your player name is already used by another player. Please choose a different name. Uw spelersnaam is al in gebruik door een andere speler. @@ -2653,27 +2653,27 @@ Kies een andere naam. De spelersnaam is te kort of te lang. Kies een andere naam. - + An internal error occured. Interne fout opgetreden. - + Cmd+N to start a new game Cmd+N om een nieuw spel te starten - + Start Start - + Stop Stop - + Connection timed out. Please check the server address. @@ -2684,236 +2684,236 @@ Controleer het serveradres. Als de server zich achter een NAT-router bevindt, controleer dan daar of port forwarding goed ingesteld is. - + Connection was closed by the server. De verbinding is verbroken door de server. - + The server referred to an unknown player. Aborting. De server verwees naar een onbekende speler. Verbinding verbroken. - + You were kicked from the server. U bent verwijderd van de server. - + The client player count is invalid. Het aantal spelers dat meedoet klopt niet. - + The player name is too short, too long or reserved. Please choose another one. De spelersnaam is te kort, te lang, of al opgeëist. Kies een andere naam. - + The game name is either too short or too long. Please choose another one. De naam van het spel is te kort of te lang. Kies een andere naam. - + The game could not be found. Kan het spel niet vinden. - + The chat text is invalid. Ongeldige chattekst. - + Network Notification Netwerkmelding - + You were kicked from the game. U bent uit het spel verwijderd. - + Sorry, this game is already full. Dit spel is al vol. - + F1 - Bet/Raise | F2 - Check/Call | F3 - Fold/All-In F1 - Betten/Raisen | F2 - Checken/Callen | F3 - Folden/All-In - + Chat Chat - + Manual mode set. You've got to choose yourself now. Handmatige modus ingesteld. U moet nu zelf kiezen. - + Auto mode set: Check or call any. Automatische modus ingesteld: altijd checken of callen. - + Auto mode set: Check or fold. Automatische modus ingesteld: checken of folden. - + You cannot join Internet-Game-Lobby with "Human Player" as nickname. Please choose another one. U kunt met de standaardnaam geen verbinding maken met de lobby van het internetspel. Kies een andere naam. - + Internal error: The current player could not be found. Interne fout: De huidige speler kan niet worden gevonden. - + Internal error: The current player is not active. Interne fout: De huidige speler is niet actief. - + Too many manual blinds were set. Please reconfigure the manual blinds. Er zijn te veel handmatige blinds ingesteld. Stel de handmatige blinds opnieuw in. - + An invalid avatar file was configured. Please choose a different avatar. Er is een ongeldig avatarbestand ingesteld. Kies een andere avatar. - + The selected avatar file is too large. Please choose a different avatar. Het geselecteerde avatarbestand is te groot. Kies een andere avatar. - + The server requested a non-existing avatar. De server vroeg om een niet-bestaande avatar. - + Could not start game: Synchronization failed. Kan spel niet starten: Synchronisatie mislukt. - + F1 - Fold | F2 - Check/Call | F3 - Bet/Raise | F4 - All-In F1 - Folden | F2 - Checken/Callen | F3 - Betten/Raisen | F4 - All-In - + F1 - All-In | F2 - Bet/Raise | F3 - Check/Call | F4 - Fold F1 - All-In | F2 - Betten/Raisen | F3 - Checken/Callen | F4 - Folden - + The PokerTH server does not support this version of the game. Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> and download the latest version. De PokerTH-server ondersteunt deze versie van het spel niet. Ga naar <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> en download de nieuwste versie. - + The player name is too short, too long or invalid. Please choose another one. De spelersnaam is te kort, te lang of ongeldig. Kies een andere naam. - + The server is down for maintenance. Please try again later. Wegens onderhoud is de server niet beschikbaar. Probeer het later opnieuw. - + A new release of PokerTH is available. Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> and download the latest version. Er is een nieuwe release van PokerTH beschikbaar. Ga naar <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> en download de nieuwste versie. - + This beta release of PokerTH is outdated. Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> and download the latest version. Deze bètarelease van PokerTH is te oud.Ga naar <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> en download de nieuwste versie. - + Closing PokerTH during network game PokerTH afsluiten tijdens netwerkspel - + You are the hosting server. Do you want to close PokerTH anyway? U bent de server van dit spel. Wilt u PokerTH toch sluiten? - + The PokerTH server does not support this version of the game.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. De PokerTH-server ondersteunt deze versie van het spel niet.<br>Ga naar <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/</a> en download de nieuwste versie. - + A new release of PokerTH is available.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. Er is een nieuwe release van PokerTH beschikbaar.<br>Ga naar<a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> en download de nieuwste versie. - + This beta release of PokerTH is outdated.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. Deze bètarelease van PokerTH is te oud.<br>Ga naar <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/</a> en download de nieuwste versie. - + Lobby Lobby - + PokerTH - Internet Game Message PokerTH - Bericht van internetspel - + Attention! Do you really want to leave the current game and go back to the lobby? Opgelet! Wilt u werkelijk het huidige spel verlaten en teruggaan naar de lobby? - + PokerTH %1 - The Open-Source Texas Holdem Engine PokertTH %1 - De Open-Source Texas Holdem-simulator - + An internal avatar error occured. Please report this to an admin in the lobby chat. Er is een interne avatarfout opgetreden. Meld dit bij het chatten in de lobby aan een administrator. - + You were temporarily banned from the server. U bent tijdelijk verbannen van de server. - + Your server connection timed out due to inactivity. You are very welcome to reconnect! Uw verbinding met de server is verlopen wegens gebrek aan activiteit, maar u kunt gewoon opnieuw verbinding maken! - + You cannot upload a new avatar file at this time. Please try again in a few seconds. U kunt momenteel geen nieuw avatarbestand uploaden. Wacht enkele seconden en probeer het opnieuw. - + Your admin state timed out due to inactivity. Feel free to create a new game! Uw status van spelleider is verlopen wegens gebrek aan activiteit, maar u kunt gewoon een nieuw spel maken! diff --git a/ts/pokerth_no.ts b/ts/pokerth_no.ts index 2b94bacf..ccdbb577 100644 --- a/ts/pokerth_no.ts +++ b/ts/pokerth_no.ts @@ -3,12 +3,12 @@ Chat - + You cannot kick yourself! - + You cannot kick any player - You are not game admin! @@ -74,7 +74,7 @@ MyAvatarLabel - + Vote for kick this user @@ -1332,382 +1332,382 @@ Would you like to overwrite ? - mainWindow + gameTable - + QMainWindow { background-image: url(:/guiv2/resources/guiv2/table.png); background-position: bottom center; background-origin: content; } QMainWindow { background-image: url(:/guiv2/resources/guiv2/table.png); background-position: bottom center; background-origin: content; } - + QGroupBox { background-image: url(:/graphics/resources/graphics/toolboxFrameBG.png) } QGroupBox { background-image: url(:/graphics/resources/graphics/toolboxFrameBG.png) } - + Speed: Hastighet: - + Stop Stopp - + View Vis - + Game Spill - + Ctrl+N Ctrl+N - + Quit Avslutt - + About PokerTH ... Om PokerTH... - + Settings ... Innstillinger... - + Create Network Game ... Start nettverks-spill... - + Join Network Game ... Bli med i et nettverksspill... - + Fullscreen Fullskjerm - + Hands Hender - + Chat Prat - + Log Logg - + Start Local Game ... Start lokalt spill... - + Ctrl+Q Ctrl+Q - + PokerTH 0.5 - The Open-Source Texas Holdem Engine PokerTH 0.5 - Åpen kildekode Texas Holdem - + ⌘F ⌘F - + Show/Hide Chat Window - + ⌘C ⌘C - + ⌘H ⌘H - + Show/Hide Log Window - + ⌘L ⌘L - + Show/Hide Hands Window - + Ctrl+O - + Ctrl+J - + Ctrl+F - + Ctrl+T - + Ctrl+H - + Ctrl+L - + PokerTH 0.6 - The Open-Source Texas Holdem Engine PokerTH 0.5 - Åpen kildekode Texas Holdem {0.6 ?} - + Network Game - + Internet Game ... - + Ctrl+I - + Away - + Manual Action (default) - + Auto-Check / Auto-Fold - + Auto-Check / Auto-Call-Any - + PokerTH 0.6-beta - The Open-Source Texas Holdem Engine - + Show/Hide Away Window - + Ctrl+A - mainWindowImpl + gameTableImpl - + Cmd+N to start a new game ⌘N for å starte et nytt spill - + Ctrl+N to start a new game Ctrl+N for å starte et nytt spill - + F1 - Fold/All-In | F2 - Check/Call | F3 - Bet/Raise F1 - Kast/Sats allt | F2 - Pass/Syn | F3 - Sats/Høyne - + Start Start - + Stop Stopp - + Network Error Nettverksfeil - + Server address was not set. Tjener-adresse var ikke satt. - + An invalid port was set (ports 0-1023 are not allowed). En ugyldig port var satt (porter 0-1023 er ikke tillatt). - + Could not create a socket for TCP communication. Kunne ikke lage en kontakt for TCP-kommunikasjon. - + Could not set the IP address. Kunne ikke sette IP-adressen. - + Could not set the port for this type of address. Kunne ikke sette porten for denne typen adresse. - + The server name could not be resolved. Tjenernavnet kunne ikke konverteres. - + Bind failed - please choose a different port. Kunne ikke binde - vennligst velg en annen port. - + Internal network error: "listen" failed. Intern nettverksfeil - "listen" feilet. - + Server execution was terminated. Tjener-utførelse ble avbrutt. - + Could not connect to the server. Kunne ikke koble til tjeneren. - + Internal network error: "select" failed. Intern nettverksfeil - "select" feilet. - + Internal network error: "send" failed. Intern nettverksfeil - "send" feilet. - + Internal network error: Duplicate TCP connection. Intern nettverksfeil - Dobbel TCP-tilkobling. - + An invalid network packet was received. Please make sure that all players use the same version of PokerTH. En ugyldig TCP-pakke ble mottatt. Vennligst forsikre deg om at alle spillere bruker samme versjon av PokerTH. - + Internal state error. Please make sure that all players use the same version of PokerTH. Intern tilstands-feil. Vennligst forsikre deg om at alle spillere bruker samme versjon av PokerTH. - + The PokerTH server does not support this version of the game. Please update PokerTH. Tjeneren støtter ikke denne versjonen av spillet. Vennligst oppdater PokerTH. - + Sorry, this server is already full. Beklager, tjeneren har ikke plass til flere spillere. - + Unable to join - the server has already started the game. Kan ikke bli med - tjeneren har allerede startet spillet. - + Invalid password when joining the game. Please reenter the password and try again. Ugyldig passord. Prøv igjen. - + The password is too long. Please choose another one. Passordet er for langt. Vennligst velg et annet. - + Your player name is already used by another player. Please choose a different name. Ditt spillernavn er allerede valgt av en annen spiller. Vennligst velg et annet navn. - + The player name is either too short or too long. Please choose another one. Spillernavnet er enten for kort eller for langt. Vennligst velg et annet. - + An internal error occured. En intern feil oppstod. - + Connection timed out. Please check the server address. @@ -1718,199 +1718,199 @@ Vennligst sjekk tjener-adressen. Hvis tjeneren er bak en NAT-ruter, forsikre deg om at videresending er satt opp riktig. - + Connection was closed by the server. Tilkoblingen ble stengt av tjeneren. - + The server referred to an unknown player. Aborting. Tjeneren referete til en ukjent spiller. Avbryter. - + You were kicked from the server. Du ble kastet ut fra tjeneren. - + The client player count is invalid. Ugyldig antall spillere. - + The game name is either too short or too long. Please choose another one. - + The game could not be found. - + The chat text is invalid. - + Network Notification - + You were kicked from the game. - + Sorry, this game is already full. - + Chat Prat - + Manual mode set. You've got to choose yourself now. - + Auto mode set: Check or call any. - + Auto mode set: Check or fold. - + You cannot join Internet-Game-Lobby with "Human Player" as nickname. Please choose another one. - + Internal error: The current player could not be found. - + Internal error: The current player is not active. - + Too many manual blinds were set. Please reconfigure the manual blinds. - + An invalid avatar file was configured. Please choose a different avatar. - + The selected avatar file is too large. Please choose a different avatar. - + Could not start game: Synchronization failed. - + F1 - Fold | F2 - Check/Call | F3 - Bet/Raise | F4 - All-In - + F1 - All-In | F2 - Bet/Raise | F3 - Check/Call | F4 - Fold - + The player name is too short, too long or invalid. Please choose another one. - + The server is down for maintenance. Please try again later. - + Closing PokerTH during network game - + You are the hosting server. Do you want to close PokerTH anyway? - + The PokerTH server does not support this version of the game.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. - + A new release of PokerTH is available.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. - + This beta release of PokerTH is outdated.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. - + PokerTH %1 - The Open-Source Texas Holdem Engine - + Lobby - + An internal avatar error occured. Please report this to an admin in the lobby chat. - + PokerTH - Internet Game Message - + Attention! Do you really want to leave the current game and go back to the lobby? - + You were temporarily banned from the server. - + Your server connection timed out due to inactivity. You are very welcome to reconnect! - + You cannot upload a new avatar file at this time. Please try again in a few seconds. - + Your admin state timed out due to inactivity. Feel free to create a new game! diff --git a/ts/pokerth_pl.ts b/ts/pokerth_pl.ts index 16485618..b814ce85 100644 --- a/ts/pokerth_pl.ts +++ b/ts/pokerth_pl.ts @@ -3,12 +3,12 @@ Chat - + You cannot kick yourself! Nie możesz wyrzucić sam siebie! - + You cannot kick any player - You are not game admin! Nie możesz wyrzucić żadnego gracza - nie jesteś operatorem gry! @@ -79,7 +79,7 @@ MyAvatarLabel - + Vote for kick this user @@ -1108,24 +1108,24 @@ Chzesz go prezepisać ? - mainWindow + gameTable - + Hands Układy pokerowe - + Chat Chat - + Log Log - + Speed: Prędkość: @@ -1135,102 +1135,102 @@ Chzesz go prezepisać ? Stop - + View Widok - + Game Gra - + Start Local Game ... Rozpocznij grę lokalną ... - + Ctrl+N Ctrl+N - + Quit Zakończ - + Ctrl+Q Ctrl+Q - + About PokerTH ... O programie PokerTH ... - + Settings ... Ustawienia ... - + Create Network Game ... Utwórz grę sieciową ... - + Ctrl+O Ctrl+O - + Join Network Game ... Dołącz do gry sieciowej ... - + Ctrl+J Ctrl+J - + Fullscreen Pełny ekran - + Ctrl+F Ctrl+F - + Show/Hide Chat Window Pokaż/ukryj okno chatu - + Ctrl+T Ctrl+T - + Show/Hide Hands Window Pokaż/ukryj okno układów pokerowych - + Ctrl+H Ctrl+H - + Show/Hide Log Window Pokaż/ukryj okno logu - + Ctrl+L Ctrl+L @@ -1240,17 +1240,17 @@ Chzesz go prezepisać ? PokerTH 0.6 - Open-Source Engine dla Texas Holdem - + Network Game Gra sieciowa - + Internet Game ... Gra internetowa ... - + Ctrl+I Ctrl+I @@ -1260,120 +1260,120 @@ Chzesz go prezepisać ? All In - + Away Nieobecność - + Manual Action (default) Czekaj na decyzję gracza (domyślnie) - + Auto-Check / Auto-Fold Automatycznie czekaj/odrzuć - + Auto-Check / Auto-Call-Any Automatycznie czekaj/sprawdzaj-dowolną-stawkę - + PokerTH 0.6-beta - The Open-Source Texas Holdem Engine PokerTH 0.6-beta - Open-Source'owa gra Texas Holdem - + Show/Hide Away Window Pokaż/ukryj okno nieobecności - + Ctrl+A - mainWindowImpl + gameTableImpl - + Stop Stop - + Cmd+N to start a new game Cmd+N aby rozpocząć nową grę - + Ctrl+N to start a new game Ctrl+N aby rozpocząć nową grę - + Start Start - + Network Error Błąd sieciowy - + Server address was not set. Adres serwera nie został ustawiony. - + An invalid port was set (ports 0-1023 are not allowed). Ustawiony został niepoprawny port (porty 0-1023 nie są dozwolone). - + Could not create a socket for TCP communication. Nie udało się utworzyć gniazda sieciowego TCP. - + Could not set the IP address. Nie udało się ustawić adresu IP. - + Could not set the port for this type of address. Nie udało się ustawić portu dla tego typu adresu. - + The server name could not be resolved. Nie udało się znaleźć nazwy serwera. - + Bind failed - please choose a different port. Błąd - proszę wybrać inny port. - + Internal network error: "listen" failed. Wewnętrzny błąd sieciowy: "listen" nie wykonało się poprawnie. - + Server execution was terminated. Serwer został zatrzymany. - + Could not connect to the server. Nie udało się polączyć z serwerem. - + Connection timed out. Please check the server address. @@ -1384,167 +1384,167 @@ Proszę sprawdź adres serwera. Jeśli serwer jest w sieci z routerem NAT, to upewnij się, że "port forwarding" został poprawnie skonfigurowany. - + Internal network error: "select" failed. Wewnętrzny błąd sieciowy: "select" nie wykonało się poprawnie. - + Internal network error: "send" failed. Wewnętrzny błąd sieciowy: "send" nie wykonało się poprawnie. - + Connection was closed by the server. Połączenie zostało zerwane przez serwer. - + Internal network error: Duplicate TCP connection. Wewnętrzny błąd sieciowy: zdublowane połączenie TCP. - + An invalid network packet was received. Please make sure that all players use the same version of PokerTH. Została wyslana niepoprawna informacja sieciowa. Proszę upewnij się, że wszyscy gracze używają tej samej wersji PokerTH. - + Internal state error. Please make sure that all players use the same version of PokerTH. Wewnętrzny błąd stanu. Proszę upewnij się, że wszyscy gracze używają tej samej wersji PokerTH. - + Sorry, this server is already full. Niestety ten serwer jest już pełny. - + Unable to join - the server has already started the game. Nie możesz dołączyć do tej gry - rozgrywka się już rozpoczęła. - + Invalid password when joining the game. Please reenter the password and try again. Niepoprawne hasło. Proszę wpisz hasło jeszcze raz. - + The password is too long. Please choose another one. Hasło jest za długie. Proszę wprowadź inne hasło. - + Your player name is already used by another player. Please choose a different name. Twoj nick jest już używany przez kogoś innego. Proszę wybrać inny nick. - + The server referred to an unknown player. Aborting. Nieznany gracz na serwerze. Przerwanie gry. - + You were kicked from the server. Zostałeś wyrzucony z serwera. - + The client player count is invalid. Niewłaściwa liczba graczy. - + An internal error occured. Wystąpił błąd wewnętrzny. - + The game name is either too short or too long. Please choose another one. Nazwa gry jest za długa albo za krótka. Proszę wprowadź inną. - + The game could not be found. Gra nie została znaleziona. - + The chat text is invalid. Tekst rozmowy jest niepoprawny. - + Network Notification Informacja sieciowa - + You were kicked from the game. Zostałeś wyrzucony z serwera. - + Sorry, this game is already full. Niestety ten serwer jest w tej chwili pełny. - + Chat Chat - + Manual mode set. You've got to choose yourself now. Wybrano oczekiwanie na decyzję gracza. Musisz sam podjąć decyzję. - + Auto mode set: Check or call any. Tryb automatyczny: czekaj/sprawdzaj wszystkie stawki. - + Auto mode set: Check or fold. Tryb automatyczny: czekaj/odrzuć. - + You cannot join Internet-Game-Lobby with "Human Player" as nickname. Please choose another one. Nie możesz połączyć się z chatem gier internetowych z nickiem "Human Player". Proszę wybrierz inny nick. - + Internal error: The current player could not be found. Błąd wewnętrzny: Aktualny gracz nie mógł zostać odnależniony. - + Internal error: The current player is not active. Błąd wewnętrzny: Aktualny gracz nie jest aktywny. - + Too many manual blinds were set. Please reconfigure the manual blinds. Za dużo ustawionych własnych ślepych. Proszę jeszze raz skonfigurować. - + An invalid avatar file was configured. Please choose a different avatar. Został ustawiony nieoprawny plik avataru. Proszę wybrać inny. - + The selected avatar file is too large. Please choose a different avatar. Wybrany avatar jest za duży. Proszę wybrać inny. @@ -1554,17 +1554,17 @@ Proszę wybrierz inny nick. Serwer pytał o nie isniejący avatar. - + Could not start game: Synchronization failed. Nie udało się rozpoczać gry. Synchronizacja zakończona niepowodzeniem. - + F1 - Fold | F2 - Check/Call | F3 - Bet/Raise | F4 - All-In F1 - Odrzuć | F2 - Czekaj/Sprawdź | F3 - Postaw/Podbij | F4 - All-In - + F1 - All-In | F2 - Bet/Raise | F3 - Check/Call | F4 - Fold F1 - All-In | F2 - Postaw/Podbij | F3 - Czekaj/SprawdźCall | F4 - Odrzuć @@ -1576,12 +1576,12 @@ Please go to <a href="http://www.pokerth.net/" target="_blank& Proszę wejdź na stronę <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> i śćiągnij ostatnią wersję. - + The player name is too short, too long or invalid. Please choose another one. Nick gracza jest za krótki, za długi lub niepoprawny. Proszę wprowadź inny nick. - + The server is down for maintenance. Please try again later. Serwer jest w tej chwili nieosiągalny ze względu na konserwacje. Proszę spróbować póżniej. @@ -1600,74 +1600,74 @@ Please go to <a href="http://www.pokerth.net/" target="_blank& Proszę wejdź na stronę <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> i śćiągnij ostatnią wersję. - + Closing PokerTH during network game Zamknięcie PokerTH podczas gry siecowej - + You are the hosting server. Do you want to close PokerTH anyway? Jesteś gospodarzem. Chcesz naprawdę zamknąć PokerTH? - + PokerTH %1 - The Open-Source Texas Holdem Engine PokerTH %1 - Open-Source'owa gra Texas Holdem - + Lobby Chat gier internetowych - + The PokerTH server does not support this version of the game.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. Serwer PokerTH nie obsługuje wersji gry, której używasz.<br>Proszę odwiedzić stronę <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> i zainstalować najnowszą wersję. - + An internal avatar error occured. Please report this to an admin in the lobby chat. Wystąpił błąd z wbudowanym avatarem. Proszę poinformuj o tym administratora w chacie gier internetowych. - + A new release of PokerTH is available.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. Nowa wersja PokerTH jest dostępna.<br>Proszę odwiedzić stronę <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> i zainstalować najnowszą wersję. - + This beta release of PokerTH is outdated.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. Ta wersja beta PokerTH jest przestarzała.<br>Proszę odwiedzić stronę <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> i zainstalować najnowszą wersję. - + PokerTH - Internet Game Message PokerTH - Komunikat gry internetowej - + Attention! Do you really want to leave the current game and go back to the lobby? Uwaga! Czy na pewno chcesz opuścić tę grę i powrócić go chatu gier internetowych? - + You were temporarily banned from the server. - + Your server connection timed out due to inactivity. You are very welcome to reconnect! - + You cannot upload a new avatar file at this time. Please try again in a few seconds. - + Your admin state timed out due to inactivity. Feel free to create a new game! diff --git a/ts/pokerth_ptbr.ts b/ts/pokerth_ptbr.ts index 04fecb61..3ec29b70 100644 --- a/ts/pokerth_ptbr.ts +++ b/ts/pokerth_ptbr.ts @@ -1,3191 +1,3191 @@ - - - - - Chat - - - You cannot kick yourself! - Você não pode chutar a si mesmo! - - - - You cannot kick any player - You are not game admin! - Você não pode chutar qualquer jogador - Você não é o admin do jogo! - - - - LobbyChat - - - Successfully connected to - Conectado com Sucesso - - - - Joined channel: - Participando do Canal: - - - - as user - como usuário - - - - Network Notification - Notificação de Rede - - - - You were kicked from the server. - Você foi chutado do servidor. - - - - was kicked from the server by - você foi chutado do servidor pelo - - - - Connecting to Chat server... - Conectando ao servidor de bate-papo... - - - - An internal IRC error has occured: - Um erro de IRC interno ocorreu: - - - - Could not connect to the IRC server. Chat will be unavailable. - Não foi possivel conectar ao servidor IRC. O bate-papo não estará disponivel. - - - - The IRC server terminated the connection. Chat will be unavailable. - O servidor IRC terminou a conexão. O bate-papo não estará disponivel. - - - - An IRC action timed out. - Uma ação do IRC expirou. - - - - The IRC server reported an error: - O servidor IRC reportou um erro: - - - - MyAvatarLabel - - - Vote for kick this user - Vote para chutar o usuário - - - - aboutPokerth - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://commons.wikimedia.org/wiki/Main_Page"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">Wikimedia Commons</span></a></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"> - <span style=" font-weight:400;">for different popular avatar picture resources</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Viktoria, Benedikt, Erhard, Felix, Florian, Linus, Lothar, Mark</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for avatar pictures</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://kde-look.org/"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">http://kde-look.org/</span></a></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for different gpl lizensed sounds</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">doc_dos</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for self recorded chip sounds</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://commons.wikimedia.org/wiki/Main_Page"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">Wikimedia Commons</span></a></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"> - <span style=" font-weight:400;">para diferentes recursos populares do avatar</span></p><p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Viktoria, Benedikt, Erhard, Felix, Florian, Linus, Lothar, Mark</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Para imagens de avatar</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://kde-look.org/"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">http://kde-look.org/</span></a></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - para diferentes licenças de som gpl</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">doc_dos</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - para o próprio chip de som gravado</p></body></html> - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">PokerTH 0.5</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Poker Engine for the popular "Texas Holdem" Poker</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Singleplayer games with up to 6 computer-opponents</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Multiplayer network games</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Coded in C++ / QT4</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">© 2006-2007, FHammer &amp; FThauer</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">PokerTH 0.5</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Jogo de Poker para o popular "Texas Holdem" Poker</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Um jogador com até 6 pc-oponentes</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Jogos Multiplayer em rede</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Escrito em C++ / QT4</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">© 2006-2007, FHammer &amp; FThauer</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p></body></html> - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Projectpage: </span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://www.pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">http://www.pokerth.net</span></a></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">IRC: </span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> #pokerth (irc.freenode.net)</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Authors: </span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Felix Hammer (<a href="mailto:doitux@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">doitux@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - initial idea, basic architecture, gui implementation, linux package, webmaster@pokerth.net</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Florian Thauer (<a href="mailto:floty@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">floty@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - initial idea, basic architecture, engine development</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Lothar May (<a href="mailto:lotodore@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">lotodore@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - network development, windows package</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Oskar Lindqvist (<a href="mailto:tranberry@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">tranberry@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - gui graphics design, webdesign</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Erhard List (<a href="mailto:dunkanx@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">dunkanx@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - MacOS package</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Página do Projeto: </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://www.pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">http://www.pokerth.net</span></a></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">IRC: </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> #pokerth (irc.freenode.net)</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Autores: </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Felix Hammer (<a href="mailto:doitux@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">doitux@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Idéia Inicial, arquitetura básica, guia de implementação, pacote linux, webmaster@pokerth.net</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Florian Thauer (<a href="mailto:floty@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">floty@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Idéa Inicial, arquitetura básica, desenvolvimento de estrutura</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Lothar May (<a href="mailto:lotodore@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">lotodore@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Desenvolvimento da Rede, pacote windows</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Oskar Lindqvist (<a href="mailto:tranberry@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">tranberry@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - guia gráfico de design, webdesign</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Erhard List (<a href="mailto:dunkanx@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">dunkanx@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - pacote MacOS</p></body></html> - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">&lt;your translator name&gt; - &lt;your language&gt;</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> &lt;if you like your mail address&gt;</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">&lt;Maxputo&gt; - &lt;PortuguêsBR&gt;</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> &lt;maxputo@gmail.com&gt;</p></body></html> - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This Software is published under the Terms of GPL v2:</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> GNU GENERAL PUBLIC LICENSE</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Version 2, June 1991</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Copyright (C) 1989, 1991 Free Software Foundation, Inc.,</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Everyone is permitted to copy and distribute verbatim copies</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> of this license document, but changing it is not allowed.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Preamble</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> The licenses for most software are designed to take away your</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">freedom to share and change it. By contrast, the GNU General Public</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">License is intended to guarantee your freedom to share and change free</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">software--to make sure the software is free for all its users. This</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">General Public License applies to most of the Free Software</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Foundation's software and to any other program whose authors commit to</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">using it. (Some other Free Software Foundation software is covered by</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the GNU Lesser General Public License instead.) You can apply it to</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">your programs, too.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> When we speak of free software, we are referring to freedom, not</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">price. Our General Public Licenses are designed to make sure that you</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">have the freedom to distribute copies of free software (and charge for</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">this service if you wish), that you receive source code or can get it</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">if you want it, that you can change the software or use pieces of it</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">in new free programs; and that you know you can do these things.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> To protect your rights, we need to make restrictions that forbid</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">anyone to deny you these rights or to ask you to surrender the rights.</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">These restrictions translate to certain responsibilities for you if you</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">distribute copies of the software, or if you modify it.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> For example, if you distribute copies of such a program, whether</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">gratis or for a fee, you must give the recipients all the rights that</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">you have. You must make sure that they, too, receive or can get the</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">source code. And you must show them these terms so they know their</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">rights.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> We protect your rights with two steps: (1) copyright the software, and</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(2) offer you this license which gives you legal permission to copy,</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">distribute and/or modify the software.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Also, for each author's protection and ours, we want to make certain</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">that everyone understands that there is no warranty for this free</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">software. If the software is modified by someone else and passed on, we</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">want its recipients to know that what they have is not the original, so</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">that any problems introduced by others will not reflect on the original</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">authors' reputations.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Finally, any free program is threatened constantly by software</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">patents. We wish to avoid the danger that redistributors of a free</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">program will individually obtain patent licenses, in effect making the</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">program proprietary. To prevent this, we have made it clear that any</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">patent must be licensed for everyone's free use or not licensed at all.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> The precise terms and conditions for copying, distribution and</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">modification follow.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> GNU GENERAL PUBLIC LICENSE</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 0. This License applies to any program or other work which contains</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">a notice placed by the copyright holder saying it may be distributed</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">under the terms of this General Public License. The "Program", below,</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">refers to any such program or work, and a "work based on the Program"</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">means either the Program or any derivative work under copyright law:</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">that is to say, a work containing the Program or a portion of it,</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">either verbatim or with modifications and/or translated into another</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">language. (Hereinafter, translation is included without limitation in</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the term "modification".) Each licensee is addressed as "you".</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Activities other than copying, distribution and modification are not</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">covered by this License; they are outside its scope. The act of</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">running the Program is not restricted, and the output from the Program</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">is covered only if its contents constitute a work based on the</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Program (independent of having been made by running the Program).</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Whether that is true depends on what the Program does.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 1. You may copy and distribute verbatim copies of the Program's</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">source code as you receive it, in any medium, provided that you</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">conspicuously and appropriately publish on each copy an appropriate</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">copyright notice and disclaimer of warranty; keep intact all the</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">notices that refer to this License and to the absence of any warranty;</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">and give any other recipients of the Program a copy of this License</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">along with the Program.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">You may charge a fee for the physical act of transferring a copy, and</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">you may at your option offer warranty protection in exchange for a fee.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 2. You may modify your copy or copies of the Program or any portion</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">of it, thus forming a work based on the Program, and copy and</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">distribute such modifications or work under the terms of Section 1</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">above, provided that you also meet all of these conditions:</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> a) You must cause the modified files to carry prominent notices</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> stating that you changed the files and the date of any change.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> b) You must cause any work that you distribute or publish, that in</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> whole or in part contains or is derived from the Program or any</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> part thereof, to be licensed as a whole at no charge to all third</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> parties under the terms of this License.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> c) If the modified program normally reads commands interactively</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> when run, you must cause it, when started running for such</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> interactive use in the most ordinary way, to print or display an</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> announcement including an appropriate copyright notice and a</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> notice that there is no warranty (or else, saying that you provide</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> a warranty) and that users may redistribute the program under</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> these conditions, and telling the user how to view a copy of this</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> License. (Exception: if the Program itself is interactive but</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> does not normally print such an announcement, your work based on</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> the Program is not required to print an announcement.)</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">These requirements apply to the modified work as a whole. If</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">identifiable sections of that work are not derived from the Program,</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">and can be reasonably considered independent and separate works in</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">themselves, then this License, and its terms, do not apply to those</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">sections when you distribute them as separate works. But when you</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">distribute the same sections as part of a whole which is a work based</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">on the Program, the distribution of the whole must be on the terms of</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">this License, whose permissions for other licensees extend to the</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">entire whole, and thus to each and every part regardless of who wrote it.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Thus, it is not the intent of this section to claim rights or contest</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">your rights to work written entirely by you; rather, the intent is to</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">exercise the right to control the distribution of derivative or</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">collective works based on the Program.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">In addition, mere aggregation of another work not based on the Program</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">with the Program (or with a work based on the Program) on a volume of</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">a storage or distribution medium does not bring the other work under</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the scope of this License.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 3. You may copy and distribute the Program (or a work based on it,</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">under Section 2) in object code or executable form under the terms of</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Sections 1 and 2 above provided that you also do one of the following:</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> a) Accompany it with the complete corresponding machine-readable</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> source code, which must be distributed under the terms of Sections</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 1 and 2 above on a medium customarily used for software interchange; or,</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> b) Accompany it with a written offer, valid for at least three</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> years, to give any third party, for a charge no more than your</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> cost of physically performing source distribution, a complete</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> machine-readable copy of the corresponding source code, to be</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> distributed under the terms of Sections 1 and 2 above on a medium</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> customarily used for software interchange; or,</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> c) Accompany it with the information you received as to the offer</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> to distribute corresponding source code. (This alternative is</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> allowed only for noncommercial distribution and only if you</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> received the program in object code or executable form with such</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> an offer, in accord with Subsection b above.)</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The source code for a work means the preferred form of the work for</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">making modifications to it. For an executable work, complete source</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">code means all the source code for all modules it contains, plus any</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">associated interface definition files, plus the scripts used to</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">control compilation and installation of the executable. However, as a</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">special exception, the source code distributed need not include</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">anything that is normally distributed (in either source or binary</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">form) with the major components (compiler, kernel, and so on) of the</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">operating system on which the executable runs, unless that component</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">itself accompanies the executable.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If distribution of executable or object code is made by offering</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">access to copy from a designated place, then offering equivalent</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">access to copy the source code from the same place counts as</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">distribution of the source code, even though third parties are not</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">compelled to copy the source along with the object code.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 4. You may not copy, modify, sublicense, or distribute the Program</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">except as expressly provided under this License. Any attempt</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">otherwise to copy, modify, sublicense or distribute the Program is</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">void, and will automatically terminate your rights under this License.</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">However, parties who have received copies, or rights, from you under</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">this License will not have their licenses terminated so long as such</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">parties remain in full compliance.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 5. You are not required to accept this License, since you have not</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">signed it. However, nothing else grants you permission to modify or</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">distribute the Program or its derivative works. These actions are</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">prohibited by law if you do not accept this License. Therefore, by</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">modifying or distributing the Program (or any work based on the</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Program), you indicate your acceptance of this License to do so, and</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">all its terms and conditions for copying, distributing or modifying</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the Program or works based on it.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 6. Each time you redistribute the Program (or any work based on the</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Program), the recipient automatically receives a license from the</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">original licensor to copy, distribute or modify the Program subject to</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">these terms and conditions. You may not impose any further</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">restrictions on the recipients' exercise of the rights granted herein.</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">You are not responsible for enforcing compliance by third parties to</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">this License.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 7. If, as a consequence of a court judgment or allegation of patent</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">infringement or for any other reason (not limited to patent issues),</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">conditions are imposed on you (whether by court order, agreement or</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">otherwise) that contradict the conditions of this License, they do not</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">excuse you from the conditions of this License. If you cannot</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">distribute so as to satisfy simultaneously your obligations under this</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">License and any other pertinent obligations, then as a consequence you</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">may not distribute the Program at all. For example, if a patent</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">license would not permit royalty-free redistribution of the Program by</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">all those who receive copies directly or indirectly through you, then</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the only way you could satisfy both it and this License would be to</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">refrain entirely from distribution of the Program.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If any portion of this section is held invalid or unenforceable under</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">any particular circumstance, the balance of the section is intended to</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">apply and the section as a whole is intended to apply in other</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">circumstances.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">It is not the purpose of this section to induce you to infringe any</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">patents or other property right claims or to contest validity of any</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">such claims; this section has the sole purpose of protecting the</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">integrity of the free software distribution system, which is</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">implemented by public license practices. Many people have made</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">generous contributions to the wide range of software distributed</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">through that system in reliance on consistent application of that</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">system; it is up to the author/donor to decide if he or she is willing</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">to distribute software through any other system and a licensee cannot</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">impose that choice.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This section is intended to make thoroughly clear what is believed to</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">be a consequence of the rest of this License.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 8. If the distribution and/or use of the Program is restricted in</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">certain countries either by patents or by copyrighted interfaces, the</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">original copyright holder who places the Program under this License</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">may add an explicit geographical distribution limitation excluding</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">those countries, so that distribution is permitted only in or among</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">countries not thus excluded. In such case, this License incorporates</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the limitation as if written in the body of this License.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 9. The Free Software Foundation may publish revised and/or new versions</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">of the General Public License from time to time. Such new versions will</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">be similar in spirit to the present version, but may differ in detail to</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">address new problems or concerns.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Each version is given a distinguishing version number. If the Program</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">specifies a version number of this License which applies to it and "any</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">later version", you have the option of following the terms and conditions</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">either of that version or of any later version published by the Free</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Software Foundation. If the Program does not specify a version number of</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">this License, you may choose any version ever published by the Free Software</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Foundation.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 10. If you wish to incorporate parts of the Program into other free</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">programs whose distribution conditions are different, write to the author</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">to ask for permission. For software which is copyrighted by the Free</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Software Foundation, write to the Free Software Foundation; we sometimes</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">make exceptions for this. Our decision will be guided by the two goals</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">of preserving the free status of all derivatives of our free software and</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">of promoting the sharing and reuse of software generally.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> NO WARRANTY</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">REPAIR OR CORRECTION.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">POSSIBILITY OF SUCH DAMAGES.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> END OF TERMS AND CONDITIONS</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> How to Apply These Terms to Your New Programs</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> If you develop a new program, and you want it to be of the greatest</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">possible use to the public, the best way to achieve this is to make it</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">free software which everyone can redistribute and change under these terms.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> To do so, attach the following notices to the program. It is safest</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">to attach them to the start of each source file to most effectively</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">convey the exclusion of warranty; and each file should have at least</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the "copyright" line and a pointer to where the full notice is found.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> &lt;one line to give the program's name and a brief idea of what it does.&gt;</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Copyright (C) &lt;year&gt; &lt;name of author&gt;</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> This program is free software; you can redistribute it and/or modify</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> it under the terms of the GNU General Public License as published by</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> the Free Software Foundation; either version 2 of the License, or</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> (at your option) any later version.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> This program is distributed in the hope that it will be useful,</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> but WITHOUT ANY WARRANTY; without even the implied warranty of</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> GNU General Public License for more details.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> You should have received a copy of the GNU General Public License along</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> with this program; if not, write to the Free Software Foundation, Inc.,</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Also add information on how to contact you by electronic and paper mail.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If the program is interactive, make it output a short notice like this</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">when it starts in an interactive mode:</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Gnomovision version 69, Copyright (C) year name of author</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> This is free software, and you are welcome to redistribute it</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> under certain conditions; type `show c' for details.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The hypothetical commands `show w' and `show c' should show the appropriate</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">parts of the General Public License. Of course, the commands you use may</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">be called something other than `show w' and `show c'; they could even be</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">mouse-clicks or menu items--whatever suits your program.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">You should also get your employer (if you work as a programmer) or your</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">school, if any, to sign a "copyright disclaimer" for the program, if</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">necessary. Here is a sample; alter the names:</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Yoyodyne, Inc., hereby disclaims all copyright interest in the program</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> `Gnomovision' (which makes passes at compilers) written by James Hacker.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> &lt;signature of Ty Coon&gt;, 1 April 1989</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Ty Coon, President of Vice</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This General Public License does not permit incorporating your program into</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">proprietary programs. If your program is a subroutine library, you may</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">consider it more useful to permit linking proprietary applications with the</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">library. If this is what you want to do, use the GNU Lesser General</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Public License instead of this License.</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Este Software e publicado sob os termos GPL v2:</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> GNU GENERAL PUBLIC LICENSE</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Versão 2, Junho 1991</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Copyright (C) 1989, 1991 Free Software Foundation, Inc.,</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Qualquer um pode copiar e distribuir as copias</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> do documento desta licença, mas mudanças não são permitidas.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Preamble</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> A licença para a maioria dos softwares que são projetados para</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> remover sua autoria e mudá-lo. Por contrato, de GNU General Public</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">A licença garante sua liberdade para compartilhar livremente e mudar</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">o software--tenha certeza de que o software e livre para todos os usuários. Esta</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">General Public License é aplicada na maioria dos Softwares Livre</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Foundation's software e para qualquer outro programa que use direitos autorais e</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">escreva a frase. (Este e outros softwares livre da Foundation's software é coberto pelo</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">GNU Lesser General Public License instead.) Você também pode usar</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">em seus programas.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Quando falamos em software livre, estamos referindo a liberdade, não a</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">preço. A General Public Licenses foi escrita para garantir que você</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">tenha a liberdade para distribuir cópias do software livre (e mudar de acordo </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">com a sua vontade), você receberá o código ou começar um novo</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">se você quiser, assim você pode mudar o software ou partes dele</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">em novos softwares livre; e saiba que você pode fazer estás alterações.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Para proteger seus direitos, você precisa fazer restrição de proibido</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">para que qualquer um aceite ou não estas condições.</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Estas restrições traduz certas responsabilidades para você caso você</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">distribua cópias do software, ou se você modificá-lo.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Por exemplo, se você distribuir cópias de tal programa, sendo</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">grátis ou por um preço, você deve dar todos os direitos que</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">você tem. Você deve certificar-se de que eles, também, receberam ou pegaram o</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">código fonte. E você deve mostrar-lhes estes termos assim que sabem dos seus</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">direitos.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Para proteger seuys direitos faça dois passos: (1) copyright do software, e</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(2) ofereça esta licença caso deseje que esta de permissão legal pela cópia,</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">distribua e/ou modifique o software.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> também, para a proteção dos autores e a sua, nós queremos ter a certeza</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">que não há nenhuma garantia para este software</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">livre. Se o software for modificado por outra pessoa, nós</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">queremos esclarecer ao receptor que este não é original, então</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">qualquer problema introduzidos por terceiros não refletirá no original e na</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">reputação dos autores.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Finalmente, todo software livre é ameaçado constatemente pela patente de</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">softwares. Nós desejamos evitar o perigo da redistribuição de um software livre</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">para que este individualmente venha a obter patente, de fato fazendo o</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">proprietário do software. Para previnir isto, nós fizemos é deixar claro que</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">que a patente é livre para qualquer um que venha a usar o software ou parte dele.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Os termos e as condições precisos para a cópia, a distribuição e</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">modificação siga..</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> GNU GENERAL PUBLIC LICENSE</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 0. This License applies to any program or other work which contains</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">a notice placed by the copyright holder saying it may be distributed</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">under the terms of this General Public License. The "Program", below,</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">refers to any such program or work, and a "work based on the Program"</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">means either the Program or any derivative work under copyright law:</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">that is to say, a work containing the Program or a portion of it,</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">either verbatim or with modifications and/or translated into another</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">language. (Hereinafter, translation is included without limitation in</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the term "modification".) Each licensee is addressed as "you".</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Activities other than copying, distribution and modification are not</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">covered by this License; they are outside its scope. The act of</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">running the Program is not restricted, and the output from the Program</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">is covered only if its contents constitute a work based on the</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Program (independent of having been made by running the Program).</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Whether that is true depends on what the Program does.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 1. You may copy and distribute verbatim copies of the Program's</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">source code as you receive it, in any medium, provided that you</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">conspicuously and appropriately publish on each copy an appropriate</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">copyright notice and disclaimer of warranty; keep intact all the</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">notices that refer to this License and to the absence of any warranty;</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">and give any other recipients of the Program a copy of this License</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">along with the Program.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">You may charge a fee for the physical act of transferring a copy, and</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">you may at your option offer warranty protection in exchange for a fee.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 2. You may modify your copy or copies of the Program or any portion</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">of it, thus forming a work based on the Program, and copy and</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">distribute such modifications or work under the terms of Section 1</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">above, provided that you also meet all of these conditions:</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> a) You must cause the modified files to carry prominent notices</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> stating that you changed the files and the date of any change.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> b) You must cause any work that you distribute or publish, that in</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> whole or in part contains or is derived from the Program or any</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> part thereof, to be licensed as a whole at no charge to all third</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> parties under the terms of this License.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> c) If the modified program normally reads commands interactively</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> when run, you must cause it, when started running for such</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> interactive use in the most ordinary way, to print or display an</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> announcement including an appropriate copyright notice and a</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> notice that there is no warranty (or else, saying that you provide</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> a warranty) and that users may redistribute the program under</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> these conditions, and telling the user how to view a copy of this</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> License. (Exception: if the Program itself is interactive but</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> does not normally print such an announcement, your work based on</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> the Program is not required to print an announcement.)</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">These requirements apply to the modified work as a whole. If</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">identifiable sections of that work are not derived from the Program,</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">and can be reasonably considered independent and separate works in</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">themselves, then this License, and its terms, do not apply to those</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">sections when you distribute them as separate works. But when you</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">distribute the same sections as part of a whole which is a work based</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">on the Program, the distribution of the whole must be on the terms of</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">this License, whose permissions for other licensees extend to the</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">entire whole, and thus to each and every part regardless of who wrote it.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Thus, it is not the intent of this section to claim rights or contest</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">your rights to work written entirely by you; rather, the intent is to</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">exercise the right to control the distribution of derivative or</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">collective works based on the Program.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">In addition, mere aggregation of another work not based on the Program</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">with the Program (or with a work based on the Program) on a volume of</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">a storage or distribution medium does not bring the other work under</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the scope of this License.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 3. You may copy and distribute the Program (or a work based on it,</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">under Section 2) in object code or executable form under the terms of</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Sections 1 and 2 above provided that you also do one of the following:</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> a) Accompany it with the complete corresponding machine-readable</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> source code, which must be distributed under the terms of Sections</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 1 and 2 above on a medium customarily used for software interchange; or,</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> b) Accompany it with a written offer, valid for at least three</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> years, to give any third party, for a charge no more than your</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> cost of physically performing source distribution, a complete</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> machine-readable copy of the corresponding source code, to be</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> distributed under the terms of Sections 1 and 2 above on a medium</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> customarily used for software interchange; or,</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> c) Accompany it with the information you received as to the offer</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> to distribute corresponding source code. (This alternative is</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> allowed only for noncommercial distribution and only if you</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> received the program in object code or executable form with such</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> an offer, in accord with Subsection b above.)</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The source code for a work means the preferred form of the work for</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">making modifications to it. For an executable work, complete source</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">code means all the source code for all modules it contains, plus any</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">associated interface definition files, plus the scripts used to</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">control compilation and installation of the executable. However, as a</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">special exception, the source code distributed need not include</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">anything that is normally distributed (in either source or binary</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">form) with the major components (compiler, kernel, and so on) of the</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">operating system on which the executable runs, unless that component</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">itself accompanies the executable.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If distribution of executable or object code is made by offering</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">access to copy from a designated place, then offering equivalent</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">access to copy the source code from the same place counts as</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">distribution of the source code, even though third parties are not</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">compelled to copy the source along with the object code.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 4. You may not copy, modify, sublicense, or distribute the Program</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">except as expressly provided under this License. Any attempt</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">otherwise to copy, modify, sublicense or distribute the Program is</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">void, and will automatically terminate your rights under this License.</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">However, parties who have received copies, or rights, from you under</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">this License will not have their licenses terminated so long as such</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">parties remain in full compliance.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 5. You are not required to accept this License, since you have not</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">signed it. However, nothing else grants you permission to modify or</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">distribute the Program or its derivative works. These actions are</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">prohibited by law if you do not accept this License. Therefore, by</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">modifying or distributing the Program (or any work based on the</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Program), you indicate your acceptance of this License to do so, and</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">all its terms and conditions for copying, distributing or modifying</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the Program or works based on it.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 6. Each time you redistribute the Program (or any work based on the</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Program), the recipient automatically receives a license from the</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">original licensor to copy, distribute or modify the Program subject to</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">these terms and conditions. You may not impose any further</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">restrictions on the recipients' exercise of the rights granted herein.</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">You are not responsible for enforcing compliance by third parties to</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">this License.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 7. If, as a consequence of a court judgment or allegation of patent</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">infringement or for any other reason (not limited to patent issues),</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">conditions are imposed on you (whether by court order, agreement or</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">otherwise) that contradict the conditions of this License, they do not</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">excuse you from the conditions of this License. If you cannot</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">distribute so as to satisfy simultaneously your obligations under this</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">License and any other pertinent obligations, then as a consequence you</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">may not distribute the Program at all. For example, if a patent</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">license would not permit royalty-free redistribution of the Program by</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">all those who receive copies directly or indirectly through you, then</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the only way you could satisfy both it and this License would be to</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">refrain entirely from distribution of the Program.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If any portion of this section is held invalid or unenforceable under</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">any particular circumstance, the balance of the section is intended to</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">apply and the section as a whole is intended to apply in other</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">circumstances.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">It is not the purpose of this section to induce you to infringe any</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">patents or other property right claims or to contest validity of any</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">such claims; this section has the sole purpose of protecting the</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">integrity of the free software distribution system, which is</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">implemented by public license practices. Many people have made</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">generous contributions to the wide range of software distributed</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">through that system in reliance on consistent application of that</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">system; it is up to the author/donor to decide if he or she is willing</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">to distribute software through any other system and a licensee cannot</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">impose that choice.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This section is intended to make thoroughly clear what is believed to</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">be a consequence of the rest of this License.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 8. If the distribution and/or use of the Program is restricted in</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">certain countries either by patents or by copyrighted interfaces, the</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">original copyright holder who places the Program under this License</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">may add an explicit geographical distribution limitation excluding</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">those countries, so that distribution is permitted only in or among</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">countries not thus excluded. In such case, this License incorporates</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the limitation as if written in the body of this License.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 9. The Free Software Foundation may publish revised and/or new versions</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">of the General Public License from time to time. Such new versions will</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">be similar in spirit to the present version, but may differ in detail to</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">address new problems or concerns.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Each version is given a distinguishing version number. If the Program</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">specifies a version number of this License which applies to it and "any</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">later version", you have the option of following the terms and conditions</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">either of that version or of any later version published by the Free</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Software Foundation. If the Program does not specify a version number of</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">this License, you may choose any version ever published by the Free Software</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Foundation.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 10. If you wish to incorporate parts of the Program into other free</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">programs whose distribution conditions are different, write to the author</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">to ask for permission. For software which is copyrighted by the Free</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Software Foundation, write to the Free Software Foundation; we sometimes</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">make exceptions for this. Our decision will be guided by the two goals</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">of preserving the free status of all derivatives of our free software and</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">of promoting the sharing and reuse of software generally.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> NO WARRANTY</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">REPAIR OR CORRECTION.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">POSSIBILITY OF SUCH DAMAGES.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> END OF TERMS AND CONDITIONS</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> How to Apply These Terms to Your New Programs</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> If you develop a new program, and you want it to be of the greatest</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">possible use to the public, the best way to achieve this is to make it</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">free software which everyone can redistribute and change under these terms.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> To do so, attach the following notices to the program. It is safest</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">to attach them to the start of each source file to most effectively</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">convey the exclusion of warranty; and each file should have at least</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the "copyright" line and a pointer to where the full notice is found.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> &lt;one line to give the program's name and a brief idea of what it does.&gt;</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Copyright (C) &lt;year&gt; &lt;name of author&gt;</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> This program is free software; you can redistribute it and/or modify</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> it under the terms of the GNU General Public License as published by</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> the Free Software Foundation; either version 2 of the License, or</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> (at your option) any later version.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> This program is distributed in the hope that it will be useful,</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> but WITHOUT ANY WARRANTY; without even the implied warranty of</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> GNU General Public License for more details.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> You should have received a copy of the GNU General Public License along</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> with this program; if not, write to the Free Software Foundation, Inc.,</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Also add information on how to contact you by electronic and paper mail.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If the program is interactive, make it output a short notice like this</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">when it starts in an interactive mode:</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Gnomovision version 69, Copyright (C) year name of author</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> This is free software, and you are welcome to redistribute it</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> under certain conditions; type `show c' for details.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The hypothetical commands `show w' and `show c' should show the appropriate</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">parts of the General Public License. Of course, the commands you use may</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">be called something other than `show w' and `show c'; they could even be</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">mouse-clicks or menu items--whatever suits your program.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">You should also get your employer (if you work as a programmer) or your</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">school, if any, to sign a "copyright disclaimer" for the program, if</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">necessary. Here is a sample; alter the names:</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Yoyodyne, Inc., hereby disclaims all copyright interest in the program</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> `Gnomovision' (which makes passes at compilers) written by James Hacker.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> &lt;signature of Ty Coon&gt;, 1 April 1989</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Ty Coon, President of Vice</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This General Public License does not permit incorporating your program into</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">proprietary programs. If your program is a subroutine library, you may</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">consider it more useful to permit linking proprietary applications with the</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">library. If this is what you want to do, use the GNU Lesser General</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Public License instead of this License.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p></body></html> - - - - About - Sobre - - - - About PokerTH 0.5 - Sobre PokerTH 0.5 - - - - Close - Fechar - - - - License - Licença - - - - Project - Projeto - - - - Thanks to - Obrigado a - - - - Translation - Tradução - - - - About PokerTH 0.6 - Sobre PokerTH 0.6 - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">PokerTH 0.6</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">PokerTH 0.6</span></p></body></html> - - - - - Poker Engine for the popular "Texas Holdem" Poker -- Singleplayer games with up to 6 computer-opponents -- Multiplayer network games -- Coded in C++ / QT4 - - -© 2006-2007, FHammer, FThauer, LMay - - Jogo do popular "Texas Holdem" Poker- Singleplayer com até 6 oponentes-computador- Multiplayer com jogos via rede- Codificado em C++ / QT4© 2006-2007, FHammer, FThauer, LMay - - - - <a href="http://www.pokerth.net" target="_blank">http://www.pokerth.net<a> - <a href="http://www.pokerth.net" target="_blank">http://www.pokerth.net<a> - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Projectpage: </span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://www.pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">http://www.pokerth.net</span></a></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">IRC: </span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> #pokerth (irc.freenode.net)</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Authors: </span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Felix Hammer (<a href="mailto:doitux@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">doitux@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - initial idea, basic architecture, gui implementation, linux package</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Florian Thauer (<a href="mailto:floty@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">floty@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - initial idea, basic architecture, engine development</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Lothar May (<a href="mailto:lotodore@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">lotodore@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - network development, windows package</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Oskar Lindqvist (<a href="mailto:tranberry@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">tranberry@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - gui graphics design, webdesign</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Erhard List (<a href="mailto:dunkanx@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">dunkanx@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - MacOS package</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Projectpage: </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://www.pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">http://www.pokerth.net</span></a></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">IRC: </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> #pokerth (irc.freenode.net)</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Authors: </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Felix Hammer (<a href="mailto:doitux@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">doitux@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Idéia inicial, arquitetura básica, implementação de guia, pacote linux</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Florian Thauer (<a href="mailto:floty@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">floty@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Idéia inicial, arquitetura básica, engenharia de desenvolvimento</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Lothar May (<a href="mailto:lotodore@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">lotodore@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - desenvolvimento da rede, pacote windows</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Oskar Lindqvist (<a href="mailto:tranberry@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">tranberry@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - guia de gráficos e design, webdesign</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Erhard List (<a href="mailto:dunkanx@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">dunkanx@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Pacote MacOS </p></body></html> - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">!!!Please replace this with your translator name!!! - !!!Please replace this with your language!!! - !!!If you like please replace this with your mail address (otherwise please remove)!!!</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">!!!Leandro Fregnani!!! - !!!Português - Brasil!!! - !!!maxputo@gmail.com!!!</p></body></html> - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://commons.wikimedia.org/wiki/Main_Page"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">Wikimedia Commons</span></a></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"> - <span style=" font-weight:400;">for different popular avatar picture resources</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Viktoria, Benedikt, Erhard, Felix, Florian, Linus, Lothar, Mark</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for people avatar pictures</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">ZeiZei</span> </p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for "misc" avatar pictures</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://kde-look.org/"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">http://kde-look.org/</span></a></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for different gpl lizensed sounds</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">doc_dos</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for self recorded chip sounds</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://commons.wikimedia.org/wiki/Main_Page"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">Wikimedia Commons</span></a></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"> - <span style=" font-weight:400;">por diferentes e populares imagens de avatar</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Viktoria, Benedikt, Erhard, Felix, Florian, Linus, Lothar, Mark</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - para imagens de avatar</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">ZeiZei</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - por "mix" de imagens de avatar</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://kde-look.org/"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">http://kde-look.org/</span></a></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - por diferentes gpl sons licenciados</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">doc_dos</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - pela própria gravação de sons</p></body></html> - - - - About PokerTH 0.6-beta - Sobre PokerTH 0.6-beta - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">PokerTH 0.6-beta</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">PokerTH 0.6-beta</span></p></body></html> - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Projectpage: </span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://www.pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">http://www.pokerth.net</span></a></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">IRC: </span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> #pokerth (irc.freenode.net)</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Authors: </span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Felix Hammer (<a href="mailto:doitux@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">doitux@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - initial idea, basic architecture, gui implementation, linux package</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Florian Thauer (<a href="mailto:floty@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">floty@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - initial idea, basic architecture, engine development</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Lothar May (<a href="mailto:lotodore@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">lotodore@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - basic architecture, network development, windows package</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Oskar Lindqvist (<a href="mailto:tranberry@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">tranberry@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - gui graphics design, webdesign</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Erhard List (<a href="mailto:dunkanx@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">dunkanx@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - MacOS package</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Projectpage: </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://www.pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">http://www.pokerth.net</span></a></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">IRC: </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> #pokerth (irc.freenode.net)</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Authors: </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Felix Hammer (<a href="mailto:doitux@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">doitux@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - idéia incial, arquitetura básica, implementação do gui, pacote linux</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Florian Thauer (<a href="mailto:floty@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">floty@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - idéia inicial, arquitetura básica, engenharia básica</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Lothar May (<a href="mailto:lotodore@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">lotodore@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - arquitetura básica, desenvolvimento de rede, pacote windows</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Oskar Lindqvist (<a href="mailto:tranberry@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">tranberry@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - designer de gráficos, webdesign</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Erhard List (<a href="mailto:dunkanx@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">dunkanx@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Pacote MacOS</p></body></html> - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://commons.wikimedia.org/wiki/Main_Page"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">Wikimedia Commons</span></a></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"> - <span style=" font-weight:400;">for different popular avatar picture resources</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Viktoria, Benedikt, Erhard, Felix, Florian, Linus, Lothar, Mark, Steffi, Caro</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for people avatar pictures</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">ZeiZei</span> </p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for "misc" avatar pictures</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://kde-look.org/"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">http://kde-look.org/</span></a></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for different gpl lizensed sounds</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">doc_dos</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for self recorded chip sounds</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://commons.wikimedia.org/wiki/Main_Page"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">Wikimedia Commons</span></a></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"> - <span style=" font-weight:400;">por diferentes e populares imagens de avatar</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Viktoria, Benedikt, Erhard, Felix, Florian, Linus, Lothar, Mark</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - para imagens de avatar</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">ZeiZei</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - por "mix" de imagens de avatar</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://kde-look.org/"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">http://kde-look.org/</span></a></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - por diferentes gpl sons licenciados</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">doc_dos</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - pela própria gravação de sons</p></body></html> - - - - - Poker engine for the popular "Texas Hold'em" Poker -- Singleplayer games with up to 6 computer-opponents -- Multiplayer network games -- Coded in C++/Qt4 - - -© 2006-2007, FHammer, FThauer, LMay - - Jogo do popular "Texas Hold'em" Poker -- Singleplayer com até 6 oponentes-computador -- Multiplayer com jogos via rede -- Codificado em C++ / QT4 - - -© 2006-2007, FHammer, FThauer, LMay - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Projectpage: </span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://www.pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">http://www.pokerth.net</span></a></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">IRC: </span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> #pokerth (irc.freenode.net)</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Authors: </span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Felix Hammer (<a href="mailto:doitux@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">doitux@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - initial idea, basic architecture, gui implementation, linux package</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Florian Thauer (<a href="mailto:floty@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">floty@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - initial idea, basic architecture, engine development</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Lothar May (<a href="mailto:lotodore@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">lotodore@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - basic architecture, network development, windows package</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Oskar Lindqvist (<a href="mailto:tranberry@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">tranberry@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - gui graphics design, webdesign</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Erhard List (<a href="mailto:dunkanx@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">dunkanx@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - MacOS package</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Projectpage: </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://www.pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">http://www.pokerth.net</span></a></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">IRC: </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> #pokerth (irc.freenode.net)</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Authors: </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Felix Hammer (<a href="mailto:doitux@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">doitux@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Idéia inicial, arquitetura básica, implementação de guia, pacote linux</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Florian Thauer (<a href="mailto:floty@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">floty@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Idéia inicial, arquitetura básica, engenharia de desenvolvimento</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Lothar May (<a href="mailto:lotodore@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">lotodore@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - desenvolvimento da rede, pacote windows</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Oskar Lindqvist (<a href="mailto:tranberry@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">tranberry@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - guia de gráficos e design, webdesign</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Erhard List (<a href="mailto:dunkanx@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">dunkanx@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Pacote MacOS </p></body></html> - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">!!!Please replace this with your translator name!!! - !!!Please replace this with your language!!! - !!!If you like please replace this with your mail address (otherwise please remove)!!!</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Leandro "Maxputo" Fregnani - Português - Brasil - maxputo@gmail.com</p></body></html> - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://commons.wikimedia.org/wiki/Main_Page"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">Wikimedia Commons</span></a></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"> - <span style=" font-weight:400;">for different popular avatar picture resources</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Viktoria, Benedikt, Erhard, Felix, Florian, Linus, Lothar, Mark, Steffi, Caro</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for people avatar pictures</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">ZeiZei</span> </p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for "misc" avatar pictures</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://kde-look.org/"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">http://kde-look.org/</span></a></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for different gpl lizensed sounds</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">doc_dos</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for self recorded chip sounds</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://commons.wikimedia.org/wiki/Main_Page"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">Wikimedia Commons</span></a></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"> - <span style=" font-weight:400;">por diferentes e populares imagens de avatar</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Viktoria, Benedikt, Erhard, Felix, Florian, Linus, Lothar, Mark</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - para imagens de avatar</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">ZeiZei</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - por "mix" de imagens de avatar</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://kde-look.org/"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">http://kde-look.org/</span></a></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - por diferentes gpl sons licenciados</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">doc_dos</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - pela própria gravação de sons</p></body></html> - - - - aboutPokerthImpl - - - PokerTH %1 - PokerTH %1 - - - - About PokerTH %1 - Sobre PokerTH %1 - - - - changeCompleteBlindsDialog - - - Change Blinds Settings - Mudar Configurações de Apostas - - - - First small blind: - Primeiro small blind: - - - - Raise blinds: - Aumentar blinds: - - - - Every: - Sempre: - - - - hands - Mãos - - - - minutes - minutos - - - - Raise mode: - Modo aumentar: - - - - Always double blinds - Sempre duplo blinds - - - - Manual blinds order: - Ordem manual de blinds: - - - - Delete - Apagar - - - - Add - Adicionar - - - - After this: - Depois disto: - - - - Always raise about: - Sempre aumentar sobre: - - - - $ - $ - - - - Stay at last blind - Ficar com o último blind - - - - Afterwards: - Depois: - - - - Always raise by: - Sempre aumentar por: - - - - Keep last blind - Manter último blind - - - - changeCompleteBlindsDialogImpl - - - Manual Blinds Order - Ordem manual de blinds - - - - You cannot set more than 30 manual blinds. - Você não pode configurar mais de 30 blinds manual. - - - - changeHumanPlayerNameDialog - - - Name: - Nome: - - - - Network Error - Erro de Conexão - - - - connectToServerDialog - - - Cancel - Cancelar - - - - Connect to Server - Conectar ao Servidor - - - - Connecting to Server ... - Conectando ao Servidor ... - - - - connectToServerDialogImpl - - - Resolving address... - Rosolvendo endereço... - - - - Connecting to server... - Conectando ao servidor... - - - - Starting session... - Iniciando sessão... - - - - Connection established! - Conexão estabelecida! - - - - createInternetGameDialog - - - Create Game - Criar Jogo - - - - Game Speed for computer opponents: - Velocidade do Jogo para Oponentes Computador: - - - - Timeout for player action (sec): - Tempo esgotado para ação do jogador (sec): - - - - Maximum number of players: - Número máximo de jogadores: - - - - Start Cash: - Dinheiro Inicial: - - - - Small Blind: - Small Blind: - - - - Password: - Senha: - - - - Cancel - Cancelar - - - - Create Internet Game - Criar jogo de internet - - - - Internet Game Settings - Configurações para jogos de internet - - - - Blinds - Blinds - - - - Use saved blinds settings - Usar configurações de blinds salvo - - - - Change blinds settings ... - Alterar configurações de blinds ... - - - - $ - R$ - - - - Timeout for player action: - Tempo esgotado para ação do jogador: - - - - s - s - - - - createNetworkGameDialog - - - Cancel - Cancelar - - - - Create Game - Criar Jogo - - - - Create Network Game - Criar Jogo em Rede - - - - Game Speed for computer opponents: - Velocidade do Jogo para Oponentes Computador: - - - - Hands before raise small blind: - Hands antes de aumentar o small blind: - - - - Maximum number of players: - Número máximo de jogadores: - - - - Network Game Settings - Configurações para Jogo em Rede - - - - Small Blind: - Small Blind: - - - - Start Cash: - Dinheiro Inicial: - - - - Timeout for player action (sec): - Tempo esgotado para ação do jogador (sec): - - - - Blinds - Blinds - - - - Use saved blinds settings - Usar configurações de blinds salvo - - - - Change blinds settings ... - Alterar configurações de blinds ... - - - - $ - R$ - - - - Timeout for player action: - Tempo esgotado para ação do jogador: - - - - s - s - - - - gameLobbyDialog - - - Game Lobby - Sala de Jogo - - - - Lobby-Chat - Sala-Bate Papo - - - - Game - Jogo - - - - Private - Privado - - - - Game Info - Info de jogo - - - - Connected Players - Jogadores Conectados - - - - Fill up with computer opponents - Adicionar oponentes computadores - - - - Start Game - Iniciar Jogo - - - - Kick - Chutar - - - - Hands before raise blinds: - Hands antes de aumentar o blind: - - - - Maximum number of players: - Número máximo de jogadores: - - - - Small Blind: - Small Blind: - - - - Start Cash: - Dinheiro Inicial: - - - - Timeout for player action (sec): - Tempo esgotado para ação do jogador (sec): - - - - Leave Game - Deixar o Jogo - - - - Create Game - Criar Jogo - - - - Join Game - Entrar no Jogo - - - - Available Players - Jogadores disponiveis - - - - Players - Jogadores - - - - Kick Player - Chutar Jogador - - - - State - Estado - - - - Maximum number of players: - Número máximo de jogadores: - - - - Start Cash: - Dinheiro Inicial: - - - - First small blind: - Primeiro small blind: - - - - Blinds raise mode: - Mode de aumento do Blind: - - - - Manual blinds list: - Lista manual de blinds: - - - - Timeout for player action (sec): - Tempo esgotado para ação do jogador (sec): - - - - Internet Game Lobby - Sala para jogos de Internet - - - - Blinds raise interval: - Intervalo de aumento do Blind: - - - - Join any game - Entrar em qualquer jogo - - - - gameLobbyDialogImpl - - - game - jogo - - - - Game Info - Info de jogo - - - - Server Error - Erro de Servidor - - - - You should not kick yourself from this game! - Você não pode se chutar deste jogo! - - - - Joining a private Game - Entrando num jogo privado - - - - You are about to join a private game. Please enter the password! - Você esta prestes a entrar em um jogo privado. Por favor entre com a senha! - - - - running - executando - - - - open - abrir - - - - hands - Mãos - - - - minutes - minutos - - - - double blinds - duplo blinds - - - - manual blinds order - ordem manual de blinds - - - - Starting game. Please wait ... - Começando jogo. Por favor aguarde ... - - - - running games: %1 - partidas em jogo: %1 - - - - open games: %1 - partidas abertas: %1 - - - - players in chat: %1 - jogadores no bate-papo: %1 - - - - connected players: %1 - jogadores conectados: %1 - - - - %1's game - %1's jogo - - - - joinNetworkGameDialog - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://en.wikipedia.org/wiki/Ipv6"><span style=" text-decoration: underline; color:#0000ff;">What is this?</span></a></p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://pt.wikipedia.org/wiki/Ipv6"><span style=" text-decoration: underline; color:#0000ff;">O que é isso?</span></a></p></body></html> - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol"><span style=" text-decoration: underline; color:#0000ff;">What is this?</span></a></p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol"><span style=" text-decoration: underline; color:#0000ff;">O que é isso?</span></a></p></body></html> - - - - Address - Endereço - - - - Close - Fechar - - - - Connect - Conectar - - - - Connect to Network Game - Conectar o Jogo em Rede - - - - Delete - Apagar - - - - IP Address / Domain Name: - Endereço IP / Nome de Domínio: - - - - IPv6 - IPv6 - - - - Join Network Game - Entrar Jogo em Rede - - - - myServerProfile1 - meuperfildeservidor1 - - - - Name - Nome - - - - Password (optional): - Senha (opcional): - - - - Port - Porta - - - - Port: - Porta: - - - - Profile Name: - Nome de Perfil: - - - - Save - Salvar - - - - SCTP - SCTP - - - - Server Profiles - Perfil de Servidores - - - - Use IPv6 - Usar IPv6 - - - - Use SCTP - Usar SCTP - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol"><span style=" text-decoration: underline; color:#0000ff;">What is this?</span></a></p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol"><span style=" text-decoration: underline; color:#0000ff;">O que é isso?</span></a></p></body></html> - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://en.wikipedia.org/wiki/Ipv6"><span style=" text-decoration: underline; color:#0000ff;">What is this?</span></a></p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://pt.wikipedia.org/wiki/Ipv6"><span style=" text-decoration: underline; color:#0000ff;">O que é isso?</span></a></p></body></html> - - - - joinNetworkGameDialogImpl - - - A profile with the name: " - Perfil com o nome: " - - - - Could not load server-profiles-file: - - Não foi possível carregar servidor-perfil-arquivo: - - - - - Could not read server-profiles list - Não foi possível ler o servidor-lista de perfil - - - - Could not save server-profiles-file: - - Não foi possível salvar servidor-perfil-arquivo: - - - - - Load Server-Profile-File Error - Erro ao carregar servidor-perfil-arquivo - - - - Read Server-Profile List Error - Erro ao ler servidor-lista de perfil - - - - Save Server Profile Error - Erro ao salvar Perfil de Servidor - - - - Save Server-Profile-File Error - Erro ao salvar servidor-perfil-arquivo - - - - A profile with the name: %1 already exists. -Would you like to overwrite ? - Um perfil com este nome: %1 já existe. -Você gostaria de substituir ? - - - - mainWindow - - - About PokerTH ... - Sobre PokerTH ... - - - - Chat - Bate Papo - - - - Create Network Game ... - Criar Jogo em rede ... - - - - Ctrl+F - Ctrl+F - - - - Ctrl+H - Ctrl+H - - - - Ctrl+J - Ctrl+J - - - - Ctrl+L - Ctrl+L - - - - Ctrl+N - Ctrl+N - - - - Ctrl+O - Ctrl+O - - - - Ctrl+Q - Ctrl+Q - - - - Ctrl+T - Ctrl+T - - - - Fullscreen - Tela Cheia - - - - Game - Jogo - - - - Hands - Hands - - - - Join Network Game ... - Entrar em jogo de rede ... - - - - Log - Registro - - - - PokerTH 0.5 - The Open-Source Texas Holdem Engine - PokerTH 0.5 - Jogo Texas Holdem Open-Source - - - - QGroupBox { background-image: url(:/graphics/resources/graphics/toolboxFrameBG.png) } - QGroupBox { background-image: url(:/graphics/resources/graphics/toolboxFrameBG.png) } - - - - QMainWindow { background-image: url(:/guiv2/resources/guiv2/table.png); background-position: bottom center; background-origin: content; } - QMainWindow { background-image: url(:/guiv2/resources/guiv2/table.png); background-position: bottom center; background-origin: content; } - - - - Quit - Sair - - - - Settings ... - Configurações ... - - - - Show/Hide Chat Window - Mostrar/Esconder Janela de Bate Papo - - - - Show/Hide Hands Window - Mostrar/Esconder Janela de Hands - - - - Show/Hide Log Window - Mostrar/Esconder Janela de Registro - - - - Speed: - Velocidade: - - - - Start Local Game ... - Iniciar Jogo Local ... - - - - Stop - Parar - - - - View - Visualizar - - - - PokerTH 0.6 - The Open-Source Texas Holdem Engine - PokerTH 0.6 - Jogo Texas Holdem Open-Source - - - - Network Game - Jogo em Rede - - - - Internet Game ... - Jogo na internet ... - - - - Ctrl+I - Ctrl+I - - - - All In - Apostar tudo - - - - Away - Fora - - - - Manual Action (default) - Ação Manual (padrão) - - - - Auto-Check / Auto-Fold - Auto-Check / Auto-Desistir - - - - Auto-Check / Auto-Call-Any - Auto-Check / Auto-Qualquer-Call - - - - PokerTH 0.6-beta - The Open-Source Texas Holdem Engine - PokerTH 0.6-beta - Jogo Texas Holdem Open-Source - - - - Back to lobby - Voltar a Sala - - - - Show/Hide Away Window - Mostrar/Esconder Janela de indisponível - - - - Ctrl+A - Ctrl+A - - - - mainWindowImpl - - - An internal error occured. - Um erro interno ocorreu. - - - - An invalid network packet was received. -Please make sure that all players use the same version of PokerTH. - Um pacote inválido foi recebido. -Por favor tenha certeza de que todos os jogadores usam a mesma versão do PokerTH. - - - - An invalid port was set (ports 0-1023 are not allowed). - Porta inválida adicionada (portas 0-1023 não são permitidas). - - - - Bind failed - please choose a different port. - A conexão falhou - por favor escolha uma porta diferente. - - - - Cmd+N to start a new game - Cmd+N para começar um novo jogo - - - - Connection timed out. -Please check the server address. - -If the server is behind a NAT-Router, make sure port forwarding has been set up on server side. - Não houve conexão. -Por favor verifique o endereço do servidor. - -Caso o servidor esteja atrás de um NAT-Router, tenha certeza de que a porta esteja configurada no servidor. - - - - Connection was closed by the server. - Conexão foi fechada pelo servidor. - - - - Could not connect to the server. - Não foi possível conectar ao servidor. - - - - Could not create a socket for TCP communication. - Não foi possível criar um socket para comunicação por TCP. - - - - Could not set the IP address. - Não foi possível adicionar o endereço IP. - - - - Could not set the port for this type of address. - Não foi possível adicionar a porta para este endereço. - - - - Ctrl+N to start a new game - Ctrl+N para começar um novo jogo - - - - F1 - Fold/All-In | F2 - Check/Call | F3 - Bet/Raise - F1 - Desistir/Apostar Tudo | F2 - Check/Call | F3 - Aposta/Aumentar - - - - Internal network error: "listen" failed. - Erro interno de rede: "listen" falhou. - - - - Internal network error: "select" failed. - Erro interno de rede: "selecionar" falhou. - - - - Internal network error: "send" failed. - Erro interno de rede: "enviar" falhou. - - - - Internal network error: Duplicate TCP connection. - Erro interno de rede: Conexão TCP duplicada. - - - - Internal state error. -Please make sure that all players use the same version of PokerTH. - Erro interno de estado. -Por favor tenha certeza de que todos os jogadores usam a mesma versão do PokerTH. - - - - Invalid password when joining the game. -Please reenter the password and try again. - Senha inválida ao tentar entrar no jogo. -Por favor redigite a senha e tente novamente. - - - - Network Error - Erro de Rede - - - - Server address was not set. - Endereço de servidor não foi adicionado. - - - - Server execution was terminated. - Execusão do servidor foi terminada. - - - - Sorry, this server is already full. - Desculpe, este servidor está cheio. - - - - Start - Começar - - - - Stop - Parar - - - - The client player count is invalid. - A conta do cliente é invalida. - - - - The password is too long. Please choose another one. - A senha é muito longa. Por favor escolha outra. - - - - The player name is either too short or too long. Please choose another one. - O nome do jogador é muito pequeno ou muito longo. Por favor escolha outro. - - - - The PokerTH server does not support this version of the game. -Please update PokerTH. - O serivodor da PokerTH não suporta esta versão do jogo. -Por favor atualize o PokerTH. - - - - The server name could not be resolved. - O nome do servidor não pode ser resovildo. - - - - The server referred to an unknown player. Aborting. - O servidor refere-se a um jogador desconhecido. Abortando. - - - - Unable to join - the server has already started the game. - Impossível entrar - o servidor já começou o jogo. - - - - You were kicked from the server. - Você foi chutado pelo servidor. - - - - Your player name is already used by another player. -Please choose a different name. - Seu nome está sendo usado por outro jogador. -Por favor escolha um nome diferente. - - - - The player name is too short, too long or reserved. Please choose another one. - O nome do jogador é muito curto, longo ou reservado. Por favor escolha outro. - - - - The game name is either too short or too long. Please choose another one. - O nome do jogo é muito curto ou longo. Por favor escolha outro. - - - - The game could not be found. - O jogo não pode ser encontrado. - - - - The chat text is invalid. - O texto do bate-papo é invalido. - - - - Network Notification - Notificação de Rede - - - - You were kicked from the game. - Você foi chutado do jogo. - - - - Sorry, this game is already full. - Desculpe, este jogo está cheio. - - - - F1 - Bet/Raise | F2 - Check/Call | F3 - Fold/All-In - F1 - Bet/Aumentar | F2 - Check/Call | F3 - Desistir/Apostar tudo - - - - Chat - Bate Papo - - - - Manual mode set. You've got to choose yourself now. - Modo manual configurado. Você precisa se escolher agora. - - - - Auto mode set: Check or call any. - Modo Auto configurado: Qualquer Check ou Call. - - - - Auto mode set: Check or fold. - Modo Auto Configurado: Check ou desistir. - - - - You cannot join Internet-Game-Lobby with "Human Player" as nickname. -Please choose another one. - Você não pode entrar na sala do jogo "Jogador Humano" com este apelido. -Por favor escolha outro. - - - - Internal error: The current player could not be found. - Erro interno: O jogador atual não pode ser encontrado. - - - - Internal error: The current player is not active. - Erro interno: O jogador atual não está ativo. - - - - Too many manual blinds were set. Please reconfigure the manual blinds. - Muitos manual blinds configurados. Por favor reconfigure o manual blinds. - - - - An invalid avatar file was configured. Please choose a different avatar. - Um avatar invalido foi configurado. Por favor escolha outro. - - - - The selected avatar file is too large. Please choose a different avatar. - O avatar selecionado é muito grande. Por favor escolha outro avatar. - - - - The server requested a non-existing avatar. - O servidor requisitou um avatar não-existente. - - - - Could not start game: Synchronization failed. - Não pode ser iniciado o jogo: Falha de Sincronização. - - - - F1 - Fold | F2 - Check/Call | F3 - Bet/Raise | F4 - All-In - F1 - Desistir | F2 - Check/Call | F3 - Aposta/Aumentar | F4 - Apostar-tudo - - - - F1 - All-In | F2 - Bet/Raise | F3 - Check/Call | F4 - Fold - F1 - Apostar-tudo | F2 - Aposta/Aumentar | F3 - Check/Call | F4 - Desistir - - - - The PokerTH server does not support this version of the game. -Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> and download the latest version. - O servidor do PokerTH não suporta está versão do jogo. -Por favor vá para <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> e faça o download da última versão. - - - - The player name is too short, too long or invalid. Please choose another one. - O nome do jogador é muito curto, longo ou invalido. Por favor escolha outro. - - - - The server is down for maintenance. Please try again later. - O servidor está paralizado para manutenção. Por favor tente mais tarde. - - - - A new release of PokerTH is available. -Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> and download the latest version. - Uma nova versão do PokerTH is disponivel. -Por favor vá para <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> e faça o download da última versão. - - - - This beta release of PokerTH is outdated. -Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> and download the latest version. - Está versão beta do PokerTH está desatualizada. -Por favor vá para <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> e faça o download da última versão. - - - - Closing PokerTH during network game - Fechando o PoketTH durante o jogo em rede - - - - You are the hosting server. Do you want to close PokerTH anyway? - Você é o servidor do jogo. Você quer realmente fechar o PokerTH assim mesmo? - - - - The PokerTH server does not support this version of the game.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. - O servidor do PokerTH não suporta está versão do jogo.<br>Por favor vá para <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> e faça o download da última versão. - - - - A new release of PokerTH is available.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. - Uma nova versão do PokerTH is disponivel.<br>Por favor vá para <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> e faça o download da última versão. - - - - This beta release of PokerTH is outdated.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. - Está versão beta do PokerTH está desatualizada.<br>Por favor vá para <a href="http://www.pokerth.net/"target="_blank">http://www.pokerth.net/<a/> e faça o download da última versão. - - - - PokerTH %1 - The Open-Source Texas Holdem Engine - PokerTH %1 - Texas Holdem - - - - Lobby - Lobby - - - - An internal avatar error occured. Please report this to an admin in the lobby chat. - Um erro interno de avatar ocorreu. Por favor reporte ao admin do lobby bate-papo. - - - - PokerTH - Internet Game Message - PokerTH - Mensagem do jogo da Internet - - - - Attention! Do you really want to leave the current game -and go back to the lobby? - Atenção! Você realmente quer sair do jogo atual -e voltar ao lobby? - - - - You were temporarily banned from the server. - Você está temporariamente banido deste servidor. - - - - Your server connection timed out due to inactivity. You are very welcome to reconnect! - Sua conexão expirou devido à inatividade. Você é muito bem-vindo para reconectar! - - - - You cannot upload a new avatar file at this time. Please try again in a few seconds. - Você não pode enviar um novo avatar neste momento. Tente novamente em alguns segundos. - - - - Your admin state timed out due to inactivity. Feel free to create a new game! - Seu estado de admin expirou devido à inatividade. Sinta-se avontade para criar um novo jogo! - - - - manualBlindsOrderDialog - - - Manual Blinds Order - Ordem manual de blinds - - - - Delete - Apagar - - - - Add - Adicionar - - - - After this: - Depois disto: - - - - Always double blinds - Sempre duplo blinds - - - - Always raise about: - Sempre aumentar sobre: - - - - $ - $ - - - - Stay at last blind - Ficar com o último blind - - - - Afterwards: - Depois: - - - - Always raise by: - Sempre aumentar por: - - - - Keep last blind - Manter último blind - - - - manualBlindsOrderDialogImpl - - - Manual Blinds Order - Ordem manual de blinds - - - - You cannot set more than 30 manual blinds. - Você não pode configurar mais de 30 blinds manual. - - - - myMessageDialog - - - Dialog - Diálogo - - - - MessageText - Mensagem de Texto - - - - Do not show this warning again. - Não mostrar mais está mensagem novamente. - - - - newGameDialog - - - Game Speed: - Velocidade do Jogo: - - - - Hands before raise small blind: - Hands antes de aumentar o small blind: - - - - Local Game Settings - Configurações de Jogo Local - - - - Number of players: - Número de jogadores: - - - - Small Blind: - Small Blind: - - - - Start Cash: - Dinheiro Inicial: - - - - Start Local Game - Iniciar Jogo Local - - - - Blinds - Blinds - - - - Use saved blinds settings - Usar configurações de blinds salvo - - - - Change blinds settings ... - Alterar configurações de blinds ... - - - - $ - R$ - - - - selectAvatarDialog - - - Load avatar from external file - Erro ao carregar arquivo externo de avatar - - - - Please select an avatar - Por favor selecione um avatar - - - - Select an avatar - Selecione um avatar - - - - People - Pessoas - - - - Miscellaneous - Variado - - - - selectAvatarDialogImpl - - - Avatar File Error - Erro de arquivo do avatar - - - - Images (*.png) - Imagens (*.png) - - - - Please select an avatar from the list! - Por favor selecione um avatar da lista! - - - - Select external avatar picture - Selecione uma imagem de avatar externa - - - - The entered avatar picture doesn't exists. -Please enter an valid picture! - A imagem de entrada do avatar não existe. -Por favor entre com uma imagem válida! - - - - The file size of the chosen picture is too big. (max. 30KB) -Please choose a smaller picture! - O arquivo selecionado para a imagem é muito grande (max. 30KB) -Por favor escolha outra imagem! - - - - Images (*.png *.jpg *.gif) - Imagens (*.png *.jpg *.gif) - - - - The entered avatar picture doesn't exist. -Please enter an valid picture! - A imagem de entrada do avatar não existe.Por favor entre com uma imagem válida! - - - - settingsDialog - - - <a href="http://en.wikipedia.org/wiki/Ipv6">What is this?</a> - <a href="http://pt.wikipedia.org/wiki/Ipv6">O que é isso?</a> - - - - <a href="http://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol">What is this?</a> - <a href="http://pt.wikipedia.org/wiki/Stream_Control_Transmission_Protocol">O que é isso?</a> - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Note: Best avatar quality with image ratio like </span><span style=" font-weight:600; font-style:italic;">width=50, height=50.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Nota: A melhor qualidade do avatar com rátio de imagem </span><span style=" font-weight:600; font-style:italic;">width=50, height=50.</span></p></body></html> - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Note: Best quality with image ratio like </span><span style=" font-weight:600; font-style:italic;">width=100, height=140.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Note:A melhor qualidade com rátio de imagem </span><span style=" font-weight:600; font-style:italic;">width=100, height=140.</span></p></body></html> - - - - 0.4 (current) - 0.4 (Atual) - - - - 10 - 10 - - - - action (high frequent disc access) - Ação (acesso fregüente elevado de disco) - - - - Computer Engine - Computador - - - - Day(s) - Dia(s) - - - - Default - Original - - - - Enable/Disable Logging - Ativar/Desativar Registros - - - - Engine Version for computer opponents: - Versão de inteligência dos oponentes computadores: - - - - Engine Version: - Versão do jogo: - - - - Flipside of Cards - Lado oposto das Cartas - - - - game (low disc access) - Jogo (acesso a disco baixo) - - - - Game Speed for computer opponents: - Velocidade do Jogo para Oponentes Computador: - - - - Game Speed: - Velocidade do Jogo: - - - - hand (medium disc access) - hand (acesso a disco médio) - - - - Hands before raise small blind: - Hands antes de aumentar o small blind: - - - - Human Player: - Jogador Humano: - - - - Interface - Interface - - - - Local Game Default Settings - Configurações Originais de Jogo Local - - - - Local Game Settings - Configurações de Jogo Local - - - - Log File Directory: - Diretório de registro de arquivo: - - - - Log Messages - Mensagens do Registro - - - - Maximum number of players: - Número máximo de jogadores: - - - - Network Game Default Settings - Configurações originais para Jogo em Rede - - - - Network Game Settings - Configurações para Jogo em Rede - - - - Number of players: - Número de jogadores: - - - - Opponent 1: - Oponente 1: - - - - Opponent 2: - Oponente 2: - - - - Opponent 3: - Oponente 3: - - - - Opponent 4: - Oponente 4: - - - - Opponent 5: - Oponente 5: - - - - Opponent 6: - Oponente 6: - - - - Own flipside picture: - Sua imagem do lado oposto: - - - - Pause between hands (press "start" button to go on) - Pausa entre as hands (pressione o botão "iniciar" para continuar) - - - - Play sound effects - Ouvir efeitos sonoros - - - - Player Nicks - Apelidos de jogadores - - - - Server Password: - Senha do Servidor: - - - - Server Port: - Porta do Servidor: - - - - Server Settings - Configurações do Servidor - - - - Settings - Configurações - - - - Show buttons for small blind and big blind - Mostrar botões para small blind e big blind - - - - Show fade-out animation for non-winning cards - Mostrar animação de fade-out para não ganhadores - - - - Show flip-card animation - Mostrar animação de flip-card - - - - Show game settings dialog on every new game - Mostrar diálogo de configurações do jogo a novo jogo - - - - Show intro on startup - Mostrar introdução ao iniciar - - - - Show left toolbox - Mostrar caixa de ferramentas a esquerda - - - - Show right toolbox - Mostrar caixa de ferramentas a direita - - - - Show statusbar messages - Mostrar barra de status de mensagens - - - - Small Blind: - Small Blind: - - - - Sound Volume: - Volume de Som: - - - - Start Cash: - Dinheiro Inicial: - - - - Store log files for - Armazenar arquivos de registro para - - - - Timeout for player action (sec): - Tempo esgotado para ação do jogador (sec): - - - - Use IPv6 - Usar IPv6 - - - - Use SCTP - Usar SCTP - - - - Write log after every: - Escrever o registro todas as vezes após: - - - - Show own cards only on mouse click - Mostrar suas cartas apenas com o click do mouse - - - - QLabel { font-weight: bold; } - QLabel { font-weight: bold; } - - - - Sound - Som - - - - Network Server Settings - Configurações do Servidor de rede - - - - Internet Game Settings - Configurações para jogos de internet - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Note: Default </span><span style=" font-weight:600; font-style:italic;">Game Settings</span><span style=" font-style:italic;"> like "</span>Maximum number of players", "<span style=" font-style:italic;">Start Cash" and "Small Blind" will be used </span><span style=" font-weight:600; font-style:italic;">from Network Game Settings.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Nota: Padrão </span><span style=" font-weight:600; font-style:italic;">Configurações de Jogo</span><span style=" font-style:italic;"> Como "</span>Numero máximo de jogadores", "<span style=" font-style:italic;">Dinheiro incial" e "Small Blind" serão usados </span><span style=" font-weight:600; font-style:italic;">para configurações de jogos em rede.</span></p></body></html> - - - - Internet Server Settings (Dedicated Server) - Configurações de Servidor da Internet (Servidor Dedicado) - - - - Server Address: - Endereço de Servidor: - - - - Use password for private game: - Usar senha para jogo privado: - - - - Lobby Chat Settings (IRC Server) - Conigurações de Sala de Bate-Papo (Servidor IRC) - - - - chat.freenode.net - chat.freenode.net - - - - Channel: - Canal: - - - - #pokerth - #pokerth - - - - Reverse order of F-Keys (F1 - F3) - Reverter as ordens das teclas F* (F1 - F3) - - - - First small blind: - Primeiro small blind: - - - - Raise blinds: - Aumentar blinds: - - - - Every: - Sempre: - - - - hands - Mãos - - - - minutes - minutos - - - - Raise mode: - Modo aumentar: - - - - Always double blinds - Sempre duplo blinds - - - - Manual blinds order: - Ordem manual de blinds: - - - - Edit ... - Editar ... - - - - Language: - Idioma: - - - - Sound Categories - Categorias de Som - - - - Play game actions sounds like "check", "call", "raise" - Tocar sons de ação como "check", "call", "aumentar" - - - - Play lobby chat notifications - Tocar notificações de bate-papo na sala - - - - Play network/internet game notifications like "player joined the game" - Tocar notificações do jogo em rede/internet "jogador entrou no jogo" - - - - Enable/Disable Lobby Chat (IRC Server) - Habilitar/Desabilitar sala de bate-papo (Servidor IRC) - - - - Player Nicks/Avatars - Jogador Apelido/Avatar - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Nimbus Sans L';"><span style=" font-style:italic;">Note: Default </span><span style=" font-weight:600; font-style:italic;">Game Settings</span><span style=" font-style:italic;"> like "Maximum number of players", "Start Cash" and "Small Blind" will be used </span><span style=" font-weight:600; font-style:italic;">from Network Game Settings.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Nimbus Sans L';"><span style=" font-style:italic;">Nota: Padrão </span><span style=" font-weight:600; font-style:italic;">Configurações de Jogo</span><span style=" font-style:italic;"> como "Número Máximo de jogadores", "Dinheiro Incial" e "Small Blind" será usado </span><span style=" font-weight:600; font-style:italic;">para jogos em Rede.</span></p></body></html> - - - - Reverse order of F-Keys (F1 - F4) - Reverter as ordens das teclas F (F1 - F4) - - - - Network / Internet Game - Rede / Internet Jogos - - - - Switch keyboard focus to bet-input-field if it's your turn - Mudar o foco do Teclado para entrar no campo caso seja sua vez - - - - Channel Password: - Senha do Canal: - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Note: Best quality with image ratio like </span><span style=" font-weight:600; font-style:italic;">width=100, height=140.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Nota: A melhor qualidade com rátio de imagem </span><span style=" font-weight:600; font-style:italic;">width=100, height=140.</span></p></body></html> - - - - $ - R$ - - - - Timeout for player action: - Tempo esgotado para ação do jogador: - - - - s - s - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Note: Default </span><span style=" font-weight:600; font-style:italic;">Game Settings</span><span style=" font-style:italic;"> like "Maximum number of players", "Start Cash" and "Small Blind" will be used </span><span style=" font-weight:600; font-style:italic;">from Network Game Settings.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Nimbus Sans L';"><span style=" font-style:italic;">Nota: Padrão </span><span style=" font-weight:600; font-style:italic;">Configurações de Jogo</span><span style=" font-style:italic;"> como "Número Máximo de jogadores", "Dinheiro Incial" e "Small Blind" será usado </span><span style=" font-weight:600; font-style:italic;">para jogos em Rede.</span></p></body></html> - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Note: Best avatar quality with image ratio like </span><span style=" font-weight:600; font-style:italic;">width=50, height=50.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Nota: A melhor qualidade com rátio de imagem </span><span style=" font-weight:600; font-style:italic;">width=50, height=50.</span></p></body></html> - - - - settingsDialogImpl - - - Images (*.png) - Imagens (*.png) - - - - Open Directory - Abrir Diretório - - - - Select your flipside picture - Selecionar sua imagem do lado oposto - - - - Settings Error - Erro de Configuração - - - - The entered flipside picture doesn't exists. -Please enter an valid picture! - A imagem do Lado Oposto do baralho não existe. -Por favor entre com uma imagem válida! - - - - The log file directory doesn't exists. -Please select an valid directory! - O diretório do arquivo de registro não existe. -Por favor selecione um diretório valido! - - - - Images (*.png *.jpg *.gif) - Imagens (*.png *.jpg *.gif) - - - - Blinds Error - Erro de Blinds - - - - The first element in your manual-blinds-list -is smaller than current first-small-blind! -This first-small-blind-value will be set to maximum allowed value. - O primeiro elemtento da sua lista-manual-de-blinds -é menor do que a atual primeira-small-blind! -Esta primeira-small-blind-valor será configurada como valor máximo permitido. - - - - Dutch - Holandês - - - - English - Inglês - - - - French - Françes - - - - German - Alemão - - - - Hungarian - Húngaro - - - - Norse - Nórdicos - - - - Portuguese - Português Brasil - - - - Russian - Russo - - - - Turkish - Turco - - - - Language Changed - Idioma Alterado - - - - You have changed application language to %1. -Please restart PokerTH to load new language! - Você alterou o idioma da aplicação para %1. -Por favor reinicie o PokerTH para carregar o novo idioma! - - - - Italian - Italiano - - - - Slovak - Slovak - - - - The entered flipside picture doesn't exist. -Please enter an valid picture! - A imagem do lado oposto do baralho não existe.Por favor entre com uma imagem válida! - - - - The log file directory doesn't exist. -Please select an valid directory! - O diretório do arquivo de registro não existe.Por favor selecione um diretório valido! - - - - Norwegian - Noruegues - - - - Spanish - Espanhol - - - - Bulgarian - Bulgaro - - - - Polish - Polonês - - - - Chinese - Chinês - - - - Greek - Grego - - - - Swedish - Sueco - - - - startNetworkGameDialog - - - 0 - 0 - - - - Cancel - Cancelar - - - - Connected Players - Jogadores Conectados - - - - Kick - Chutar - - - - Maximum number of players: - Número máximo de jogadores: - - - - Start Game - Iniciar Jogo - - - - Start Network Game - Iniciar Jogo em rede - - - - Lobby-Chat - Sala-Bate Papo - - - - Fill up with computer opponents - Adicionar oponentes computadores - - - - Kick Player - Chutar Jogador - - - - Chat - Bate Papo - - - - startNetworkGameDialogImpl - - - Server Error - Erro de Servidor - - - - You should not kick yourself from this game! - Você não pode se chutar deste jogo! - - - - timeoutMsgBoxImpl - - - Timeout Warning - Aviso tempo esgotado - - - - Please click "OK" to stop the countdown! - Por favor clique em "OK" para parar o contador! - - - - You are game-admin of an open game which will time out in %1 seconds. - Você é o admin do jogo aberto, onde o tempo se acabará em %1 segundos. - - - - Your connection is about to time out due to inactivity in %1 seconds. - Sua conexão está prestes ser encerrada devido a inatividade em %1 segundos. - - - - waitForServerToStartGameDialog - - - Cancel - Cancelar - - - - Connected Players - Jogadores Conectados - - - - Waiting for Server ... - Aguardando por Servidor ... - - - - Waiting for the server to start the game ... - Aguardando o servidor iniciar o jogo ... - - - + + + + + Chat + + + You cannot kick yourself! + Você não pode chutar a si mesmo! + + + + You cannot kick any player - You are not game admin! + Você não pode chutar qualquer jogador - Você não é o admin do jogo! + + + + LobbyChat + + + Successfully connected to + Conectado com Sucesso + + + + Joined channel: + Participando do Canal: + + + + as user + como usuário + + + + Network Notification + Notificação de Rede + + + + You were kicked from the server. + Você foi chutado do servidor. + + + + was kicked from the server by + você foi chutado do servidor pelo + + + + Connecting to Chat server... + Conectando ao servidor de bate-papo... + + + + An internal IRC error has occured: + Um erro de IRC interno ocorreu: + + + + Could not connect to the IRC server. Chat will be unavailable. + Não foi possivel conectar ao servidor IRC. O bate-papo não estará disponivel. + + + + The IRC server terminated the connection. Chat will be unavailable. + O servidor IRC terminou a conexão. O bate-papo não estará disponivel. + + + + An IRC action timed out. + Uma ação do IRC expirou. + + + + The IRC server reported an error: + O servidor IRC reportou um erro: + + + + MyAvatarLabel + + + Vote for kick this user + Vote para chutar o usuário + + + + aboutPokerth + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://commons.wikimedia.org/wiki/Main_Page"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">Wikimedia Commons</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"> - <span style=" font-weight:400;">for different popular avatar picture resources</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Viktoria, Benedikt, Erhard, Felix, Florian, Linus, Lothar, Mark</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for avatar pictures</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://kde-look.org/"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">http://kde-look.org/</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for different gpl lizensed sounds</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">doc_dos</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for self recorded chip sounds</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://commons.wikimedia.org/wiki/Main_Page"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">Wikimedia Commons</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"> - <span style=" font-weight:400;">para diferentes recursos populares do avatar</span></p><p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Viktoria, Benedikt, Erhard, Felix, Florian, Linus, Lothar, Mark</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Para imagens de avatar</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://kde-look.org/"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">http://kde-look.org/</span></a></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - para diferentes licenças de som gpl</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">doc_dos</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - para o próprio chip de som gravado</p></body></html> + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">PokerTH 0.5</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Poker Engine for the popular "Texas Holdem" Poker</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Singleplayer games with up to 6 computer-opponents</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Multiplayer network games</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Coded in C++ / QT4</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">© 2006-2007, FHammer &amp; FThauer</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">PokerTH 0.5</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Jogo de Poker para o popular "Texas Holdem" Poker</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Um jogador com até 6 pc-oponentes</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Jogos Multiplayer em rede</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">- Escrito em C++ / QT4</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"><span style=" font-weight:400;">© 2006-2007, FHammer &amp; FThauer</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p></body></html> + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Projectpage: </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://www.pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">http://www.pokerth.net</span></a></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">IRC: </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> #pokerth (irc.freenode.net)</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Authors: </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Felix Hammer (<a href="mailto:doitux@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">doitux@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - initial idea, basic architecture, gui implementation, linux package, webmaster@pokerth.net</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Florian Thauer (<a href="mailto:floty@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">floty@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - initial idea, basic architecture, engine development</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Lothar May (<a href="mailto:lotodore@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">lotodore@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - network development, windows package</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Oskar Lindqvist (<a href="mailto:tranberry@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">tranberry@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - gui graphics design, webdesign</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Erhard List (<a href="mailto:dunkanx@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">dunkanx@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - MacOS package</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Página do Projeto: </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://www.pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">http://www.pokerth.net</span></a></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">IRC: </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> #pokerth (irc.freenode.net)</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Autores: </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Felix Hammer (<a href="mailto:doitux@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">doitux@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Idéia Inicial, arquitetura básica, guia de implementação, pacote linux, webmaster@pokerth.net</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Florian Thauer (<a href="mailto:floty@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">floty@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Idéa Inicial, arquitetura básica, desenvolvimento de estrutura</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Lothar May (<a href="mailto:lotodore@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">lotodore@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Desenvolvimento da Rede, pacote windows</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Oskar Lindqvist (<a href="mailto:tranberry@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">tranberry@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - guia gráfico de design, webdesign</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Erhard List (<a href="mailto:dunkanx@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">dunkanx@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - pacote MacOS</p></body></html> + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">&lt;your translator name&gt; - &lt;your language&gt;</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> &lt;if you like your mail address&gt;</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">&lt;Maxputo&gt; - &lt;PortuguêsBR&gt;</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> &lt;maxputo@gmail.com&gt;</p></body></html> + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This Software is published under the Terms of GPL v2:</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> GNU GENERAL PUBLIC LICENSE</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Version 2, June 1991</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Copyright (C) 1989, 1991 Free Software Foundation, Inc.,</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Everyone is permitted to copy and distribute verbatim copies</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> of this license document, but changing it is not allowed.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Preamble</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> The licenses for most software are designed to take away your</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">freedom to share and change it. By contrast, the GNU General Public</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">License is intended to guarantee your freedom to share and change free</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">software--to make sure the software is free for all its users. This</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">General Public License applies to most of the Free Software</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Foundation's software and to any other program whose authors commit to</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">using it. (Some other Free Software Foundation software is covered by</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the GNU Lesser General Public License instead.) You can apply it to</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">your programs, too.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> When we speak of free software, we are referring to freedom, not</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">price. Our General Public Licenses are designed to make sure that you</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">have the freedom to distribute copies of free software (and charge for</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">this service if you wish), that you receive source code or can get it</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">if you want it, that you can change the software or use pieces of it</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">in new free programs; and that you know you can do these things.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> To protect your rights, we need to make restrictions that forbid</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">anyone to deny you these rights or to ask you to surrender the rights.</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">These restrictions translate to certain responsibilities for you if you</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">distribute copies of the software, or if you modify it.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> For example, if you distribute copies of such a program, whether</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">gratis or for a fee, you must give the recipients all the rights that</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">you have. You must make sure that they, too, receive or can get the</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">source code. And you must show them these terms so they know their</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">rights.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> We protect your rights with two steps: (1) copyright the software, and</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(2) offer you this license which gives you legal permission to copy,</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">distribute and/or modify the software.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Also, for each author's protection and ours, we want to make certain</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">that everyone understands that there is no warranty for this free</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">software. If the software is modified by someone else and passed on, we</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">want its recipients to know that what they have is not the original, so</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">that any problems introduced by others will not reflect on the original</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">authors' reputations.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Finally, any free program is threatened constantly by software</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">patents. We wish to avoid the danger that redistributors of a free</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">program will individually obtain patent licenses, in effect making the</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">program proprietary. To prevent this, we have made it clear that any</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">patent must be licensed for everyone's free use or not licensed at all.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> The precise terms and conditions for copying, distribution and</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">modification follow.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> GNU GENERAL PUBLIC LICENSE</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 0. This License applies to any program or other work which contains</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">a notice placed by the copyright holder saying it may be distributed</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">under the terms of this General Public License. The "Program", below,</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">refers to any such program or work, and a "work based on the Program"</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">means either the Program or any derivative work under copyright law:</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">that is to say, a work containing the Program or a portion of it,</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">either verbatim or with modifications and/or translated into another</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">language. (Hereinafter, translation is included without limitation in</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the term "modification".) Each licensee is addressed as "you".</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Activities other than copying, distribution and modification are not</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">covered by this License; they are outside its scope. The act of</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">running the Program is not restricted, and the output from the Program</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">is covered only if its contents constitute a work based on the</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Program (independent of having been made by running the Program).</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Whether that is true depends on what the Program does.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 1. You may copy and distribute verbatim copies of the Program's</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">source code as you receive it, in any medium, provided that you</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">conspicuously and appropriately publish on each copy an appropriate</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">copyright notice and disclaimer of warranty; keep intact all the</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">notices that refer to this License and to the absence of any warranty;</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">and give any other recipients of the Program a copy of this License</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">along with the Program.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">You may charge a fee for the physical act of transferring a copy, and</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">you may at your option offer warranty protection in exchange for a fee.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 2. You may modify your copy or copies of the Program or any portion</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">of it, thus forming a work based on the Program, and copy and</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">distribute such modifications or work under the terms of Section 1</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">above, provided that you also meet all of these conditions:</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> a) You must cause the modified files to carry prominent notices</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> stating that you changed the files and the date of any change.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> b) You must cause any work that you distribute or publish, that in</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> whole or in part contains or is derived from the Program or any</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> part thereof, to be licensed as a whole at no charge to all third</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> parties under the terms of this License.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> c) If the modified program normally reads commands interactively</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> when run, you must cause it, when started running for such</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> interactive use in the most ordinary way, to print or display an</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> announcement including an appropriate copyright notice and a</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> notice that there is no warranty (or else, saying that you provide</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> a warranty) and that users may redistribute the program under</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> these conditions, and telling the user how to view a copy of this</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> License. (Exception: if the Program itself is interactive but</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> does not normally print such an announcement, your work based on</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> the Program is not required to print an announcement.)</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">These requirements apply to the modified work as a whole. If</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">identifiable sections of that work are not derived from the Program,</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">and can be reasonably considered independent and separate works in</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">themselves, then this License, and its terms, do not apply to those</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">sections when you distribute them as separate works. But when you</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">distribute the same sections as part of a whole which is a work based</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">on the Program, the distribution of the whole must be on the terms of</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">this License, whose permissions for other licensees extend to the</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">entire whole, and thus to each and every part regardless of who wrote it.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Thus, it is not the intent of this section to claim rights or contest</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">your rights to work written entirely by you; rather, the intent is to</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">exercise the right to control the distribution of derivative or</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">collective works based on the Program.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">In addition, mere aggregation of another work not based on the Program</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">with the Program (or with a work based on the Program) on a volume of</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">a storage or distribution medium does not bring the other work under</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the scope of this License.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 3. You may copy and distribute the Program (or a work based on it,</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">under Section 2) in object code or executable form under the terms of</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Sections 1 and 2 above provided that you also do one of the following:</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> a) Accompany it with the complete corresponding machine-readable</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> source code, which must be distributed under the terms of Sections</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 1 and 2 above on a medium customarily used for software interchange; or,</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> b) Accompany it with a written offer, valid for at least three</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> years, to give any third party, for a charge no more than your</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> cost of physically performing source distribution, a complete</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> machine-readable copy of the corresponding source code, to be</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> distributed under the terms of Sections 1 and 2 above on a medium</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> customarily used for software interchange; or,</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> c) Accompany it with the information you received as to the offer</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> to distribute corresponding source code. (This alternative is</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> allowed only for noncommercial distribution and only if you</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> received the program in object code or executable form with such</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> an offer, in accord with Subsection b above.)</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The source code for a work means the preferred form of the work for</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">making modifications to it. For an executable work, complete source</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">code means all the source code for all modules it contains, plus any</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">associated interface definition files, plus the scripts used to</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">control compilation and installation of the executable. However, as a</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">special exception, the source code distributed need not include</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">anything that is normally distributed (in either source or binary</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">form) with the major components (compiler, kernel, and so on) of the</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">operating system on which the executable runs, unless that component</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">itself accompanies the executable.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If distribution of executable or object code is made by offering</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">access to copy from a designated place, then offering equivalent</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">access to copy the source code from the same place counts as</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">distribution of the source code, even though third parties are not</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">compelled to copy the source along with the object code.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 4. You may not copy, modify, sublicense, or distribute the Program</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">except as expressly provided under this License. Any attempt</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">otherwise to copy, modify, sublicense or distribute the Program is</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">void, and will automatically terminate your rights under this License.</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">However, parties who have received copies, or rights, from you under</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">this License will not have their licenses terminated so long as such</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">parties remain in full compliance.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 5. You are not required to accept this License, since you have not</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">signed it. However, nothing else grants you permission to modify or</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">distribute the Program or its derivative works. These actions are</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">prohibited by law if you do not accept this License. Therefore, by</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">modifying or distributing the Program (or any work based on the</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Program), you indicate your acceptance of this License to do so, and</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">all its terms and conditions for copying, distributing or modifying</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the Program or works based on it.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 6. Each time you redistribute the Program (or any work based on the</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Program), the recipient automatically receives a license from the</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">original licensor to copy, distribute or modify the Program subject to</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">these terms and conditions. You may not impose any further</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">restrictions on the recipients' exercise of the rights granted herein.</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">You are not responsible for enforcing compliance by third parties to</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">this License.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 7. If, as a consequence of a court judgment or allegation of patent</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">infringement or for any other reason (not limited to patent issues),</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">conditions are imposed on you (whether by court order, agreement or</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">otherwise) that contradict the conditions of this License, they do not</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">excuse you from the conditions of this License. If you cannot</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">distribute so as to satisfy simultaneously your obligations under this</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">License and any other pertinent obligations, then as a consequence you</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">may not distribute the Program at all. For example, if a patent</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">license would not permit royalty-free redistribution of the Program by</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">all those who receive copies directly or indirectly through you, then</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the only way you could satisfy both it and this License would be to</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">refrain entirely from distribution of the Program.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If any portion of this section is held invalid or unenforceable under</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">any particular circumstance, the balance of the section is intended to</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">apply and the section as a whole is intended to apply in other</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">circumstances.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">It is not the purpose of this section to induce you to infringe any</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">patents or other property right claims or to contest validity of any</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">such claims; this section has the sole purpose of protecting the</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">integrity of the free software distribution system, which is</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">implemented by public license practices. Many people have made</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">generous contributions to the wide range of software distributed</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">through that system in reliance on consistent application of that</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">system; it is up to the author/donor to decide if he or she is willing</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">to distribute software through any other system and a licensee cannot</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">impose that choice.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This section is intended to make thoroughly clear what is believed to</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">be a consequence of the rest of this License.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 8. If the distribution and/or use of the Program is restricted in</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">certain countries either by patents or by copyrighted interfaces, the</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">original copyright holder who places the Program under this License</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">may add an explicit geographical distribution limitation excluding</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">those countries, so that distribution is permitted only in or among</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">countries not thus excluded. In such case, this License incorporates</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the limitation as if written in the body of this License.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 9. The Free Software Foundation may publish revised and/or new versions</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">of the General Public License from time to time. Such new versions will</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">be similar in spirit to the present version, but may differ in detail to</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">address new problems or concerns.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Each version is given a distinguishing version number. If the Program</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">specifies a version number of this License which applies to it and "any</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">later version", you have the option of following the terms and conditions</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">either of that version or of any later version published by the Free</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Software Foundation. If the Program does not specify a version number of</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">this License, you may choose any version ever published by the Free Software</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Foundation.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 10. If you wish to incorporate parts of the Program into other free</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">programs whose distribution conditions are different, write to the author</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">to ask for permission. For software which is copyrighted by the Free</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Software Foundation, write to the Free Software Foundation; we sometimes</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">make exceptions for this. Our decision will be guided by the two goals</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">of preserving the free status of all derivatives of our free software and</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">of promoting the sharing and reuse of software generally.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> NO WARRANTY</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">REPAIR OR CORRECTION.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">POSSIBILITY OF SUCH DAMAGES.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> END OF TERMS AND CONDITIONS</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> How to Apply These Terms to Your New Programs</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> If you develop a new program, and you want it to be of the greatest</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">possible use to the public, the best way to achieve this is to make it</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">free software which everyone can redistribute and change under these terms.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> To do so, attach the following notices to the program. It is safest</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">to attach them to the start of each source file to most effectively</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">convey the exclusion of warranty; and each file should have at least</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the "copyright" line and a pointer to where the full notice is found.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> &lt;one line to give the program's name and a brief idea of what it does.&gt;</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Copyright (C) &lt;year&gt; &lt;name of author&gt;</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> This program is free software; you can redistribute it and/or modify</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> it under the terms of the GNU General Public License as published by</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> the Free Software Foundation; either version 2 of the License, or</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> (at your option) any later version.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> This program is distributed in the hope that it will be useful,</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> but WITHOUT ANY WARRANTY; without even the implied warranty of</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> GNU General Public License for more details.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> You should have received a copy of the GNU General Public License along</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> with this program; if not, write to the Free Software Foundation, Inc.,</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Also add information on how to contact you by electronic and paper mail.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If the program is interactive, make it output a short notice like this</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">when it starts in an interactive mode:</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Gnomovision version 69, Copyright (C) year name of author</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> This is free software, and you are welcome to redistribute it</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> under certain conditions; type `show c' for details.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The hypothetical commands `show w' and `show c' should show the appropriate</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">parts of the General Public License. Of course, the commands you use may</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">be called something other than `show w' and `show c'; they could even be</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">mouse-clicks or menu items--whatever suits your program.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">You should also get your employer (if you work as a programmer) or your</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">school, if any, to sign a "copyright disclaimer" for the program, if</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">necessary. Here is a sample; alter the names:</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Yoyodyne, Inc., hereby disclaims all copyright interest in the program</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> `Gnomovision' (which makes passes at compilers) written by James Hacker.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> &lt;signature of Ty Coon&gt;, 1 April 1989</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Ty Coon, President of Vice</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This General Public License does not permit incorporating your program into</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">proprietary programs. If your program is a subroutine library, you may</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">consider it more useful to permit linking proprietary applications with the</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">library. If this is what you want to do, use the GNU Lesser General</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Public License instead of this License.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Este Software e publicado sob os termos GPL v2:</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> GNU GENERAL PUBLIC LICENSE</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Versão 2, Junho 1991</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Copyright (C) 1989, 1991 Free Software Foundation, Inc.,</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Qualquer um pode copiar e distribuir as copias</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> do documento desta licença, mas mudanças não são permitidas.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Preamble</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> A licença para a maioria dos softwares que são projetados para</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> remover sua autoria e mudá-lo. Por contrato, de GNU General Public</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">A licença garante sua liberdade para compartilhar livremente e mudar</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">o software--tenha certeza de que o software e livre para todos os usuários. Esta</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">General Public License é aplicada na maioria dos Softwares Livre</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Foundation's software e para qualquer outro programa que use direitos autorais e</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">escreva a frase. (Este e outros softwares livre da Foundation's software é coberto pelo</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">GNU Lesser General Public License instead.) Você também pode usar</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">em seus programas.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Quando falamos em software livre, estamos referindo a liberdade, não a</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">preço. A General Public Licenses foi escrita para garantir que você</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">tenha a liberdade para distribuir cópias do software livre (e mudar de acordo </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">com a sua vontade), você receberá o código ou começar um novo</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">se você quiser, assim você pode mudar o software ou partes dele</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">em novos softwares livre; e saiba que você pode fazer estás alterações.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Para proteger seus direitos, você precisa fazer restrição de proibido</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">para que qualquer um aceite ou não estas condições.</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Estas restrições traduz certas responsabilidades para você caso você</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">distribua cópias do software, ou se você modificá-lo.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Por exemplo, se você distribuir cópias de tal programa, sendo</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">grátis ou por um preço, você deve dar todos os direitos que</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">você tem. Você deve certificar-se de que eles, também, receberam ou pegaram o</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">código fonte. E você deve mostrar-lhes estes termos assim que sabem dos seus</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">direitos.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Para proteger seuys direitos faça dois passos: (1) copyright do software, e</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">(2) ofereça esta licença caso deseje que esta de permissão legal pela cópia,</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">distribua e/ou modifique o software.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> também, para a proteção dos autores e a sua, nós queremos ter a certeza</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">que não há nenhuma garantia para este software</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">livre. Se o software for modificado por outra pessoa, nós</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">queremos esclarecer ao receptor que este não é original, então</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">qualquer problema introduzidos por terceiros não refletirá no original e na</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">reputação dos autores.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Finalmente, todo software livre é ameaçado constatemente pela patente de</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">softwares. Nós desejamos evitar o perigo da redistribuição de um software livre</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">para que este individualmente venha a obter patente, de fato fazendo o</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">proprietário do software. Para previnir isto, nós fizemos é deixar claro que</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">que a patente é livre para qualquer um que venha a usar o software ou parte dele.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Os termos e as condições precisos para a cópia, a distribuição e</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">modificação siga..</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> GNU GENERAL PUBLIC LICENSE</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 0. This License applies to any program or other work which contains</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">a notice placed by the copyright holder saying it may be distributed</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">under the terms of this General Public License. The "Program", below,</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">refers to any such program or work, and a "work based on the Program"</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">means either the Program or any derivative work under copyright law:</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">that is to say, a work containing the Program or a portion of it,</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">either verbatim or with modifications and/or translated into another</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">language. (Hereinafter, translation is included without limitation in</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the term "modification".) Each licensee is addressed as "you".</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Activities other than copying, distribution and modification are not</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">covered by this License; they are outside its scope. The act of</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">running the Program is not restricted, and the output from the Program</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">is covered only if its contents constitute a work based on the</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Program (independent of having been made by running the Program).</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Whether that is true depends on what the Program does.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 1. You may copy and distribute verbatim copies of the Program's</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">source code as you receive it, in any medium, provided that you</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">conspicuously and appropriately publish on each copy an appropriate</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">copyright notice and disclaimer of warranty; keep intact all the</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">notices that refer to this License and to the absence of any warranty;</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">and give any other recipients of the Program a copy of this License</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">along with the Program.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">You may charge a fee for the physical act of transferring a copy, and</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">you may at your option offer warranty protection in exchange for a fee.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 2. You may modify your copy or copies of the Program or any portion</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">of it, thus forming a work based on the Program, and copy and</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">distribute such modifications or work under the terms of Section 1</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">above, provided that you also meet all of these conditions:</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> a) You must cause the modified files to carry prominent notices</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> stating that you changed the files and the date of any change.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> b) You must cause any work that you distribute or publish, that in</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> whole or in part contains or is derived from the Program or any</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> part thereof, to be licensed as a whole at no charge to all third</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> parties under the terms of this License.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> c) If the modified program normally reads commands interactively</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> when run, you must cause it, when started running for such</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> interactive use in the most ordinary way, to print or display an</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> announcement including an appropriate copyright notice and a</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> notice that there is no warranty (or else, saying that you provide</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> a warranty) and that users may redistribute the program under</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> these conditions, and telling the user how to view a copy of this</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> License. (Exception: if the Program itself is interactive but</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> does not normally print such an announcement, your work based on</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> the Program is not required to print an announcement.)</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">These requirements apply to the modified work as a whole. If</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">identifiable sections of that work are not derived from the Program,</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">and can be reasonably considered independent and separate works in</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">themselves, then this License, and its terms, do not apply to those</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">sections when you distribute them as separate works. But when you</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">distribute the same sections as part of a whole which is a work based</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">on the Program, the distribution of the whole must be on the terms of</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">this License, whose permissions for other licensees extend to the</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">entire whole, and thus to each and every part regardless of who wrote it.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Thus, it is not the intent of this section to claim rights or contest</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">your rights to work written entirely by you; rather, the intent is to</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">exercise the right to control the distribution of derivative or</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">collective works based on the Program.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">In addition, mere aggregation of another work not based on the Program</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">with the Program (or with a work based on the Program) on a volume of</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">a storage or distribution medium does not bring the other work under</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the scope of this License.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 3. You may copy and distribute the Program (or a work based on it,</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">under Section 2) in object code or executable form under the terms of</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Sections 1 and 2 above provided that you also do one of the following:</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> a) Accompany it with the complete corresponding machine-readable</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> source code, which must be distributed under the terms of Sections</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 1 and 2 above on a medium customarily used for software interchange; or,</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> b) Accompany it with a written offer, valid for at least three</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> years, to give any third party, for a charge no more than your</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> cost of physically performing source distribution, a complete</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> machine-readable copy of the corresponding source code, to be</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> distributed under the terms of Sections 1 and 2 above on a medium</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> customarily used for software interchange; or,</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> c) Accompany it with the information you received as to the offer</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> to distribute corresponding source code. (This alternative is</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> allowed only for noncommercial distribution and only if you</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> received the program in object code or executable form with such</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> an offer, in accord with Subsection b above.)</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The source code for a work means the preferred form of the work for</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">making modifications to it. For an executable work, complete source</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">code means all the source code for all modules it contains, plus any</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">associated interface definition files, plus the scripts used to</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">control compilation and installation of the executable. However, as a</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">special exception, the source code distributed need not include</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">anything that is normally distributed (in either source or binary</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">form) with the major components (compiler, kernel, and so on) of the</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">operating system on which the executable runs, unless that component</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">itself accompanies the executable.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If distribution of executable or object code is made by offering</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">access to copy from a designated place, then offering equivalent</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">access to copy the source code from the same place counts as</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">distribution of the source code, even though third parties are not</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">compelled to copy the source along with the object code.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 4. You may not copy, modify, sublicense, or distribute the Program</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">except as expressly provided under this License. Any attempt</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">otherwise to copy, modify, sublicense or distribute the Program is</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">void, and will automatically terminate your rights under this License.</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">However, parties who have received copies, or rights, from you under</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">this License will not have their licenses terminated so long as such</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">parties remain in full compliance.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 5. You are not required to accept this License, since you have not</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">signed it. However, nothing else grants you permission to modify or</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">distribute the Program or its derivative works. These actions are</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">prohibited by law if you do not accept this License. Therefore, by</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">modifying or distributing the Program (or any work based on the</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Program), you indicate your acceptance of this License to do so, and</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">all its terms and conditions for copying, distributing or modifying</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the Program or works based on it.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 6. Each time you redistribute the Program (or any work based on the</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Program), the recipient automatically receives a license from the</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">original licensor to copy, distribute or modify the Program subject to</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">these terms and conditions. You may not impose any further</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">restrictions on the recipients' exercise of the rights granted herein.</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">You are not responsible for enforcing compliance by third parties to</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">this License.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 7. If, as a consequence of a court judgment or allegation of patent</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">infringement or for any other reason (not limited to patent issues),</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">conditions are imposed on you (whether by court order, agreement or</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">otherwise) that contradict the conditions of this License, they do not</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">excuse you from the conditions of this License. If you cannot</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">distribute so as to satisfy simultaneously your obligations under this</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">License and any other pertinent obligations, then as a consequence you</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">may not distribute the Program at all. For example, if a patent</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">license would not permit royalty-free redistribution of the Program by</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">all those who receive copies directly or indirectly through you, then</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the only way you could satisfy both it and this License would be to</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">refrain entirely from distribution of the Program.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If any portion of this section is held invalid or unenforceable under</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">any particular circumstance, the balance of the section is intended to</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">apply and the section as a whole is intended to apply in other</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">circumstances.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">It is not the purpose of this section to induce you to infringe any</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">patents or other property right claims or to contest validity of any</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">such claims; this section has the sole purpose of protecting the</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">integrity of the free software distribution system, which is</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">implemented by public license practices. Many people have made</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">generous contributions to the wide range of software distributed</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">through that system in reliance on consistent application of that</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">system; it is up to the author/donor to decide if he or she is willing</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">to distribute software through any other system and a licensee cannot</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">impose that choice.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This section is intended to make thoroughly clear what is believed to</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">be a consequence of the rest of this License.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 8. If the distribution and/or use of the Program is restricted in</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">certain countries either by patents or by copyrighted interfaces, the</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">original copyright holder who places the Program under this License</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">may add an explicit geographical distribution limitation excluding</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">those countries, so that distribution is permitted only in or among</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">countries not thus excluded. In such case, this License incorporates</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the limitation as if written in the body of this License.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 9. The Free Software Foundation may publish revised and/or new versions</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">of the General Public License from time to time. Such new versions will</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">be similar in spirit to the present version, but may differ in detail to</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">address new problems or concerns.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Each version is given a distinguishing version number. If the Program</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">specifies a version number of this License which applies to it and "any</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">later version", you have the option of following the terms and conditions</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">either of that version or of any later version published by the Free</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Software Foundation. If the Program does not specify a version number of</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">this License, you may choose any version ever published by the Free Software</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Foundation.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 10. If you wish to incorporate parts of the Program into other free</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">programs whose distribution conditions are different, write to the author</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">to ask for permission. For software which is copyrighted by the Free</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Software Foundation, write to the Free Software Foundation; we sometimes</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">make exceptions for this. Our decision will be guided by the two goals</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">of preserving the free status of all derivatives of our free software and</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">of promoting the sharing and reuse of software generally.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> NO WARRANTY</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">REPAIR OR CORRECTION.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">POSSIBILITY OF SUCH DAMAGES.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> END OF TERMS AND CONDITIONS</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> How to Apply These Terms to Your New Programs</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> If you develop a new program, and you want it to be of the greatest</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">possible use to the public, the best way to achieve this is to make it</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">free software which everyone can redistribute and change under these terms.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> To do so, attach the following notices to the program. It is safest</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">to attach them to the start of each source file to most effectively</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">convey the exclusion of warranty; and each file should have at least</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">the "copyright" line and a pointer to where the full notice is found.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> &lt;one line to give the program's name and a brief idea of what it does.&gt;</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Copyright (C) &lt;year&gt; &lt;name of author&gt;</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> This program is free software; you can redistribute it and/or modify</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> it under the terms of the GNU General Public License as published by</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> the Free Software Foundation; either version 2 of the License, or</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> (at your option) any later version.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> This program is distributed in the hope that it will be useful,</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> but WITHOUT ANY WARRANTY; without even the implied warranty of</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> GNU General Public License for more details.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> You should have received a copy of the GNU General Public License along</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> with this program; if not, write to the Free Software Foundation, Inc.,</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Also add information on how to contact you by electronic and paper mail.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If the program is interactive, make it output a short notice like this</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">when it starts in an interactive mode:</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Gnomovision version 69, Copyright (C) year name of author</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> This is free software, and you are welcome to redistribute it</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> under certain conditions; type `show c' for details.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The hypothetical commands `show w' and `show c' should show the appropriate</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">parts of the General Public License. Of course, the commands you use may</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">be called something other than `show w' and `show c'; they could even be</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">mouse-clicks or menu items--whatever suits your program.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">You should also get your employer (if you work as a programmer) or your</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">school, if any, to sign a "copyright disclaimer" for the program, if</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">necessary. Here is a sample; alter the names:</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Yoyodyne, Inc., hereby disclaims all copyright interest in the program</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> `Gnomovision' (which makes passes at compilers) written by James Hacker.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> &lt;signature of Ty Coon&gt;, 1 April 1989</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Ty Coon, President of Vice</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This General Public License does not permit incorporating your program into</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">proprietary programs. If your program is a subroutine library, you may</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">consider it more useful to permit linking proprietary applications with the</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">library. If this is what you want to do, use the GNU Lesser General</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Public License instead of this License.</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p></body></html> + + + + About + Sobre + + + + About PokerTH 0.5 + Sobre PokerTH 0.5 + + + + Close + Fechar + + + + License + Licença + + + + Project + Projeto + + + + Thanks to + Obrigado a + + + + Translation + Tradução + + + + About PokerTH 0.6 + Sobre PokerTH 0.6 + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">PokerTH 0.6</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">PokerTH 0.6</span></p></body></html> + + + + - Poker Engine for the popular "Texas Holdem" Poker +- Singleplayer games with up to 6 computer-opponents +- Multiplayer network games +- Coded in C++ / QT4 + + +© 2006-2007, FHammer, FThauer, LMay + - Jogo do popular "Texas Holdem" Poker- Singleplayer com até 6 oponentes-computador- Multiplayer com jogos via rede- Codificado em C++ / QT4© 2006-2007, FHammer, FThauer, LMay + + + + <a href="http://www.pokerth.net" target="_blank">http://www.pokerth.net<a> + <a href="http://www.pokerth.net" target="_blank">http://www.pokerth.net<a> + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Projectpage: </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://www.pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">http://www.pokerth.net</span></a></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">IRC: </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> #pokerth (irc.freenode.net)</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Authors: </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Felix Hammer (<a href="mailto:doitux@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">doitux@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - initial idea, basic architecture, gui implementation, linux package</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Florian Thauer (<a href="mailto:floty@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">floty@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - initial idea, basic architecture, engine development</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Lothar May (<a href="mailto:lotodore@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">lotodore@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - network development, windows package</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Oskar Lindqvist (<a href="mailto:tranberry@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">tranberry@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - gui graphics design, webdesign</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Erhard List (<a href="mailto:dunkanx@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">dunkanx@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - MacOS package</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Projectpage: </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://www.pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">http://www.pokerth.net</span></a></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">IRC: </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> #pokerth (irc.freenode.net)</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Authors: </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Felix Hammer (<a href="mailto:doitux@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">doitux@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Idéia inicial, arquitetura básica, implementação de guia, pacote linux</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Florian Thauer (<a href="mailto:floty@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">floty@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Idéia inicial, arquitetura básica, engenharia de desenvolvimento</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Lothar May (<a href="mailto:lotodore@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">lotodore@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - desenvolvimento da rede, pacote windows</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Oskar Lindqvist (<a href="mailto:tranberry@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">tranberry@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - guia de gráficos e design, webdesign</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Erhard List (<a href="mailto:dunkanx@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">dunkanx@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Pacote MacOS </p></body></html> + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">!!!Please replace this with your translator name!!! - !!!Please replace this with your language!!! - !!!If you like please replace this with your mail address (otherwise please remove)!!!</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">!!!Leandro Fregnani!!! - !!!Português - Brasil!!! - !!!maxputo@gmail.com!!!</p></body></html> + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://commons.wikimedia.org/wiki/Main_Page"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">Wikimedia Commons</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"> - <span style=" font-weight:400;">for different popular avatar picture resources</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Viktoria, Benedikt, Erhard, Felix, Florian, Linus, Lothar, Mark</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for people avatar pictures</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">ZeiZei</span> </p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for "misc" avatar pictures</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://kde-look.org/"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">http://kde-look.org/</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for different gpl lizensed sounds</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">doc_dos</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for self recorded chip sounds</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://commons.wikimedia.org/wiki/Main_Page"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">Wikimedia Commons</span></a></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"> - <span style=" font-weight:400;">por diferentes e populares imagens de avatar</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Viktoria, Benedikt, Erhard, Felix, Florian, Linus, Lothar, Mark</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - para imagens de avatar</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">ZeiZei</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - por "mix" de imagens de avatar</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://kde-look.org/"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">http://kde-look.org/</span></a></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - por diferentes gpl sons licenciados</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">doc_dos</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - pela própria gravação de sons</p></body></html> + + + + About PokerTH 0.6-beta + Sobre PokerTH 0.6-beta + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">PokerTH 0.6-beta</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:12pt; font-weight:600;">PokerTH 0.6-beta</span></p></body></html> + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Projectpage: </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://www.pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">http://www.pokerth.net</span></a></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">IRC: </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> #pokerth (irc.freenode.net)</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Authors: </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Felix Hammer (<a href="mailto:doitux@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">doitux@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - initial idea, basic architecture, gui implementation, linux package</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Florian Thauer (<a href="mailto:floty@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">floty@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - initial idea, basic architecture, engine development</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Lothar May (<a href="mailto:lotodore@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">lotodore@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - basic architecture, network development, windows package</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Oskar Lindqvist (<a href="mailto:tranberry@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">tranberry@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - gui graphics design, webdesign</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Erhard List (<a href="mailto:dunkanx@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">dunkanx@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - MacOS package</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Projectpage: </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://www.pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">http://www.pokerth.net</span></a></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">IRC: </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> #pokerth (irc.freenode.net)</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Authors: </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Felix Hammer (<a href="mailto:doitux@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">doitux@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - idéia incial, arquitetura básica, implementação do gui, pacote linux</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Florian Thauer (<a href="mailto:floty@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">floty@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - idéia inicial, arquitetura básica, engenharia básica</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Lothar May (<a href="mailto:lotodore@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">lotodore@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - arquitetura básica, desenvolvimento de rede, pacote windows</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Oskar Lindqvist (<a href="mailto:tranberry@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">tranberry@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - designer de gráficos, webdesign</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Erhard List (<a href="mailto:dunkanx@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">dunkanx@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Pacote MacOS</p></body></html> + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://commons.wikimedia.org/wiki/Main_Page"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">Wikimedia Commons</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"> - <span style=" font-weight:400;">for different popular avatar picture resources</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Viktoria, Benedikt, Erhard, Felix, Florian, Linus, Lothar, Mark, Steffi, Caro</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for people avatar pictures</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">ZeiZei</span> </p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for "misc" avatar pictures</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://kde-look.org/"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">http://kde-look.org/</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for different gpl lizensed sounds</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">doc_dos</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for self recorded chip sounds</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://commons.wikimedia.org/wiki/Main_Page"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">Wikimedia Commons</span></a></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"> - <span style=" font-weight:400;">por diferentes e populares imagens de avatar</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Viktoria, Benedikt, Erhard, Felix, Florian, Linus, Lothar, Mark</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - para imagens de avatar</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">ZeiZei</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - por "mix" de imagens de avatar</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://kde-look.org/"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">http://kde-look.org/</span></a></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - por diferentes gpl sons licenciados</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">doc_dos</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - pela própria gravação de sons</p></body></html> + + + + - Poker engine for the popular "Texas Hold'em" Poker +- Singleplayer games with up to 6 computer-opponents +- Multiplayer network games +- Coded in C++/Qt4 + + +© 2006-2007, FHammer, FThauer, LMay + - Jogo do popular "Texas Hold'em" Poker +- Singleplayer com até 6 oponentes-computador +- Multiplayer com jogos via rede +- Codificado em C++ / QT4 + + +© 2006-2007, FHammer, FThauer, LMay + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Projectpage: </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://www.pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">http://www.pokerth.net</span></a></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">IRC: </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> #pokerth (irc.freenode.net)</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Authors: </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Felix Hammer (<a href="mailto:doitux@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">doitux@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - initial idea, basic architecture, gui implementation, linux package</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Florian Thauer (<a href="mailto:floty@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">floty@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - initial idea, basic architecture, engine development</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Lothar May (<a href="mailto:lotodore@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">lotodore@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - basic architecture, network development, windows package</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Oskar Lindqvist (<a href="mailto:tranberry@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">tranberry@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - gui graphics design, webdesign</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Erhard List (<a href="mailto:dunkanx@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">dunkanx@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - MacOS package</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Projectpage: </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://www.pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">http://www.pokerth.net</span></a></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">IRC: </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> #pokerth (irc.freenode.net)</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Authors: </span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Felix Hammer (<a href="mailto:doitux@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">doitux@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Idéia inicial, arquitetura básica, implementação de guia, pacote linux</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Florian Thauer (<a href="mailto:floty@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">floty@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Idéia inicial, arquitetura básica, engenharia de desenvolvimento</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Lothar May (<a href="mailto:lotodore@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">lotodore@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - desenvolvimento da rede, pacote windows</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Oskar Lindqvist (<a href="mailto:tranberry@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">tranberry@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - guia de gráficos e design, webdesign</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Erhard List (<a href="mailto:dunkanx@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">dunkanx@pokerth.net</span></a>)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - Pacote MacOS </p></body></html> + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">!!!Please replace this with your translator name!!! - !!!Please replace this with your language!!! - !!!If you like please replace this with your mail address (otherwise please remove)!!!</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Leandro "Maxputo" Fregnani - Português - Brasil - maxputo@gmail.com</p></body></html> + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://commons.wikimedia.org/wiki/Main_Page"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">Wikimedia Commons</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"> - <span style=" font-weight:400;">for different popular avatar picture resources</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Viktoria, Benedikt, Erhard, Felix, Florian, Linus, Lothar, Mark, Steffi, Caro</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for people avatar pictures</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">ZeiZei</span> </p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for "misc" avatar pictures</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://kde-look.org/"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">http://kde-look.org/</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for different gpl lizensed sounds</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">doc_dos</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for self recorded chip sounds</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://commons.wikimedia.org/wiki/Main_Page"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">Wikimedia Commons</span></a></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"> - <span style=" font-weight:400;">por diferentes e populares imagens de avatar</span></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Viktoria, Benedikt, Erhard, Felix, Florian, Linus, Lothar, Mark</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - para imagens de avatar</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">ZeiZei</span> </p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - por "mix" de imagens de avatar</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://kde-look.org/"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">http://kde-look.org/</span></a></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - por diferentes gpl sons licenciados</p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">doc_dos</span></p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - pela própria gravação de sons</p></body></html> + + + + aboutPokerthImpl + + + PokerTH %1 + PokerTH %1 + + + + About PokerTH %1 + Sobre PokerTH %1 + + + + changeCompleteBlindsDialog + + + Change Blinds Settings + Mudar Configurações de Apostas + + + + First small blind: + Primeiro small blind: + + + + Raise blinds: + Aumentar blinds: + + + + Every: + Sempre: + + + + hands + Mãos + + + + minutes + minutos + + + + Raise mode: + Modo aumentar: + + + + Always double blinds + Sempre duplo blinds + + + + Manual blinds order: + Ordem manual de blinds: + + + + Delete + Apagar + + + + Add + Adicionar + + + + After this: + Depois disto: + + + + Always raise about: + Sempre aumentar sobre: + + + + $ + $ + + + + Stay at last blind + Ficar com o último blind + + + + Afterwards: + Depois: + + + + Always raise by: + Sempre aumentar por: + + + + Keep last blind + Manter último blind + + + + changeCompleteBlindsDialogImpl + + + Manual Blinds Order + Ordem manual de blinds + + + + You cannot set more than 30 manual blinds. + Você não pode configurar mais de 30 blinds manual. + + + + changeHumanPlayerNameDialog + + + Name: + Nome: + + + + Network Error + Erro de Conexão + + + + connectToServerDialog + + + Cancel + Cancelar + + + + Connect to Server + Conectar ao Servidor + + + + Connecting to Server ... + Conectando ao Servidor ... + + + + connectToServerDialogImpl + + + Resolving address... + Rosolvendo endereço... + + + + Connecting to server... + Conectando ao servidor... + + + + Starting session... + Iniciando sessão... + + + + Connection established! + Conexão estabelecida! + + + + createInternetGameDialog + + + Create Game + Criar Jogo + + + + Game Speed for computer opponents: + Velocidade do Jogo para Oponentes Computador: + + + + Timeout for player action (sec): + Tempo esgotado para ação do jogador (sec): + + + + Maximum number of players: + Número máximo de jogadores: + + + + Start Cash: + Dinheiro Inicial: + + + + Small Blind: + Small Blind: + + + + Password: + Senha: + + + + Cancel + Cancelar + + + + Create Internet Game + Criar jogo de internet + + + + Internet Game Settings + Configurações para jogos de internet + + + + Blinds + Blinds + + + + Use saved blinds settings + Usar configurações de blinds salvo + + + + Change blinds settings ... + Alterar configurações de blinds ... + + + + $ + R$ + + + + Timeout for player action: + Tempo esgotado para ação do jogador: + + + + s + s + + + + createNetworkGameDialog + + + Cancel + Cancelar + + + + Create Game + Criar Jogo + + + + Create Network Game + Criar Jogo em Rede + + + + Game Speed for computer opponents: + Velocidade do Jogo para Oponentes Computador: + + + + Hands before raise small blind: + Hands antes de aumentar o small blind: + + + + Maximum number of players: + Número máximo de jogadores: + + + + Network Game Settings + Configurações para Jogo em Rede + + + + Small Blind: + Small Blind: + + + + Start Cash: + Dinheiro Inicial: + + + + Timeout for player action (sec): + Tempo esgotado para ação do jogador (sec): + + + + Blinds + Blinds + + + + Use saved blinds settings + Usar configurações de blinds salvo + + + + Change blinds settings ... + Alterar configurações de blinds ... + + + + $ + R$ + + + + Timeout for player action: + Tempo esgotado para ação do jogador: + + + + s + s + + + + gameLobbyDialog + + + Game Lobby + Sala de Jogo + + + + Lobby-Chat + Sala-Bate Papo + + + + Game + Jogo + + + + Private + Privado + + + + Game Info + Info de jogo + + + + Connected Players + Jogadores Conectados + + + + Fill up with computer opponents + Adicionar oponentes computadores + + + + Start Game + Iniciar Jogo + + + + Kick + Chutar + + + + Hands before raise blinds: + Hands antes de aumentar o blind: + + + + Maximum number of players: + Número máximo de jogadores: + + + + Small Blind: + Small Blind: + + + + Start Cash: + Dinheiro Inicial: + + + + Timeout for player action (sec): + Tempo esgotado para ação do jogador (sec): + + + + Leave Game + Deixar o Jogo + + + + Create Game + Criar Jogo + + + + Join Game + Entrar no Jogo + + + + Available Players + Jogadores disponiveis + + + + Players + Jogadores + + + + Kick Player + Chutar Jogador + + + + State + Estado + + + + Maximum number of players: + Número máximo de jogadores: + + + + Start Cash: + Dinheiro Inicial: + + + + First small blind: + Primeiro small blind: + + + + Blinds raise mode: + Mode de aumento do Blind: + + + + Manual blinds list: + Lista manual de blinds: + + + + Timeout for player action (sec): + Tempo esgotado para ação do jogador (sec): + + + + Internet Game Lobby + Sala para jogos de Internet + + + + Blinds raise interval: + Intervalo de aumento do Blind: + + + + Join any game + Entrar em qualquer jogo + + + + gameLobbyDialogImpl + + + game + jogo + + + + Game Info + Info de jogo + + + + Server Error + Erro de Servidor + + + + You should not kick yourself from this game! + Você não pode se chutar deste jogo! + + + + Joining a private Game + Entrando num jogo privado + + + + You are about to join a private game. Please enter the password! + Você esta prestes a entrar em um jogo privado. Por favor entre com a senha! + + + + running + executando + + + + open + abrir + + + + hands + Mãos + + + + minutes + minutos + + + + double blinds + duplo blinds + + + + manual blinds order + ordem manual de blinds + + + + Starting game. Please wait ... + Começando jogo. Por favor aguarde ... + + + + running games: %1 + partidas em jogo: %1 + + + + open games: %1 + partidas abertas: %1 + + + + players in chat: %1 + jogadores no bate-papo: %1 + + + + connected players: %1 + jogadores conectados: %1 + + + + %1's game + %1's jogo + + + + joinNetworkGameDialog + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://en.wikipedia.org/wiki/Ipv6"><span style=" text-decoration: underline; color:#0000ff;">What is this?</span></a></p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://pt.wikipedia.org/wiki/Ipv6"><span style=" text-decoration: underline; color:#0000ff;">O que é isso?</span></a></p></body></html> + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol"><span style=" text-decoration: underline; color:#0000ff;">What is this?</span></a></p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol"><span style=" text-decoration: underline; color:#0000ff;">O que é isso?</span></a></p></body></html> + + + + Address + Endereço + + + + Close + Fechar + + + + Connect + Conectar + + + + Connect to Network Game + Conectar o Jogo em Rede + + + + Delete + Apagar + + + + IP Address / Domain Name: + Endereço IP / Nome de Domínio: + + + + IPv6 + IPv6 + + + + Join Network Game + Entrar Jogo em Rede + + + + myServerProfile1 + meuperfildeservidor1 + + + + Name + Nome + + + + Password (optional): + Senha (opcional): + + + + Port + Porta + + + + Port: + Porta: + + + + Profile Name: + Nome de Perfil: + + + + Save + Salvar + + + + SCTP + SCTP + + + + Server Profiles + Perfil de Servidores + + + + Use IPv6 + Usar IPv6 + + + + Use SCTP + Usar SCTP + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-weight:400; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol"><span style=" text-decoration: underline; color:#0000ff;">What is this?</span></a></p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol"><span style=" text-decoration: underline; color:#0000ff;">O que é isso?</span></a></p></body></html> + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-weight:400; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://en.wikipedia.org/wiki/Ipv6"><span style=" text-decoration: underline; color:#0000ff;">What is this?</span></a></p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://pt.wikipedia.org/wiki/Ipv6"><span style=" text-decoration: underline; color:#0000ff;">O que é isso?</span></a></p></body></html> + + + + joinNetworkGameDialogImpl + + + A profile with the name: " + Perfil com o nome: " + + + + Could not load server-profiles-file: + + Não foi possível carregar servidor-perfil-arquivo: + + + + + Could not read server-profiles list + Não foi possível ler o servidor-lista de perfil + + + + Could not save server-profiles-file: + + Não foi possível salvar servidor-perfil-arquivo: + + + + + Load Server-Profile-File Error + Erro ao carregar servidor-perfil-arquivo + + + + Read Server-Profile List Error + Erro ao ler servidor-lista de perfil + + + + Save Server Profile Error + Erro ao salvar Perfil de Servidor + + + + Save Server-Profile-File Error + Erro ao salvar servidor-perfil-arquivo + + + + A profile with the name: %1 already exists. +Would you like to overwrite ? + Um perfil com este nome: %1 já existe. +Você gostaria de substituir ? + + + + gameTable + + + About PokerTH ... + Sobre PokerTH ... + + + + Chat + Bate Papo + + + + Create Network Game ... + Criar Jogo em rede ... + + + + Ctrl+F + Ctrl+F + + + + Ctrl+H + Ctrl+H + + + + Ctrl+J + Ctrl+J + + + + Ctrl+L + Ctrl+L + + + + Ctrl+N + Ctrl+N + + + + Ctrl+O + Ctrl+O + + + + Ctrl+Q + Ctrl+Q + + + + Ctrl+T + Ctrl+T + + + + Fullscreen + Tela Cheia + + + + Game + Jogo + + + + Hands + Hands + + + + Join Network Game ... + Entrar em jogo de rede ... + + + + Log + Registro + + + + PokerTH 0.5 - The Open-Source Texas Holdem Engine + PokerTH 0.5 - Jogo Texas Holdem Open-Source + + + + QGroupBox { background-image: url(:/graphics/resources/graphics/toolboxFrameBG.png) } + QGroupBox { background-image: url(:/graphics/resources/graphics/toolboxFrameBG.png) } + + + + QMainWindow { background-image: url(:/guiv2/resources/guiv2/table.png); background-position: bottom center; background-origin: content; } + QMainWindow { background-image: url(:/guiv2/resources/guiv2/table.png); background-position: bottom center; background-origin: content; } + + + + Quit + Sair + + + + Settings ... + Configurações ... + + + + Show/Hide Chat Window + Mostrar/Esconder Janela de Bate Papo + + + + Show/Hide Hands Window + Mostrar/Esconder Janela de Hands + + + + Show/Hide Log Window + Mostrar/Esconder Janela de Registro + + + + Speed: + Velocidade: + + + + Start Local Game ... + Iniciar Jogo Local ... + + + + Stop + Parar + + + + View + Visualizar + + + + PokerTH 0.6 - The Open-Source Texas Holdem Engine + PokerTH 0.6 - Jogo Texas Holdem Open-Source + + + + Network Game + Jogo em Rede + + + + Internet Game ... + Jogo na internet ... + + + + Ctrl+I + Ctrl+I + + + + All In + Apostar tudo + + + + Away + Fora + + + + Manual Action (default) + Ação Manual (padrão) + + + + Auto-Check / Auto-Fold + Auto-Check / Auto-Desistir + + + + Auto-Check / Auto-Call-Any + Auto-Check / Auto-Qualquer-Call + + + + PokerTH 0.6-beta - The Open-Source Texas Holdem Engine + PokerTH 0.6-beta - Jogo Texas Holdem Open-Source + + + + Back to lobby + Voltar a Sala + + + + Show/Hide Away Window + Mostrar/Esconder Janela de indisponível + + + + Ctrl+A + Ctrl+A + + + + gameTableImpl + + + An internal error occured. + Um erro interno ocorreu. + + + + An invalid network packet was received. +Please make sure that all players use the same version of PokerTH. + Um pacote inválido foi recebido. +Por favor tenha certeza de que todos os jogadores usam a mesma versão do PokerTH. + + + + An invalid port was set (ports 0-1023 are not allowed). + Porta inválida adicionada (portas 0-1023 não são permitidas). + + + + Bind failed - please choose a different port. + A conexão falhou - por favor escolha uma porta diferente. + + + + Cmd+N to start a new game + Cmd+N para começar um novo jogo + + + + Connection timed out. +Please check the server address. + +If the server is behind a NAT-Router, make sure port forwarding has been set up on server side. + Não houve conexão. +Por favor verifique o endereço do servidor. + +Caso o servidor esteja atrás de um NAT-Router, tenha certeza de que a porta esteja configurada no servidor. + + + + Connection was closed by the server. + Conexão foi fechada pelo servidor. + + + + Could not connect to the server. + Não foi possível conectar ao servidor. + + + + Could not create a socket for TCP communication. + Não foi possível criar um socket para comunicação por TCP. + + + + Could not set the IP address. + Não foi possível adicionar o endereço IP. + + + + Could not set the port for this type of address. + Não foi possível adicionar a porta para este endereço. + + + + Ctrl+N to start a new game + Ctrl+N para começar um novo jogo + + + + F1 - Fold/All-In | F2 - Check/Call | F3 - Bet/Raise + F1 - Desistir/Apostar Tudo | F2 - Check/Call | F3 - Aposta/Aumentar + + + + Internal network error: "listen" failed. + Erro interno de rede: "listen" falhou. + + + + Internal network error: "select" failed. + Erro interno de rede: "selecionar" falhou. + + + + Internal network error: "send" failed. + Erro interno de rede: "enviar" falhou. + + + + Internal network error: Duplicate TCP connection. + Erro interno de rede: Conexão TCP duplicada. + + + + Internal state error. +Please make sure that all players use the same version of PokerTH. + Erro interno de estado. +Por favor tenha certeza de que todos os jogadores usam a mesma versão do PokerTH. + + + + Invalid password when joining the game. +Please reenter the password and try again. + Senha inválida ao tentar entrar no jogo. +Por favor redigite a senha e tente novamente. + + + + Network Error + Erro de Rede + + + + Server address was not set. + Endereço de servidor não foi adicionado. + + + + Server execution was terminated. + Execusão do servidor foi terminada. + + + + Sorry, this server is already full. + Desculpe, este servidor está cheio. + + + + Start + Começar + + + + Stop + Parar + + + + The client player count is invalid. + A conta do cliente é invalida. + + + + The password is too long. Please choose another one. + A senha é muito longa. Por favor escolha outra. + + + + The player name is either too short or too long. Please choose another one. + O nome do jogador é muito pequeno ou muito longo. Por favor escolha outro. + + + + The PokerTH server does not support this version of the game. +Please update PokerTH. + O serivodor da PokerTH não suporta esta versão do jogo. +Por favor atualize o PokerTH. + + + + The server name could not be resolved. + O nome do servidor não pode ser resovildo. + + + + The server referred to an unknown player. Aborting. + O servidor refere-se a um jogador desconhecido. Abortando. + + + + Unable to join - the server has already started the game. + Impossível entrar - o servidor já começou o jogo. + + + + You were kicked from the server. + Você foi chutado pelo servidor. + + + + Your player name is already used by another player. +Please choose a different name. + Seu nome está sendo usado por outro jogador. +Por favor escolha um nome diferente. + + + + The player name is too short, too long or reserved. Please choose another one. + O nome do jogador é muito curto, longo ou reservado. Por favor escolha outro. + + + + The game name is either too short or too long. Please choose another one. + O nome do jogo é muito curto ou longo. Por favor escolha outro. + + + + The game could not be found. + O jogo não pode ser encontrado. + + + + The chat text is invalid. + O texto do bate-papo é invalido. + + + + Network Notification + Notificação de Rede + + + + You were kicked from the game. + Você foi chutado do jogo. + + + + Sorry, this game is already full. + Desculpe, este jogo está cheio. + + + + F1 - Bet/Raise | F2 - Check/Call | F3 - Fold/All-In + F1 - Bet/Aumentar | F2 - Check/Call | F3 - Desistir/Apostar tudo + + + + Chat + Bate Papo + + + + Manual mode set. You've got to choose yourself now. + Modo manual configurado. Você precisa se escolher agora. + + + + Auto mode set: Check or call any. + Modo Auto configurado: Qualquer Check ou Call. + + + + Auto mode set: Check or fold. + Modo Auto Configurado: Check ou desistir. + + + + You cannot join Internet-Game-Lobby with "Human Player" as nickname. +Please choose another one. + Você não pode entrar na sala do jogo "Jogador Humano" com este apelido. +Por favor escolha outro. + + + + Internal error: The current player could not be found. + Erro interno: O jogador atual não pode ser encontrado. + + + + Internal error: The current player is not active. + Erro interno: O jogador atual não está ativo. + + + + Too many manual blinds were set. Please reconfigure the manual blinds. + Muitos manual blinds configurados. Por favor reconfigure o manual blinds. + + + + An invalid avatar file was configured. Please choose a different avatar. + Um avatar invalido foi configurado. Por favor escolha outro. + + + + The selected avatar file is too large. Please choose a different avatar. + O avatar selecionado é muito grande. Por favor escolha outro avatar. + + + + The server requested a non-existing avatar. + O servidor requisitou um avatar não-existente. + + + + Could not start game: Synchronization failed. + Não pode ser iniciado o jogo: Falha de Sincronização. + + + + F1 - Fold | F2 - Check/Call | F3 - Bet/Raise | F4 - All-In + F1 - Desistir | F2 - Check/Call | F3 - Aposta/Aumentar | F4 - Apostar-tudo + + + + F1 - All-In | F2 - Bet/Raise | F3 - Check/Call | F4 - Fold + F1 - Apostar-tudo | F2 - Aposta/Aumentar | F3 - Check/Call | F4 - Desistir + + + + The PokerTH server does not support this version of the game. +Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> and download the latest version. + O servidor do PokerTH não suporta está versão do jogo. +Por favor vá para <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> e faça o download da última versão. + + + + The player name is too short, too long or invalid. Please choose another one. + O nome do jogador é muito curto, longo ou invalido. Por favor escolha outro. + + + + The server is down for maintenance. Please try again later. + O servidor está paralizado para manutenção. Por favor tente mais tarde. + + + + A new release of PokerTH is available. +Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> and download the latest version. + Uma nova versão do PokerTH is disponivel. +Por favor vá para <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> e faça o download da última versão. + + + + This beta release of PokerTH is outdated. +Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> and download the latest version. + Está versão beta do PokerTH está desatualizada. +Por favor vá para <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> e faça o download da última versão. + + + + Closing PokerTH during network game + Fechando o PoketTH durante o jogo em rede + + + + You are the hosting server. Do you want to close PokerTH anyway? + Você é o servidor do jogo. Você quer realmente fechar o PokerTH assim mesmo? + + + + The PokerTH server does not support this version of the game.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. + O servidor do PokerTH não suporta está versão do jogo.<br>Por favor vá para <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> e faça o download da última versão. + + + + A new release of PokerTH is available.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. + Uma nova versão do PokerTH is disponivel.<br>Por favor vá para <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> e faça o download da última versão. + + + + This beta release of PokerTH is outdated.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. + Está versão beta do PokerTH está desatualizada.<br>Por favor vá para <a href="http://www.pokerth.net/"target="_blank">http://www.pokerth.net/<a/> e faça o download da última versão. + + + + PokerTH %1 - The Open-Source Texas Holdem Engine + PokerTH %1 - Texas Holdem + + + + Lobby + Lobby + + + + An internal avatar error occured. Please report this to an admin in the lobby chat. + Um erro interno de avatar ocorreu. Por favor reporte ao admin do lobby bate-papo. + + + + PokerTH - Internet Game Message + PokerTH - Mensagem do jogo da Internet + + + + Attention! Do you really want to leave the current game +and go back to the lobby? + Atenção! Você realmente quer sair do jogo atual +e voltar ao lobby? + + + + You were temporarily banned from the server. + Você está temporariamente banido deste servidor. + + + + Your server connection timed out due to inactivity. You are very welcome to reconnect! + Sua conexão expirou devido à inatividade. Você é muito bem-vindo para reconectar! + + + + You cannot upload a new avatar file at this time. Please try again in a few seconds. + Você não pode enviar um novo avatar neste momento. Tente novamente em alguns segundos. + + + + Your admin state timed out due to inactivity. Feel free to create a new game! + Seu estado de admin expirou devido à inatividade. Sinta-se avontade para criar um novo jogo! + + + + manualBlindsOrderDialog + + + Manual Blinds Order + Ordem manual de blinds + + + + Delete + Apagar + + + + Add + Adicionar + + + + After this: + Depois disto: + + + + Always double blinds + Sempre duplo blinds + + + + Always raise about: + Sempre aumentar sobre: + + + + $ + $ + + + + Stay at last blind + Ficar com o último blind + + + + Afterwards: + Depois: + + + + Always raise by: + Sempre aumentar por: + + + + Keep last blind + Manter último blind + + + + manualBlindsOrderDialogImpl + + + Manual Blinds Order + Ordem manual de blinds + + + + You cannot set more than 30 manual blinds. + Você não pode configurar mais de 30 blinds manual. + + + + myMessageDialog + + + Dialog + Diálogo + + + + MessageText + Mensagem de Texto + + + + Do not show this warning again. + Não mostrar mais está mensagem novamente. + + + + newGameDialog + + + Game Speed: + Velocidade do Jogo: + + + + Hands before raise small blind: + Hands antes de aumentar o small blind: + + + + Local Game Settings + Configurações de Jogo Local + + + + Number of players: + Número de jogadores: + + + + Small Blind: + Small Blind: + + + + Start Cash: + Dinheiro Inicial: + + + + Start Local Game + Iniciar Jogo Local + + + + Blinds + Blinds + + + + Use saved blinds settings + Usar configurações de blinds salvo + + + + Change blinds settings ... + Alterar configurações de blinds ... + + + + $ + R$ + + + + selectAvatarDialog + + + Load avatar from external file + Erro ao carregar arquivo externo de avatar + + + + Please select an avatar + Por favor selecione um avatar + + + + Select an avatar + Selecione um avatar + + + + People + Pessoas + + + + Miscellaneous + Variado + + + + selectAvatarDialogImpl + + + Avatar File Error + Erro de arquivo do avatar + + + + Images (*.png) + Imagens (*.png) + + + + Please select an avatar from the list! + Por favor selecione um avatar da lista! + + + + Select external avatar picture + Selecione uma imagem de avatar externa + + + + The entered avatar picture doesn't exists. +Please enter an valid picture! + A imagem de entrada do avatar não existe. +Por favor entre com uma imagem válida! + + + + The file size of the chosen picture is too big. (max. 30KB) +Please choose a smaller picture! + O arquivo selecionado para a imagem é muito grande (max. 30KB) +Por favor escolha outra imagem! + + + + Images (*.png *.jpg *.gif) + Imagens (*.png *.jpg *.gif) + + + + The entered avatar picture doesn't exist. +Please enter an valid picture! + A imagem de entrada do avatar não existe.Por favor entre com uma imagem válida! + + + + settingsDialog + + + <a href="http://en.wikipedia.org/wiki/Ipv6">What is this?</a> + <a href="http://pt.wikipedia.org/wiki/Ipv6">O que é isso?</a> + + + + <a href="http://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol">What is this?</a> + <a href="http://pt.wikipedia.org/wiki/Stream_Control_Transmission_Protocol">O que é isso?</a> + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Note: Best avatar quality with image ratio like </span><span style=" font-weight:600; font-style:italic;">width=50, height=50.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Nota: A melhor qualidade do avatar com rátio de imagem </span><span style=" font-weight:600; font-style:italic;">width=50, height=50.</span></p></body></html> + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Note: Best quality with image ratio like </span><span style=" font-weight:600; font-style:italic;">width=100, height=140.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Note:A melhor qualidade com rátio de imagem </span><span style=" font-weight:600; font-style:italic;">width=100, height=140.</span></p></body></html> + + + + 0.4 (current) + 0.4 (Atual) + + + + 10 + 10 + + + + action (high frequent disc access) + Ação (acesso fregüente elevado de disco) + + + + Computer Engine + Computador + + + + Day(s) + Dia(s) + + + + Default + Original + + + + Enable/Disable Logging + Ativar/Desativar Registros + + + + Engine Version for computer opponents: + Versão de inteligência dos oponentes computadores: + + + + Engine Version: + Versão do jogo: + + + + Flipside of Cards + Lado oposto das Cartas + + + + game (low disc access) + Jogo (acesso a disco baixo) + + + + Game Speed for computer opponents: + Velocidade do Jogo para Oponentes Computador: + + + + Game Speed: + Velocidade do Jogo: + + + + hand (medium disc access) + hand (acesso a disco médio) + + + + Hands before raise small blind: + Hands antes de aumentar o small blind: + + + + Human Player: + Jogador Humano: + + + + Interface + Interface + + + + Local Game Default Settings + Configurações Originais de Jogo Local + + + + Local Game Settings + Configurações de Jogo Local + + + + Log File Directory: + Diretório de registro de arquivo: + + + + Log Messages + Mensagens do Registro + + + + Maximum number of players: + Número máximo de jogadores: + + + + Network Game Default Settings + Configurações originais para Jogo em Rede + + + + Network Game Settings + Configurações para Jogo em Rede + + + + Number of players: + Número de jogadores: + + + + Opponent 1: + Oponente 1: + + + + Opponent 2: + Oponente 2: + + + + Opponent 3: + Oponente 3: + + + + Opponent 4: + Oponente 4: + + + + Opponent 5: + Oponente 5: + + + + Opponent 6: + Oponente 6: + + + + Own flipside picture: + Sua imagem do lado oposto: + + + + Pause between hands (press "start" button to go on) + Pausa entre as hands (pressione o botão "iniciar" para continuar) + + + + Play sound effects + Ouvir efeitos sonoros + + + + Player Nicks + Apelidos de jogadores + + + + Server Password: + Senha do Servidor: + + + + Server Port: + Porta do Servidor: + + + + Server Settings + Configurações do Servidor + + + + Settings + Configurações + + + + Show buttons for small blind and big blind + Mostrar botões para small blind e big blind + + + + Show fade-out animation for non-winning cards + Mostrar animação de fade-out para não ganhadores + + + + Show flip-card animation + Mostrar animação de flip-card + + + + Show game settings dialog on every new game + Mostrar diálogo de configurações do jogo a novo jogo + + + + Show intro on startup + Mostrar introdução ao iniciar + + + + Show left toolbox + Mostrar caixa de ferramentas a esquerda + + + + Show right toolbox + Mostrar caixa de ferramentas a direita + + + + Show statusbar messages + Mostrar barra de status de mensagens + + + + Small Blind: + Small Blind: + + + + Sound Volume: + Volume de Som: + + + + Start Cash: + Dinheiro Inicial: + + + + Store log files for + Armazenar arquivos de registro para + + + + Timeout for player action (sec): + Tempo esgotado para ação do jogador (sec): + + + + Use IPv6 + Usar IPv6 + + + + Use SCTP + Usar SCTP + + + + Write log after every: + Escrever o registro todas as vezes após: + + + + Show own cards only on mouse click + Mostrar suas cartas apenas com o click do mouse + + + + QLabel { font-weight: bold; } + QLabel { font-weight: bold; } + + + + Sound + Som + + + + Network Server Settings + Configurações do Servidor de rede + + + + Internet Game Settings + Configurações para jogos de internet + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Note: Default </span><span style=" font-weight:600; font-style:italic;">Game Settings</span><span style=" font-style:italic;"> like "</span>Maximum number of players", "<span style=" font-style:italic;">Start Cash" and "Small Blind" will be used </span><span style=" font-weight:600; font-style:italic;">from Network Game Settings.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Nota: Padrão </span><span style=" font-weight:600; font-style:italic;">Configurações de Jogo</span><span style=" font-style:italic;"> Como "</span>Numero máximo de jogadores", "<span style=" font-style:italic;">Dinheiro incial" e "Small Blind" serão usados </span><span style=" font-weight:600; font-style:italic;">para configurações de jogos em rede.</span></p></body></html> + + + + Internet Server Settings (Dedicated Server) + Configurações de Servidor da Internet (Servidor Dedicado) + + + + Server Address: + Endereço de Servidor: + + + + Use password for private game: + Usar senha para jogo privado: + + + + Lobby Chat Settings (IRC Server) + Conigurações de Sala de Bate-Papo (Servidor IRC) + + + + chat.freenode.net + chat.freenode.net + + + + Channel: + Canal: + + + + #pokerth + #pokerth + + + + Reverse order of F-Keys (F1 - F3) + Reverter as ordens das teclas F* (F1 - F3) + + + + First small blind: + Primeiro small blind: + + + + Raise blinds: + Aumentar blinds: + + + + Every: + Sempre: + + + + hands + Mãos + + + + minutes + minutos + + + + Raise mode: + Modo aumentar: + + + + Always double blinds + Sempre duplo blinds + + + + Manual blinds order: + Ordem manual de blinds: + + + + Edit ... + Editar ... + + + + Language: + Idioma: + + + + Sound Categories + Categorias de Som + + + + Play game actions sounds like "check", "call", "raise" + Tocar sons de ação como "check", "call", "aumentar" + + + + Play lobby chat notifications + Tocar notificações de bate-papo na sala + + + + Play network/internet game notifications like "player joined the game" + Tocar notificações do jogo em rede/internet "jogador entrou no jogo" + + + + Enable/Disable Lobby Chat (IRC Server) + Habilitar/Desabilitar sala de bate-papo (Servidor IRC) + + + + Player Nicks/Avatars + Jogador Apelido/Avatar + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Nimbus Sans L';"><span style=" font-style:italic;">Note: Default </span><span style=" font-weight:600; font-style:italic;">Game Settings</span><span style=" font-style:italic;"> like "Maximum number of players", "Start Cash" and "Small Blind" will be used </span><span style=" font-weight:600; font-style:italic;">from Network Game Settings.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Nimbus Sans L';"><span style=" font-style:italic;">Nota: Padrão </span><span style=" font-weight:600; font-style:italic;">Configurações de Jogo</span><span style=" font-style:italic;"> como "Número Máximo de jogadores", "Dinheiro Incial" e "Small Blind" será usado </span><span style=" font-weight:600; font-style:italic;">para jogos em Rede.</span></p></body></html> + + + + Reverse order of F-Keys (F1 - F4) + Reverter as ordens das teclas F (F1 - F4) + + + + Network / Internet Game + Rede / Internet Jogos + + + + Switch keyboard focus to bet-input-field if it's your turn + Mudar o foco do Teclado para entrar no campo caso seja sua vez + + + + Channel Password: + Senha do Canal: + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style="font-weight:400; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Note: Best quality with image ratio like </span><span style=" font-weight:600; font-style:italic;">width=100, height=140.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Nota: A melhor qualidade com rátio de imagem </span><span style=" font-weight:600; font-style:italic;">width=100, height=140.</span></p></body></html> + + + + $ + R$ + + + + Timeout for player action: + Tempo esgotado para ação do jogador: + + + + s + s + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style="font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Note: Default </span><span style=" font-weight:600; font-style:italic;">Game Settings</span><span style=" font-style:italic;"> like "Maximum number of players", "Start Cash" and "Small Blind" will be used </span><span style=" font-weight:600; font-style:italic;">from Network Game Settings.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Nimbus Sans L';"><span style=" font-style:italic;">Nota: Padrão </span><span style=" font-weight:600; font-style:italic;">Configurações de Jogo</span><span style=" font-style:italic;"> como "Número Máximo de jogadores", "Dinheiro Incial" e "Small Blind" será usado </span><span style=" font-weight:600; font-style:italic;">para jogos em Rede.</span></p></body></html> + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style="font-weight:400; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Note: Best avatar quality with image ratio like </span><span style=" font-weight:600; font-style:italic;">width=50, height=50.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Nimbus Sans L'; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Nota: A melhor qualidade com rátio de imagem </span><span style=" font-weight:600; font-style:italic;">width=50, height=50.</span></p></body></html> + + + + settingsDialogImpl + + + Images (*.png) + Imagens (*.png) + + + + Open Directory + Abrir Diretório + + + + Select your flipside picture + Selecionar sua imagem do lado oposto + + + + Settings Error + Erro de Configuração + + + + The entered flipside picture doesn't exists. +Please enter an valid picture! + A imagem do Lado Oposto do baralho não existe. +Por favor entre com uma imagem válida! + + + + The log file directory doesn't exists. +Please select an valid directory! + O diretório do arquivo de registro não existe. +Por favor selecione um diretório valido! + + + + Images (*.png *.jpg *.gif) + Imagens (*.png *.jpg *.gif) + + + + Blinds Error + Erro de Blinds + + + + The first element in your manual-blinds-list +is smaller than current first-small-blind! +This first-small-blind-value will be set to maximum allowed value. + O primeiro elemtento da sua lista-manual-de-blinds +é menor do que a atual primeira-small-blind! +Esta primeira-small-blind-valor será configurada como valor máximo permitido. + + + + Dutch + Holandês + + + + English + Inglês + + + + French + Françes + + + + German + Alemão + + + + Hungarian + Húngaro + + + + Norse + Nórdicos + + + + Portuguese + Português Brasil + + + + Russian + Russo + + + + Turkish + Turco + + + + Language Changed + Idioma Alterado + + + + You have changed application language to %1. +Please restart PokerTH to load new language! + Você alterou o idioma da aplicação para %1. +Por favor reinicie o PokerTH para carregar o novo idioma! + + + + Italian + Italiano + + + + Slovak + Slovak + + + + The entered flipside picture doesn't exist. +Please enter an valid picture! + A imagem do lado oposto do baralho não existe.Por favor entre com uma imagem válida! + + + + The log file directory doesn't exist. +Please select an valid directory! + O diretório do arquivo de registro não existe.Por favor selecione um diretório valido! + + + + Norwegian + Noruegues + + + + Spanish + Espanhol + + + + Bulgarian + Bulgaro + + + + Polish + Polonês + + + + Chinese + Chinês + + + + Greek + Grego + + + + Swedish + Sueco + + + + startNetworkGameDialog + + + 0 + 0 + + + + Cancel + Cancelar + + + + Connected Players + Jogadores Conectados + + + + Kick + Chutar + + + + Maximum number of players: + Número máximo de jogadores: + + + + Start Game + Iniciar Jogo + + + + Start Network Game + Iniciar Jogo em rede + + + + Lobby-Chat + Sala-Bate Papo + + + + Fill up with computer opponents + Adicionar oponentes computadores + + + + Kick Player + Chutar Jogador + + + + Chat + Bate Papo + + + + startNetworkGameDialogImpl + + + Server Error + Erro de Servidor + + + + You should not kick yourself from this game! + Você não pode se chutar deste jogo! + + + + timeoutMsgBoxImpl + + + Timeout Warning + Aviso tempo esgotado + + + + Please click "OK" to stop the countdown! + Por favor clique em "OK" para parar o contador! + + + + You are game-admin of an open game which will time out in %1 seconds. + Você é o admin do jogo aberto, onde o tempo se acabará em %1 segundos. + + + + Your connection is about to time out due to inactivity in %1 seconds. + Sua conexão está prestes ser encerrada devido a inatividade em %1 segundos. + + + + waitForServerToStartGameDialog + + + Cancel + Cancelar + + + + Connected Players + Jogadores Conectados + + + + Waiting for Server ... + Aguardando por Servidor ... + + + + Waiting for the server to start the game ... + Aguardando o servidor iniciar o jogo ... + + + diff --git a/ts/pokerth_ru.ts b/ts/pokerth_ru.ts index 02059dbd..f73c63e6 100644 --- a/ts/pokerth_ru.ts +++ b/ts/pokerth_ru.ts @@ -3,12 +3,12 @@ Chat - + You cannot kick yourself! Вы не можете отключить себя! - + You cannot kick any player - You are not game admin! Вы не можете отключить кого-либо, т.к. не являетесь администратором игры! @@ -79,7 +79,7 @@ MyAvatarLabel - + Vote for kick this user @@ -1276,317 +1276,317 @@ Would you like to overwrite ? - mainWindow + gameTable - + PokerTH 0.5 - The Open-Source Texas Holdem Engine PokerTH 0.5 - Движок Texas Holdem c открытым кодом - + QMainWindow { background-image: url(:/guiv2/resources/guiv2/table.png); background-position: bottom center; background-origin: content; } QMainWindow { background-image: url(:/guiv2/resources/guiv2/table.png); background-position: bottom center; background-origin: content; } - + QGroupBox { background-image: url(:/graphics/resources/graphics/toolboxFrameBG.png) } QGroupBox { background-image: url(:/graphics/resources/graphics/toolboxFrameBG.png) } - + Hands Комбинации - + Chat Чат - + Speed: Скорость: - + Stop Стоп - + Log Журнал - + View Вид - + Game Игра - + Start Local Game ... Начать локальную игру ... - + Ctrl+N Ctrl+N - + Quit Выход - + Ctrl+Q Ctrl+Q - + About PokerTH ... О программе PokerTH ... - + Settings ... Наcтройки ... - + Create Network Game ... Создать сетевую игру ... - + Join Network Game ... Присоединиться к сетевой игре ... - + Fullscreen Полноэкранный режим - + ⌘F ⌘F - + Show/Hide Chat Window Показать/Скрыть окно чата - + ⌘C ⌘C - + ⌘H ⌘H - + Show/Hide Log Window Показать/Скрыть окно журнала сообщений - + ⌘L ⌘L - + Show/Hide Hands Window Показать/Скрыть окно комбинаций - + Ctrl+O Ctrl+O - + Ctrl+J Ctrl+J - + Ctrl+F Ctrl+F - + Ctrl+T Ctrl+T - + Ctrl+H Ctrl+H - + Ctrl+L Ctrl+L - + PokerTH 0.6 - The Open-Source Texas Holdem Engine PokerTH 0.6 - Покер Texas Holdem c открытым кодом - + Network Game Сетевая игра - + Internet Game ... Игра в Интернете ... - + Ctrl+I Ctrl+I - + All In Ва-банк - + Away Режим отсутствия - + Manual Action (default) Самостоятельная игра (по умолчанию) - + Auto-Check / Auto-Fold Автопропуск / Автосброс - + Auto-Check / Auto-Call-Any Автопропуск / Автоответ - + PokerTH 0.6-beta - The Open-Source Texas Holdem Engine PokerTH 0.6-beta - Покер Texas Holdem c открытым кодом - + Back to lobby Вернуться в общую комнату - + Show/Hide Away Window Показать/Скрыть окно "Режим отсутствия" - + Ctrl+A Ctrl+A - mainWindowImpl + gameTableImpl - + Stop Стоп - + Cmd+N to start a new game Ctrl+N для старта новой игры - + Ctrl+N to start a new game Ctrl+N для старта новой игры - + F1 - Fold/All-In | F2 - Check/Call | F3 - Bet/Raise F1 - Сбросить/Ва-банк | F2 - Пропуск/Ответить | F3 - Ставка/Повысить - + Start Старт - + Network Error Сетевая ошибка - + Server address was not set. Не установлен адрес сервера. - + An invalid port was set (ports 0-1023 are not allowed). Указан неверный порт (диапазон 0-1023 не допускается). - + Could not create a socket for TCP communication. Не могу создать сокет для TCP-соединения. - + Could not set the IP address. Не могу определить IP адрес. - + Could not set the port for this type of address. Не могу установить порт для этого типа адреса. - + The server name could not be resolved. Не могу определить имя сервера. - + Bind failed - please choose a different port. Подключение на порт не удалось - выберите другой порт. - + Internal network error: "listen" failed. Внутренняя сетевая ошибка: неудачная команда "listen". - + Server execution was terminated. Работа сервера была прервана. - + Could not connect to the server. Не могу соединиться с сервером. - + Connection timed out. Please check the server address. @@ -1597,312 +1597,312 @@ If the server is behind a NAT-Router, make sure port forwarding has been set up Если сервер находится за NAT-маршрутизатором, удостоверьтесь, что обращение к порту сервера разрешено. - + Internal network error: "select" failed. Внутренняя сетевая ошибка: неудачная команда "select". - + Internal network error: "send" failed. Внутренняя сетевая ошибка: неудачная команда"send". - + Connection was closed by the server. Соединение было закрыто сервером. - + Internal network error: Duplicate TCP connection. Внутренняя сетевая ошибка: двойное TCP-соединение. - + An invalid network packet was received. Please make sure that all players use the same version of PokerTH. Принят неверный сетевой пакет. Убедитесь, что все игроки используют одинаковую версию PokerTH. - + Internal state error. Please make sure that all players use the same version of PokerTH. Внутренняя ошибка состояния. Убедитесь, что все игроки используют одинаковую версию PokerTH. - + The PokerTH server does not support this version of the game. Please update PokerTH. Сервер PokerTH не поддерживает эту версию игры. Обновите PokerTH. - + Sorry, this server is already full. Извините, сервер уже занят. - + Unable to join - the server has already started the game. Подключение невозможно - сервер уже начал игру. - + Invalid password when joining the game. Please reenter the password and try again. Неверный пароль при подключении. Введите пароль заново и подключитесь снова. - + The password is too long. Please choose another one. Слишком длинный пароль. Выберите другой. - + Your player name is already used by another player. Please choose a different name. Ваше игровое имя уже используется другим игроком. Выберите другое имя. - + The player name is either too short or too long. Please choose another one. Имя игрока слишком длинное или слишком короткое. Выберите другое имя. - + The server referred to an unknown player. Aborting. Сервер обращается к неизвестному игроку. Останов. - + You were kicked from the server. Вы были отключены от сервера. - + The client player count is invalid. Неверное количество клиентов сервера. - + An internal error occured. Произошла внутренняя ошибка. - + The player name is too short, too long or reserved. Please choose another one. Имя игрока слишком длинное, слишком короткое или уже занято. Выберите другое имя. - + The game name is either too short or too long. Please choose another one. Название игры слишком длинное или слишком короткое. Выберите другое название. - + The game could not be found. Игра не найдена. - + The chat text is invalid. Тескт чата неверный. - + Network Notification Уведомление по сети - + You were kicked from the game. Вы были отключены от игры. - + Sorry, this game is already full. Извините, все места в игре уже заняты. - + F1 - Bet/Raise | F2 - Check/Call | F3 - Fold/All-In F1 - Ставка/Повысить | F2 - Пропуск/Ответить | F3 - Сбросить/Ва-банк - + Chat Чат - + Manual mode set. You've got to choose yourself now. Установлен ручной ружим. Вы играете самостоятельно. - + Auto mode set: Check or call any. Автоматический режим: всегда пропускать или отвечать. - + Auto mode set: Check or fold. Автоматический режим: всегда пропускать или сбрасывать. - + You cannot join Internet-Game-Lobby with "Human Player" as nickname. Please choose another one. Вы не можете войти в общую комнату Интернет-игры под именем "Human Player". Выберите другое имя. - + Internal error: The current player could not be found. Внутренняя ошибка: Текущий игрок не найден. - + Internal error: The current player is not active. Внутренняя ошибка: Текущий игрок не активен. - + Too many manual blinds were set. Please reconfigure the manual blinds. Слишком много самостоятельных ставок. Пересмотрите список ставок. - + An invalid avatar file was configured. Please choose a different avatar. Указан неверный файл аватары. Задайте другую аватару. - + The selected avatar file is too large. Please choose a different avatar. Выбранный файл аватары слишком большой. Задайте другую аватару. - + The server requested a non-existing avatar. Сервер запросил несуществующую аватару. - + Could not start game: Synchronization failed. Не могу начать игру: нарушена синхронизация. - + F1 - Fold | F2 - Check/Call | F3 - Bet/Raise | F4 - All-In F1 - Сбросить | F2 - Пропуск/Ответить | F3 - Ставка/Повысить | F4 - Ва-банк - + F1 - All-In | F2 - Bet/Raise | F3 - Check/Call | F4 - Fold F1 - Ва-банк | F2 - Ставка/Повысить | F3 - Пропуск/Ответить | F4 - Сбросить - + The PokerTH server does not support this version of the game. Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> and download the latest version. Сервер PokerTH не поддерживает эту версию игры. Зайдите на <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> и скачайте самую новую версию. - + The player name is too short, too long or invalid. Please choose another one. Имя игрока слишком длинное, слишком короткое или неправильное. Выберите другое имя. - + The server is down for maintenance. Please try again later. Сервер находится на техобслуживании. Попробуйте позже. - + A new release of PokerTH is available. Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> and download the latest version. Вышла новая версия PokerTH. Зайдите на <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> и скачайте самую новую версию. - + This beta release of PokerTH is outdated. Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> and download the latest version. Эта бета-версия PokerTH устарела. Зайдите на <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> и скачайте самую новую версию. - + Closing PokerTH during network game Закрытие PokerTH во время сетевой игры - + You are the hosting server. Do you want to close PokerTH anyway? Вы являетесь сервером игры. Вы точно хотите закрыть PokerTH? - + The PokerTH server does not support this version of the game.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. Сервер PokerTH не поддерживает эту версию игры.<br>Зайдите на <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> и скачайте самую свежую версию. - + A new release of PokerTH is available.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. Вышла новая версия PokerTH.<br>Зайдите на <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> и скачайте самую свежую версию. - + This beta release of PokerTH is outdated.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. Эта бета-версия PokerTH устарела.<br>Зайдите на <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> и скачайте самую свежую версию. - + PokerTH %1 - The Open-Source Texas Holdem Engine PokerTH %1 - Движок покера Texas Holdem c открытым кодом - + Lobby Общая комната - + An internal avatar error occured. Please report this to an admin in the lobby chat. Произошла ошибка при обработке аватары. Пожалуйста, сообщите об этом администратору в общей комнате. - + PokerTH - Internet Game Message PokerTH - Сообщение Игры в Интернете - + Attention! Do you really want to leave the current game and go back to the lobby? Внимание! Вы действительно хотите покинуть текущую игру и вернуться в общую комнату? - + You were temporarily banned from the server. - + Your server connection timed out due to inactivity. You are very welcome to reconnect! - + You cannot upload a new avatar file at this time. Please try again in a few seconds. - + Your admin state timed out due to inactivity. Feel free to create a new game! diff --git a/ts/pokerth_sk.ts b/ts/pokerth_sk.ts index 24872c56..6eb6e0ce 100644 --- a/ts/pokerth_sk.ts +++ b/ts/pokerth_sk.ts @@ -4,12 +4,12 @@ Chat - + You cannot kick yourself! Nemôžete vykopnúť sám seba! - + You cannot kick any player - You are not game admin! Nemôžete vykopnúť žiadneho hráča - Nie ste administrátorom! @@ -80,7 +80,7 @@ MyAvatarLabel - + Vote for kick this user Hlasovať za vykopnutie tohto užívateľa @@ -1263,7 +1263,7 @@ Prajete si ho prepísať? - mainWindow + gameTable PokerTH 0.5 - The Open-Source Texas Holdem Engine @@ -1280,22 +1280,22 @@ Prajete si ho prepísať? QGroupBox { background-image: url(:/graphics/resources/graphics/toolboxFrameBG.png) } - + Hands Rozdania - + Chat Chat - + Log Záznam - + Speed: Rýchlosť: @@ -1305,57 +1305,57 @@ Prajete si ho prepísať? Zastaviť - + View Pohľad - + Game Hra - + Start Local Game ... Spustiť lokálnu hru... - + Ctrl+N Ctrl+N - + Quit Ukončiť - + Ctrl+Q Ctrl+Q - + About PokerTH ... O PokerTH... - + Settings ... Nastavenia... - + Create Network Game ... Vytvoriť sieťovú hru... - + Join Network Game ... Pripojiť sa k sieťovej hre... - + Fullscreen Celá obrazovka @@ -1365,7 +1365,7 @@ Prajete si ho prepísať? ⌘F - + Show/Hide Chat Window Zobraziť/skryť okno chatu @@ -1380,7 +1380,7 @@ Prajete si ho prepísať? ⌘H - + Show/Hide Log Window Zobraziť/skryť okno s logmi @@ -1390,37 +1390,37 @@ Prajete si ho prepísať? ⌘L - + Show/Hide Hands Window Zobraziť/skryť okno rozdaní - + Ctrl+O Ctrl+O - + Ctrl+J Ctrl+J - + Ctrl+F Ctrl+F - + Ctrl+T Ctrl+T - + Ctrl+H Ctrl+H - + Ctrl+L Ctrl+L @@ -1430,17 +1430,17 @@ Prajete si ho prepísať? PokerTH 0.6 - Open-Source Texas Holdem Engine - + Network Game Sieťová hra - + Internet Game ... Internetová hra... - + Ctrl+I Ctrl+I @@ -1450,55 +1450,55 @@ Prajete si ho prepísať? Vsadiť všetko - + Away Preč - + Manual Action (default) Manuálna akcia (východzie) - + Auto-Check / Auto-Fold Auto-Ok / Auto-Zložiť - + Auto-Check / Auto-Call-Any Auto-Ok / Auto-Dorovnať-čokoľvek - + PokerTH 0.6-beta - The Open-Source Texas Holdem Engine PokerTH 0.6-beta - Open-source Engine pre Texas Holdem - + Show/Hide Away Window Zobraziť/skryť okno neprítomnosti - + Ctrl+A Ctrl+A - mainWindowImpl + gameTableImpl - + Stop Zastaviť - + Cmd+N to start a new game Cmd+N pre spustenie novej hry - + Ctrl+N to start a new game Ctrl+N pre spustenie novej hry @@ -1508,67 +1508,67 @@ Prajete si ho prepísať? F1 - Zložiť karty/Vsadiť všetko | F2 - Zdržať sa/Dorovnať | F3 - Stávka/Zvýšiť - + Start Štart - + Network Error Chyba siete - + Server address was not set. Adresa servera nebola nastavená. - + An invalid port was set (ports 0-1023 are not allowed). Bol nastavený neplatný port (nie sú povolené porty 0-1023). - + Could not create a socket for TCP communication. Nepodarilo sa vytvoriť socket pre komunikáciu TCP. - + Could not set the IP address. Nepodarilo sa nastaviť IP adresu. - + Could not set the port for this type of address. Nepodarilo sa nastaviť port pre tento typ adresy. - + The server name could not be resolved. Meno servera sa nepodarilo resolvnúť. - + Bind failed - please choose a different port. Bind zlyhal - prosím, vyberte iný port. - + Internal network error: "listen" failed. Interná chyba siete: "listen" zlyhalo. - + Server execution was terminated. Spustenie servera bolo zrušené. - + Could not connect to the server. Nepodarilo sa pripojiť k serveru. - + Connection timed out. Please check the server address. @@ -1579,34 +1579,34 @@ Prosím, skontrolujte adresu serveru. Ak je server za NAT routrom, ubezpečte sa, že je na strane servera zapnuté presmerovanie portov (port forwarding). - + Internal network error: "select" failed. Interná chyba siete: "select" zlyhalo. - + Internal network error: "send" failed. Interná chyba siete: "send" zlyhalo. - + Connection was closed by the server. Spojenie bolo uzatvorené serverom. - + Internal network error: Duplicate TCP connection. Interná chyba siete: Duplikované TCP spojenie. - + An invalid network packet was received. Please make sure that all players use the same version of PokerTH. Bol prijatý neplatný sieťový paket. Prosím, uistite sa, že všetci hráči používajú rovnakú verziu PokerTH. - + Internal state error. Please make sure that all players use the same version of PokerTH. Chyba interného stavu. @@ -1620,29 +1620,29 @@ Please update PokerTH. Prosím, aktualizujte PokerTH. - + Sorry, this server is already full. Ľutujem, tento server je už plný. - + Unable to join - the server has already started the game. Nepodarilo sa pripojiť k hre - na serveri už začala hra. - + Invalid password when joining the game. Please reenter the password and try again. Neplatné heslo pri pripájaní sa k hre. Prosím, skúste to znovu. - + The password is too long. Please choose another one. Heslo je príliš dlhé. Prosím, zvoľte si iné heslo. - + Your player name is already used by another player. Please choose a different name. Vaše meno hráča už používa niekto iný. @@ -1654,104 +1654,104 @@ Prosím, vyberte si iné meno. Meno hráča je buď príliš krátke alebo príliš dlhé. Prosím, vyberte si iné. - + The server referred to an unknown player. Aborting. Server sa odvolal na neznámeho hráča. Ukončujem. - + You were kicked from the server. Boli ste vykopnutý zo serveru. - + The client player count is invalid. Počet hráčov klienta je neplatný. - + An internal error occured. Nastala interná chyba. - + The game name is either too short or too long. Please choose another one. Názov hry je buď príliš krátky alebo príliš dlhý. Prosím zvoľte iný názov. - + The game could not be found. Hru sa nepodarilo nájsť. - + The chat text is invalid. Text chatu je neplatný. - + Network Notification Sieťová notifikácia - + You were kicked from the game. Boli ste vykopnutý z hry. - + Sorry, this game is already full. Ľutujem, táto hra je už plná. - + Chat Chat - + Manual mode set. You've got to choose yourself now. Nastavený manuálny režim. Teraz si musíte vybrať sám. - + Auto mode set: Check or call any. Nastavený automatický režim: ísť ďalej alebo ľubovoľne zvýšiť. - + Auto mode set: Check or fold. Nastavený automatický režim: ísť ďalej alebo zložiť. - + You cannot join Internet-Game-Lobby with "Human Player" as nickname. Please choose another one. Nemôžete sa pripojiť k internetovej hre lobby s prezývkou "Human Player". Prosím vyberte si inú prezývku. - + Internal error: The current player could not be found. Interná chyba: Nepodarilo sa nájsť aktuálneho hráča. - + Internal error: The current player is not active. Interná chyba: Aktuálny hráč nie je aktívny. - + Too many manual blinds were set. Please reconfigure the manual blinds. Bolo nastavených priliš veľa manuálnych stávok. Prosím upravte nastavenia manuálnych stávok. - + An invalid avatar file was configured. Please choose a different avatar. Bol nastavený neplatný súbor s avatarom. Prosím vyberte iného avatara. - + The selected avatar file is too large. Please choose a different avatar. Vybraný súbor s avatarom je príliš veľký. Prosím vyberte iného avatara. @@ -1761,17 +1761,17 @@ Prosím vyberte si inú prezývku. Server si vypýtal neexistujúceho avatara. - + Could not start game: Synchronization failed. Nepodarilo sa spustiť hru: Zlyhala synchronizácia. - + F1 - Fold | F2 - Check/Call | F3 - Bet/Raise | F4 - All-In F1 - Zložiť | F2 - Ok/Dorovnať | F3 - Staviť/Zvýšiť | F4 - Vsadiť všetko - + F1 - All-In | F2 - Bet/Raise | F3 - Check/Call | F4 - Fold F1 - Vsadiť všetko | F2 - Staviť/Zvýšiť | F3 - Ok/Dorovnať | F4 - Dorovnať @@ -1783,12 +1783,12 @@ Please go to <a href="http://www.pokerth.net/" target="_blank& Prosím navštívte <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> a stiahnite najnovšiu verziu. - + The player name is too short, too long or invalid. Please choose another one. Meno hráča je príliš krátke, príliš dlhé alebo neplatné. Prosím vyberte iné. - + The server is down for maintenance. Please try again later. Server je mimo prevádzky kvôli údržbe. Prosím skúste to neskôr. @@ -1807,74 +1807,74 @@ Please go to <a href="http://www.pokerth.net/" target="_blank& Prosím navštívte <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> a stiahnite najnovšiu verziu. - + Closing PokerTH during network game Zatváram PokerTH počas sieťovej hry - + You are the hosting server. Do you want to close PokerTH anyway? Vy ste hosťujúci server. Chcete ukončiť PokerTH i napriek tomu? - + The PokerTH server does not support this version of the game.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. PokerTH server nepodporuje túto verziu hry.<br>Prosím navštívte <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> a stiahnite najnovšiu verziu. - + A new release of PokerTH is available.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. Je dostupné nové vydanie PokerTH.<br>Prosím navštívte <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> a stiahnite si najnovšiu verziu. - + This beta release of PokerTH is outdated.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. Táto betaverzia PokerTH je zastaralá.<br>Prosím navštívte <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> a stiahnite si najnovšiu verziu. - + PokerTH %1 - The Open-Source Texas Holdem Engine PokerTH %1 - Open-Source Texas Holdem Engine - + Lobby Lobby - + An internal avatar error occured. Please report this to an admin in the lobby chat. Došlo k internej chybe avatara. Prosím nahláste ju adminovi v lobby chate. - + PokerTH - Internet Game Message PokerTH - Správa hry na internete - + Attention! Do you really want to leave the current game and go back to the lobby? Upozornenie! Určite chcete opustiť momentálnu hru a vrátiť sa späť do lobby? - + You were temporarily banned from the server. Boli ste dočasne zablokovaný na serveri. - + Your server connection timed out due to inactivity. You are very welcome to reconnect! Vaše pripojenie k serveru vypršalo z dôvodu neaaktivity. Stačí sa len znovu pripojiť! - + You cannot upload a new avatar file at this time. Please try again in a few seconds. Teraz nemôžete uploadovať nový súbor s avatarom. Skúste to, prosím, o niekoľko sekúnd. - + Your admin state timed out due to inactivity. Feel free to create a new game! Vaše administrátorský stav vypršal z dôvodu neaktivity. Kedykoľvek môžete vytvoriť novú hru! diff --git a/ts/pokerth_sv.ts b/ts/pokerth_sv.ts index f6f6d32d..33778e22 100644 --- a/ts/pokerth_sv.ts +++ b/ts/pokerth_sv.ts @@ -3,12 +3,12 @@ Chat - + You cannot kick yourself! Du kan inte kicka dig själv! - + You cannot kick any player - You are not game admin! Du kan inte kicka någon - Du är inte administratör! @@ -69,7 +69,7 @@ MyAvatarLabel - + Vote for kick this user @@ -892,284 +892,284 @@ Vill du skriva över den? - mainWindow + gameTable - + PokerTH 0.6-beta - The Open-Source Texas Holdem Engine PokerTH 0.6-beta - Den öppna pokermotorn för Texas Hold'em - + Hands Kombinationer - + Chat Chatt - + Log Logg - + Away Frånvarande - + Manual Action (default) Manuell handling (förval) - + Auto-Check / Auto-Fold Automatiskt Passa / Lägga sig - + Auto-Check / Auto-Call-Any Automatiskt Passa / Syna Allt - + Speed: Hastighet: - + View Visa - + Game Arkiv - + Network Game Nätverksspel - + Start Local Game ... Starta lokalt spel - + Ctrl+N Ctrl+N - + Quit Avsluta - + Ctrl+Q Ctrl+Q - + About PokerTH ... Om PokerTH - + Settings ... Inställningar - + Create Network Game ... Skapa nätverks-spel - + Ctrl+O Ctrl+O - + Join Network Game ... Anslut till nätverks-spel - + Ctrl+J Ctrl+J - + Fullscreen Helskärm - + Ctrl+F Ctrl+F - + Show/Hide Chat Window Visa/Göm chatten - + Ctrl+T Ctrl+T - + Show/Hide Hands Window Visa/Göm kombinationer - + Ctrl+H Ctrl+H - + Show/Hide Log Window Visa/Göm loggen - + Ctrl+L Ctrl+L - + Internet Game ... Internetspel - + Ctrl+I Ctrl+I - + Show/Hide Away Window Visa/Göm Frånvaro-fönstret - + Ctrl+A Ctrl+A - mainWindowImpl + gameTableImpl - + Stop Sluta - + Cmd+N to start a new game Cmd+N för att starta ett nytt spel - + Ctrl+N to start a new game Ctrl+N för att starta ett nytt spel - + PokerTH %1 - The Open-Source Texas Holdem Engine PokerTH %1 - Den öppna pokermotorn för Texas Hold'em - + You cannot join Internet-Game-Lobby with "Human Player" as nickname. Please choose another one. Du kan inte delta i Internetsepl med namnet "Human Player". Välj ett nytt namn. - + F1 - Fold | F2 - Check/Call | F3 - Bet/Raise | F4 - All-In F1 - Lägg | F2 - Pass/Syn | F3 - Satsa/Höj | F4 - "All in" (Satsa allt) - + F1 - All-In | F2 - Bet/Raise | F3 - Check/Call | F4 - Fold F1 - "All in" (Satsa allt) | F2 - Satsa/Höj | F3 - Pass/Syn | F4 - Lägg - + Start Starta - + Lobby Lobby - + Network Error Nätverksfel - + Server address was not set. Ingen server-adress angiven - + An invalid port was set (ports 0-1023 are not allowed). En ogiltig port var angiven (port 0-1023 är ogiltig). - + Could not create a socket for TCP communication. Kunde inte etablera TCP-kommunikation. - + Could not set the IP address. Kunde inte bestämma IP-adress. - + Could not set the port for this type of address. Kunde inte ställa in porten för den här typen av adress. - + The server name could not be resolved. Kunde inte koppla servernamnet till en IP-adress. - + Bind failed - please choose a different port. Uppkoppling misslyckades, vänligen välj en annan port. - + Internal network error: "listen" failed. Internt nätverksfel: "listen" misslyckades. - + Server execution was terminated. Servern avslutade oväntat. - + Could not connect to the server. Kunde inte ansluta till servern. - + Connection timed out. Please check the server address. @@ -1180,237 +1180,237 @@ Vänligen kontrollera serveradressen. Om servern befinner sig bakom en NAT-router, försäkra dig om att serverns portar har blivit korrekt inställda. - + Internal network error: "select" failed. Internt nätverksfel: "select" misslyckades. - + Internal network error: "send" failed. Internt nätverksfel: "send" misslyckades. - + Connection was closed by the server. Anslutningen avbröts av servern. - + Internal network error: Duplicate TCP connection. Internt nätverksfel: Duplicerad TCP-anslutning. - + An invalid network packet was received. Please make sure that all players use the same version of PokerTH. Ett ogiltigt nätverkspaket har mottagits. Försäkra dig om att alla spelare använder samma version av PokerTH. - + Internal state error. Please make sure that all players use the same version of PokerTH. Internt programfel. Försäkra dig om att alla spelare använder samma version av PokerTH. - + The PokerTH server does not support this version of the game.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. PokerTH servern stöder inte den här versionen av spelet.<br>Vänligen gå till <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> och ladda ner den senaste versionen. - + Sorry, this server is already full. Tyvärr, den här servern är fullsatt. - + Invalid password when joining the game. Please reenter the password and try again. Ogiltigt lösenord för det här partiet. Vänligen ange det korrekta lösenordet. - + The password is too long. Please choose another one. Lösenordet är för långt. Vänligen välj ett nytt lösenord. - + Your player name is already used by another player. Please choose a different name. Ditt spelarnamn används redan av en annan spelare. Vänligen välj ett nytt namn. - + The player name is too short, too long or invalid. Please choose another one. Ditt angivna namn är för kort/långt eller ogiltigt. Vänligen välj ett nytt namn. - + The game name is either too short or too long. Please choose another one. Namnet på partiet är antingen för kort eller för långt. Vänligen ange ett nytt namn. - + The game could not be found. Partiet kunde inte hittas. - + The chat text is invalid. Chatt-texten är ogiltig. - + The server referred to an unknown player. Aborting. Servern hänvisade till en okänd spelare. Avbryter. - + Internal error: The current player could not be found. Internt fel: Den aktuella spelaren kunde inte hittas. - + Internal error: The current player is not active. Internt fel: Den aktuella spelaren är inte aktiv. - + You were kicked from the server. Du slängdes ut från servern. - + The client player count is invalid. Antalet klienter är ogiltigt. - + Too many manual blinds were set. Please reconfigure the manual blinds. För många manuella mörkar angivna. Vänligen ställ in mörkarna på nytt. - + An invalid avatar file was configured. Please choose a different avatar. En ogiltig avatar var angiven. Vänligen välj en annan avatar. - + The selected avatar file is too large. Please choose a different avatar. Filstorleken på den valda avataren är för stor. Välj en annan avatar. - + An internal avatar error occured. Please report this to an admin in the lobby chat. Ett internt avatarfel uppstod. Var vänlig och rapportera detta till en admin i lobbyn. - + Could not start game: Synchronization failed. Kunde inte starta spelet: Synkroniseringen misslyckades. - + The server is down for maintenance. Please try again later. Servern är nere för underhåll, vänligen försök senare. - + An internal error occured. Ett internt fel har inträffat. - + Network Notification Nätverksmeddelande - + You were kicked from the game. Du slängdes ut från spelet. - + Sorry, this game is already full. Tyvärr, det här spelet är fullsatt. - + Unable to join - the server has already started the game. Kan inte ansluta - servern har redan påbörjat spelet. - + A new release of PokerTH is available.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. En ny version av PokerTH är tillgänglig. <br>Vänligen gå till <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> och ladda ner den senaste versionen. - + This beta release of PokerTH is outdated.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. Den här betaversionen av PokerTH är för gammal. <br>Vänligen gå till <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> och ladda ner den senaste versionen. - + Manual mode set. You've got to choose yourself now. Manuellt läge valt. Du måste själv agera nu. - + Auto mode set: Check or call any. Automatiskt läge valt: Pass eller Syna allt. - + Auto mode set: Check or fold. Automatiskt läge valt: Pass eller Lägg. - + Chat Chatt - + Closing PokerTH during network game Stänger PokerTH under nätverksspel - + You are the hosting server. Do you want to close PokerTH anyway? Du är värdserver för spelet, vill du stänga ner i alla fall? - + PokerTH - Internet Game Message PokerTH - Internetspels-meddelande - + Attention! Do you really want to leave the current game and go back to the lobby? OBS! Vill du verkligen lämna det nuvarande spelet och återvända till lobbyn? - + You were temporarily banned from the server. - + Your server connection timed out due to inactivity. You are very welcome to reconnect! - + You cannot upload a new avatar file at this time. Please try again in a few seconds. - + Your admin state timed out due to inactivity. Feel free to create a new game! diff --git a/ts/pokerth_tr.ts b/ts/pokerth_tr.ts index 5aae4c68..96c86ab9 100644 --- a/ts/pokerth_tr.ts +++ b/ts/pokerth_tr.ts @@ -3,12 +3,12 @@ Chat - + You cannot kick yourself! Kendinizi tekmeleyemezsiniz! - + You cannot kick any player - You are not game admin! Kimseyi tekmeleyemezsiniz - Oyunun yöneticisi değilsiniz! @@ -79,7 +79,7 @@ MyAvatarLabel - + Vote for kick this user @@ -1231,7 +1231,7 @@ Would you like to overwrite ? - mainWindow + gameTable QMainWindow { background-image: url(:/guiv2/resources/guiv2/table.png); background-position: bottom center; background-origin: content; } @@ -1243,57 +1243,57 @@ Would you like to overwrite ? QGroupBox { background-image: url(:/graphics/resources/graphics/toolboxFrameBG.png) } - + Speed: Hız: - + Stop Dur - + View Görünüm - + Game Oyun - + Ctrl+N Ctrl+N - + Quit Çık - + About PokerTH ... PokerTH Hakkında... - + Settings ... Ayarlar... - + Create Network Game ... Ağ Oyunu Oluştur... - + Join Network Game ... Ağ Oyununa Katıl... - + Fullscreen Tam Ekran @@ -1303,27 +1303,27 @@ Would you like to overwrite ? F - + Hands Eller - + Chat Sohbet - + Log Günlük - + Start Local Game ... Yerel Oyun Başlat... - + Ctrl+Q Ctrl+Q @@ -1338,62 +1338,62 @@ Would you like to overwrite ? PokerTH 0.5 - Açık-Kaynak Texas Holdem Motoru {0.6 ?} - + Network Game Ağ Oyunu - + Ctrl+O Ctrl+O - + Ctrl+J Ctrl+J - + Ctrl+F Ctrl+F - + Show/Hide Chat Window Söyleşi Penceresini Göster/Gizle - + Ctrl+T Ctrl+T - + Show/Hide Hands Window El Penceresini Göster/Gizle - + Ctrl+H Ctrl+H - + Show/Hide Log Window Günlük Penceresini Göster/Gizle - + Ctrl+L Ctrl+L - + Internet Game ... İnternet Oyunu ... - + Ctrl+I Ctrl+I @@ -1403,50 +1403,50 @@ Would you like to overwrite ? Hepsi İçinde - + Away Uzak - + Manual Action (default) El İle Hamle (ön tanımlı) - + Auto-Check / Auto-Fold Oto-Denetim / Oto-Katla - + Auto-Check / Auto-Call-Any Oto-Denetim / Oto-Çağrı-Herhangi bir - + PokerTH 0.6-beta - The Open-Source Texas Holdem Engine PokerTH 0.6-beta - Açık-Kaynak Texas Holdem Motoru - + Show/Hide Away Window Uzakta penceresini Göster/Gizle - + Ctrl+A Ctrl+A - mainWindowImpl + gameTableImpl - + Cmd+N to start a new game Yeni bir oyun başlatmak için Cmd+N - + Ctrl+N to start a new game Yeni bir oyun başlatmak için Cmd+N @@ -1456,94 +1456,94 @@ Would you like to overwrite ? F1 - Katla/Hepsini | F2 - Denetle/Çağır | F3 - Bahis/Yükselt - + Start Başlat - + Stop Dur - + Network Error Ağ Hatası - + Server address was not set. Sunucu adresi belirtilmedi. - + An invalid port was set (ports 0-1023 are not allowed). Geçersiz bağlantı noktası belirtilmiş (0-1023 arasındaki bağlantı noktaları kullanılamaz). - + Could not create a socket for TCP communication. TCP iletişimi için bir yuva oluşturulamadı. - + Could not set the IP address. IP adresi ayarlanamadı. - + Could not set the port for this type of address. Bu çeşit bir adres için bağlantı noktası ayarlanamadı. - + The server name could not be resolved. Sunucu ismi çözümlenemedi. - + Bind failed - please choose a different port. Bağlama başarısız - lütfen farklı bir bağlantı noktası seçin. - + Internal network error: "listen" failed. Dahili ağ hatası - "dinleme" başarısız. - + Server execution was terminated. Sunucu işletimi sonlandırıldı. - + Could not connect to the server. Sunucuya bağlanılamadı. - + Internal network error: "select" failed. Dahili ağ hatası - "seçim" başarısız. - + Internal network error: "send" failed. Dahili ağ hatası - "gönder" başarısız. - + Internal network error: Duplicate TCP connection. Dahili ağ hatası: TCP bağlantısını çoğaltın. - + An invalid network packet was received. Please make sure that all players use the same version of PokerTH. Geçersiz bir ağ paketi alındı. Lütfen bütün oyuncuların PokerTH ın aynı sürümünü kullandığından emin olun. - + Internal state error. Please make sure that all players use the same version of PokerTH. Dahili durum hatası. @@ -1557,29 +1557,29 @@ Please update PokerTH. Lütfen PokerTH ınızı güncelleyin. - + Sorry, this server is already full. Üzgünüm, bu sunucu dolu. - + Unable to join - the server has already started the game. Girilemiyor - sunucu zaten oyuna başladı. - + Invalid password when joining the game. Please reenter the password and try again. Oyuna girişte geçersiz parola. Lütfen parolanızı girin ve yeniden deneyin. - + The password is too long. Please choose another one. Parola çok uzun. Lütfen başka bir tane deneyin. - + Your player name is already used by another player. Please choose a different name. Oyuncu isminiz başka bir oyuncu tarafından kullanılıyor. @@ -1591,12 +1591,12 @@ Lütfen farklı bir isim seçiniz. Oyuncu ismi çok uzun veya çok kısa. Lütfen farklı bir isim seçiniz. - + An internal error occured. Dahili bir hata oluştu. - + Connection timed out. Please check the server address. @@ -1607,124 +1607,124 @@ Lütfen sunucu adresini kontrol ediniz. Eğer sunucu bir NAT-Router arkasındaysa, sunucu tarafındaki bağlantı noktası yönlendirmesinin ayarlandığından emin olunuz. - + Connection was closed by the server. Bağlantı, sunucu tarafından kapatıldı. - + The server referred to an unknown player. Aborting. Sunucu, bilinmeyen bir oyuncuya devredildi. Çıkılıyor. - + You were kicked from the server. Sunucu tarafından tekmelendiniz. - + The client player count is invalid. İstemci oyuncu sayısı yanlış. - + The game name is either too short or too long. Please choose another one. Oyun ismi ya çok uzun yada öok kısa. Lütfen başka birini seçiniz. - + The game could not be found. Oyun bulunamadı. - + The chat text is invalid. Söyleşi metni geçersiz. - + Network Notification Ağ Bildirimi - + You were kicked from the game. Oyundan atıldınız. - + Sorry, this game is already full. Üzgünüm, oyun zaten dolu. - + Manual mode set. You've got to choose yourself now. El ile kipi ayarlı. Şimdi kendiniz seçmelisiniz. - + Auto mode set: Check or call any. Oto kip ayarlı: Denetleyin veya herhangi birini çağırın. - + Auto mode set: Check or fold. Oto kip ayarlı: denetleyin veya katlayın. - + Chat Sohbet - + You cannot join Internet-Game-Lobby with "Human Player" as nickname. Please choose another one. "Human Player" sahte ismi ile internet-oyun-lobisine giremezsiniz. Lütfen başka bir tane seçiniz. - + Internal error: The current player could not be found. Dahili hata: Bu oyuncu bulunamadı. - + Internal error: The current player is not active. Dahili Hata: Bu oyuncu aktif değil. - + Too many manual blinds were set. Please reconfigure the manual blinds. Çok fazla elle teklif ayarlı. Lütfen elle teklifleri eniden yapılandırınız. - + An invalid avatar file was configured. Please choose a different avatar. Geçersiz bir avatar dosyası yapılandırıldı. Lütfen farklı bir avatar seçiniz. - + The selected avatar file is too large. Please choose a different avatar. Seçili avatar dosyası çok büyük. Lütfen farklı bir avatar seçiniz. - + The server requested a non-existing avatar. Sunucu, mevcut olmayan bir avatar isteği aldı. - + Could not start game: Synchronization failed. Oyun başlatılamadı: Eş zamalama yapılamadı. - + F1 - Fold | F2 - Check/Call | F3 - Bet/Raise | F4 - All-In F1 - Katla | F2 - Denetle/Çağır | F3 - Bahis/Yükselt | F4 - Heps içinde - + F1 - All-In | F2 - Bet/Raise | F3 - Check/Call | F4 - Fold F1 - Hepsi içinde | F2 - Bahis/Yükselt | F3 - Denetle/Çağır | F4 - Katla @@ -1736,12 +1736,12 @@ Please go to <a href="http://www.pokerth.net/" target="_blank& Lütfen <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> adresinden son sürümü indirin. - + The player name is too short, too long or invalid. Please choose another one. Bu oyuncu ismi, çok kısa, çok uzun yahut geçersiz. Lütfen başka bir isim seçiniz. - + The server is down for maintenance. Please try again later. Sunucu bakım sebebiyle kapalı. Lütfen sonra tekrar deneyin. @@ -1760,74 +1760,74 @@ Please go to <a href="http://www.pokerth.net/" target="_blank& Lütfen <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> adresinden son sürümü indiriniz. - + Closing PokerTH during network game Ağ oyunu sırasında PokerTH kapatılıyor - + You are the hosting server. Do you want to close PokerTH anyway? Siz ana sunucusunuz. Yinede PokerTH programını kapatmak istiyor musunuz? - + The PokerTH server does not support this version of the game.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. PokerTH sunucu, oyunun bu sürümünü desteklemiyor.<br>Lütfen <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> adresinden son sürümü indirin. - + A new release of PokerTH is available.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. PokerTH ın yeni bir yayını hazır.<br>Lütfen <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> adresinden son sürümü indirin. - + This beta release of PokerTH is outdated.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. PokerTH ara sürümü artık geçersiz.<br>Lütfen <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net/<a/> adresinden son sürümü indiriniz. - + PokerTH %1 - The Open-Source Texas Holdem Engine PokerTH %1 - Açık-Kaynak Texas Holdem Motoru - + Lobby Kulis - + An internal avatar error occured. Please report this to an admin in the lobby chat. İçsel bir simge hatası algılandı. Lütfen bunu kulis söyleşisinde yöneticiye iletin. - + PokerTH - Internet Game Message PokerTH - Internet Oyunu Mesajı - + Attention! Do you really want to leave the current game and go back to the lobby? Dikkat! Bu oyunu gerçekten bırakmak ve lobiye dönmek istiyormusunuz? - + You were temporarily banned from the server. - + Your server connection timed out due to inactivity. You are very welcome to reconnect! - + You cannot upload a new avatar file at this time. Please try again in a few seconds. - + Your admin state timed out due to inactivity. Feel free to create a new game! diff --git a/ts/pokerth_zhcn.ts b/ts/pokerth_zhcn.ts index 63f547c5..76144261 100644 --- a/ts/pokerth_zhcn.ts +++ b/ts/pokerth_zhcn.ts @@ -1,2289 +1,2289 @@ - - - - - Chat - - - You cannot kick any player - You are not game admin! - 你不能将任何人踢出游戏:你并不是游戏的管理员! - - - - You cannot kick yourself! - 你不能将自己踢出游戏! - - - - LobbyChat - - - An internal IRC error has occured: - 发生内部IRC错误: - - - - An IRC action timed out. - IRC操作超时。 - - - - as user - 作为用户 - - - - Connecting to Chat server... - 连接到聊天服务器... - - - - Could not connect to the IRC server. Chat will be unavailable. - 不能连接到IRC服务器,聊天功能被禁用。 - - - - Joined channel: - 已加入频道: - - - - Successfully connected to - 成功连接至 - - - - The IRC server reported an error: - IRC服务器报告了一个错误: - - - - The IRC server terminated the connection. Chat will be unavailable. - IRC服务器终止了连接,聊天功能被禁用。 - - - - was kicked from the server by - 被踢出游戏,执行者为 - - - - MyAvatarLabel - - - Vote for kick this user - 投票踢出这个用户 - - - - aboutPokerth - - - - Poker engine for the popular "Texas Hold'em" Poker -- Singleplayer games with up to 6 computer-opponents -- Multiplayer network games -- Coded in C++/Qt4 - - -© 2006-2007, FHammer, FThauer, LMay - -为流行的“德州扑克”开发的扑克游戏引擎 --可与多至6人的电脑对手进行单人游戏 --多人网络游戏 --使用C++/Qt4编写 - - -© 2006-2007, FHammer, FThauer, LMay - - - - <a href="http://www.pokerth.net" target="_blank">http://www.pokerth.net<a> - <a href="http://www.pokerth.net" target="_blank">http://www.pokerth.net<a> - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">!!!Please replace this with your translator name!!! - !!!Please replace this with your language!!! - !!!If you like please replace this with your mail address (otherwise please remove)!!!</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">简体中文翻译:<a href="http://gordianz.com/">GordianZ</a></p></body></html> - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://commons.wikimedia.org/wiki/Main_Page"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">Wikimedia Commons</span></a></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"> - <span style=" font-weight:400;">for different popular avatar picture resources</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Viktoria, Benedikt, Erhard, Felix, Florian, Linus, Lothar, Mark, Steffi, Caro</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for people avatar pictures</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">ZeiZei</span> </p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for "misc" avatar pictures</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://kde-look.org/"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">http://kde-look.org/</span></a></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for different gpl lizensed sounds</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">doc_dos</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for self recorded chip sounds</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://commons.wikimedia.org/wiki/Main_Page"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">Wikimedia Commons</span></a></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"> - <span style=" font-weight:400;">提供了各种流行的头像图片资源</span></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Viktoria, Benedikt, Erhard, Felix, Florian, Linus, Lothar, Mark, Steffi, Caro</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - 提供了人物头像图片</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">ZeiZei</span> </p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - 提供“杂项”中的头像图片</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://kde-look.org/"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">http://kde-look.org/</span></a></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - 提供各种GPL授权的声音</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">doc_dos</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - 提供注码的声音</p></body></html> - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Projectpage: </span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://www.pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">http://www.pokerth.net</span></a></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">IRC: </span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> #pokerth (irc.freenode.net)</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Authors: </span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Felix Hammer (<a href="mailto:doitux@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">doitux@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - initial idea, basic architecture, gui implementation, linux package</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Florian Thauer (<a href="mailto:floty@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">floty@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - initial idea, basic architecture, engine development</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Lothar May (<a href="mailto:lotodore@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">lotodore@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - basic architecture, network development, windows package</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Oskar Lindqvist (<a href="mailto:tranberry@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">tranberry@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - gui graphics design, webdesign</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Erhard List (<a href="mailto:dunkanx@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">dunkanx@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - MacOS package</p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">项目页面:</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://www.pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">http://www.pokerth.net</span></a></p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">IRC: </span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> #pokerth (irc.freenode.net)</p> -<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Authors: </span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Felix Hammer (<a href="mailto:doitux@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">doitux@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - 初始创意,基本架构,用户界面实现,Linux打包</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Florian Thauer (<a href="mailto:floty@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">floty@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - 初始创意,基本架构,游戏引擎实现</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Lothar May (<a href="mailto:lotodore@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">lotodore@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - 基本架构,网络开发,Windows打包</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Oskar Lindqvist (<a href="mailto:tranberry@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">tranberry@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - 用户界面图形设计,网页设计</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Erhard List (<a href="mailto:dunkanx@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">dunkanx@pokerth.net</span></a>)</p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - MacOS打包</p></body></html> - - - - About - 关于 - - - - Close - 关闭 - - - - License - 许可 - - - - Project - 项目 - - - - Thanks to - 鸣谢 - - - - Translation - 翻译 - - - - aboutPokerthImpl - - - About PokerTH %1 - 关于PokerTH %1 - - - - PokerTH %1 - PokerTH %1 - - - - changeCompleteBlindsDialog - - - $ - $ - - - - Add - 添加 - - - - Afterwards: - 之后: - - - - Always double blinds - 总是将盲注翻倍 - - - - Always raise by: - 总是加注: - - - - Change Blinds Settings - 更改盲注设置 - - - - Delete - 删除 - - - - Every: - 每: - - - - First small blind: - 第一轮小盲注: - - - - hands - 成手 - - - - Keep last blind - 保持最后的盲注 - - - - Manual blinds order: - 手动盲注顺序: - - - - minutes - 分钟 - - - - Raise blinds: - 加盲注: - - - - Raise mode: - 加注模式: - - - - changeCompleteBlindsDialogImpl - - - Manual Blinds Order - 手动盲注顺序 - - - - You cannot set more than 30 manual blinds. - 你不能设置超过30个手动盲注。 - - - - changeHumanPlayerNameDialog - - - Name: - 名字: - - - - Network Error - 网络错误 - - - - connectToServerDialog - - - Cancel - 取消 - - - - Connect to Server - 连接到服务器 - - - - Connecting to Server ... - 正在连接到服务器... - - - - connectToServerDialogImpl - - - Connecting to server... - 正在连接到服务器... - - - - Connection established! - 连接已建立! - - - - Resolving address... - 正在解析地址... - - - - Starting session... - 正在建立会话... - - - - createInternetGameDialog - - - s - - - - - $ - $ - - - - Blinds - 盲注 - - - - Cancel - 取消 - - - - Change blinds settings ... - 更改盲注设置... - - - - Create Game - 创建游戏 - - - - Create Internet Game - 创建因特网游戏 - - - - Game Speed for computer opponents: - 电脑对手的游戏速度: - - - - Internet Game Settings - 因特网游戏设置 - - - - Maximum number of players: - 玩家数上限: - - - - Password: - 密码: - - - - Start Cash: - 入场金额: - - - - Timeout for player action: - 玩家操作超时: - - - - Use saved blinds settings - 使用已保存的盲注设置 - - - - createNetworkGameDialog - - - s - - - - - $ - $ - - - - Blinds - 盲注 - - - - Cancel - 取消 - - - - Change blinds settings ... - 更改盲注设置... - - - - Create Game - 创建游戏 - - - - Create Network Game - 创建网络游戏 - - - - Game Speed for computer opponents: - 电脑对手的游戏速度: - - - - Maximum number of players: - 玩家数上限: - - - - Network Game Settings - 网络游戏设置 - - - - Start Cash: - 入场金额: - - - - Timeout for player action: - 玩家操作超时: - - - - Use saved blinds settings - 使用已保存的盲注设置 - - - - gameLobbyDialog - - - Available Players - 在线的玩家 - - - - Blinds raise interval: - 盲注加注间隔: - - - - Blinds raise mode: - 盲注加注模式: - - - - Connected Players - 已连接的玩家 - - - - Create Game - 创建游戏 - - - - Fill up with computer opponents - 用电脑对手填补空额 - - - - First small blind: - 第一轮小盲注: - - - - Game - 游戏 - - - - Game Info - 游戏信息 - - - - Internet Game Lobby - 因特网游戏大厅 - - - - Join any game - 加入任何游戏 - - - - Join Game - 加入游戏 - - - - Kick Player - 踢出玩家 - - - - Leave Game - 离开游戏 - - - - Lobby-Chat - 大厅聊天 - - - - Manual blinds list: - 手动盲注列表: - - - - Maximum number of players: - 玩家数上限: - - - - Players - 玩家 - - - - Private - 私人 - - - - Start Cash: - 入场金额: - - - - Start Game - 开始游戏 - - - - State - 状态 - - - - Timeout for player action (sec): - 玩家操作超时: - - - - gameLobbyDialogImpl - - - %1's game - %1的游戏 - - - - connected players: %1 - 已连接的玩家:%1 - - - - double blinds - 双倍盲注 - - - - Game Info - 游戏信息 - - - - hands - 成手 - - - - Joining a private Game - 加入一个私人游戏 - - - - manual blinds order - 手动盲注顺序 - - - - minutes - 分钟 - - - - open - - - - - open games: %1 - 游戏开局:%1 - - - - players in chat: %1 - 聊天中的玩家:%1 - - - - running - 运行中 - - - - running games: %1 - 运行中的游戏:%1 - - - - Server Error - 服务器错误 - - - - Starting game. Please wait ... - 正在开始游戏,请稍候... - - - - You are about to join a private game. Please enter the password! - 你正在加入一个私人游戏。请输入密码! - - - - You should not kick yourself from this game! - 你无法将自己踢出游戏! - - - - joinNetworkGameDialog - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://en.wikipedia.org/wiki/Ipv6"><span style=" text-decoration: underline; color:#0000ff;">What is this?</span></a></p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://en.wikipedia.org/wiki/Ipv6"><span style=" text-decoration: underline; color:#0000ff;">这是什么?</span></a></p></body></html> - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol"><span style=" text-decoration: underline; color:#0000ff;">What is this?</span></a></p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol"><span style=" text-decoration: underline; color:#0000ff;">这是什么?</span></a></p></body></html> - - - - Address - 地址 - - - - Close - 关闭 - - - - Connect - 连接 - - - - Connect to Network Game - 连接到网络游戏 - - - - Delete - 删除 - - - - IP Address / Domain Name: - IP地址/域名: - - - - IPv6 - IPv6 - - - - Join Network Game - 加入网络游戏 - - - - myServerProfile1 - myServerProfile1 - - - - Name - 名字 - - - - Password (optional): - 密码(可选): - - - - Port - 端口 - - - - Port: - 端口: - - - - Profile Name: - 档案名称: - - - - Save - 保存 - - - - SCTP - SCTP - - - - Server Profiles - 服务器档案 - - - - Use IPv6 - 使用IPv6 - - - - Use SCTP - 使用SCTP - - - - joinNetworkGameDialogImpl - - - A profile with the name: %1 already exists. -Would you like to overwrite ? - 名为%1的档案已存在。 -是否将其覆盖? - - - - Could not load server-profiles-file: - - 无法读取服务器档案文件 - - - - - Could not read server-profiles list - 无法读取服务器档案列表 - - - - Could not save server-profiles-file: - - 无法保存服务器档案文件 - - - - Load Server-Profile-File Error - 读取服务器档案文件出错 - - - - Read Server-Profile List Error - 读取服务器档案列表出错 - - - - Save Server Profile Error - 保存服务器档案出错 - - - - Save Server-Profile-File Error - 保存服务器档案文件出错 - - - - mainWindow - - - About PokerTH ... - 关于PokerTH... - - - - Auto-Check / Auto-Call-Any - 自动让牌/自动跟进 - - - - Auto-Check / Auto-Fold - 自动让牌/自动收牌 - - - - Away - 离开 - - - - Chat - 聊天 - - - - Create Network Game ... - 创建网络游戏... - - - - Ctrl+A - Ctrl+A - - - - Ctrl+F - Ctrl+F - - - - Ctrl+H - Ctrl+H - - - - Ctrl+I - Ctrl+I - - - - Ctrl+J - Ctrl+J - - - - Ctrl+L - Ctrl+L - - - - Ctrl+N - Ctrl+N - - - - Ctrl+O - Ctrl+O - - - - Ctrl+Q - Ctrl+Q - - - - Ctrl+T - Ctrl+T - - - - Fullscreen - 全屏 - - - - Game - 游戏 - - - - Hands - 成手 - - - - Internet Game ... - 因特网游戏... - - - - Join Network Game ... - 加入网络游戏... - - - - Log - 日志 - - - - Manual Action (default) - 手动操作(默认) - - - - Network Game - 网络游戏 - - - - PokerTH 0.6-beta - The Open-Source Texas Holdem Engine - PokerTH 0.6-公测版 - 开源的德州扑克游戏引擎 - - - - Quit - 退出 - - - - Settings ... - 设置... - - - - Show/Hide Away Window - 显示/隐藏“离开”窗口 - - - - Show/Hide Chat Window - 显示/隐藏“聊天”窗口 - - - - Show/Hide Hands Window - 显示/隐藏“成手”窗口 - - - - Show/Hide Log Window - 显示/隐藏“日志”窗口 - - - - Speed: - 速度: - - - - Start Local Game ... - 开始本地游戏... - - - - View - 查看 - - - - mainWindowImpl - - - A new release of PokerTH is available.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. - 有新版本的PokerTH可用。<br>请访问<a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a>并下载最新的版本。 - - - - An internal avatar error occured. Please report this to an admin in the lobby chat. - 发生内部错误。请将其通过大厅聊天报告给管理员。 - - - - An internal error occured. - 发生内部错误。 - - - - An invalid avatar file was configured. Please choose a different avatar. - 配置的头像文件不可用。请选择其它的头像。 - - - - An invalid network packet was received. -Please make sure that all players use the same version of PokerTH. - 收到无效的网络包。 -请确认所有玩家使用相同版本的PokerTH。 - - - - An invalid port was set (ports 0-1023 are not allowed). - 设置的端口无效(不能设置0-1023间的端口)。 - - - - Attention! Do you really want to leave the current game -and go back to the lobby? - 注意!你真的想离开当前的游戏 -并回到大厅么? - - - - Auto mode set: Check or call any. - 自动模式已设定:让牌或者跟进。 - - - - Auto mode set: Check or fold. - 自动模式已设定:让牌或者收牌。 - - - - Bind failed - please choose a different port. - 端口绑定失败 - 请使用其它的端口。 - - - - Chat - 聊天 - - - - Closing PokerTH during network game - 在网络游戏中关闭PokerTH - - - - Cmd+N to start a new game - 按下Cmd+N来开始新游戏 - - - - Connection timed out. -Please check the server address. - -If the server is behind a NAT-Router, make sure port forwarding has been set up on server side. - 连接超时。 -请检查服务器地址。 -如果服务器在NAT路由后,请确定服务器端已设定好端口转发。 - - - - Connection was closed by the server. - 连接已被服务器关闭。 - - - - Could not connect to the server. - 无法连接到服务器。 - - - - Could not create a socket for TCP communication. - 无法为TCP通信创建插口。 - - - - Could not set the IP address. - 无法设置IP地址。 - - - - Could not set the port for this type of address. - 无法为这种地址设定端口。 - - - - Could not start game: Synchronization failed. - 无法开始游戏:同步失败。 - - - - Ctrl+N to start a new game - 按下Ctrl+N来开始新游戏 - - - - F1 - All-In | F2 - Bet/Raise | F3 - Check/Call | F4 - Fold - F1 - 全押 | F2 - 下注/加注 | F3 - 让牌/跟进 | F4 - 收牌 - - - - F1 - Fold | F2 - Check/Call | F3 - Bet/Raise | F4 - All-In - F1 - 收牌 | F2 - 让牌/跟进 | F3 - 下注/加注 | F4 - 全押 - - - - Internal error: The current player could not be found. - 内部错误:找不到当前玩家。 - - - - Internal error: The current player is not active. - 内部错误:当前玩家无响应。 - - - - Internal network error: "listen" failed. - 网络内部错误:“监听”失败。 - - - - Internal network error: "select" failed. - 网络内部错误:“选择”失败。 - - - - Internal network error: "send" failed. - 网络内部错误:“发送”失败。 - - - - Internal network error: Duplicate TCP connection. - 网络内部错误:重复的TCP连接。 - - - - Internal state error. -Please make sure that all players use the same version of PokerTH. - 网络状态错误。 -请确认素有玩家使用相同版本的PokerTH。 - - - - Invalid password when joining the game. -Please reenter the password and try again. - 加入游戏时使用了错误的密码。 -请重新输入密码并重试。 - - - - Lobby - 大厅 - - - - Manual mode set. You've got to choose yourself now. - 手动模式已设置。你现在要选择自己。 - - - - Network Error - 网络错误 - - - - Network Notification - 网络通知 - - - - PokerTH - Internet Game Message - PokerTH - 网络游戏消息 - - - - PokerTH %1 - The Open-Source Texas Holdem Engine - PokerTH %1 - 开源德州扑克游戏引擎 - - - - Server address was not set. - 服务器地址未设置。 - - - - Server execution was terminated. - 服务器执行被终止。 - - - - Sorry, this game is already full. - 对不起,游戏已经满人了。 - - - - Sorry, this server is already full. - 对不起,服务器已经满人了。 - - - - Start - 开始 - - - - Stop - 停止 - - - - The chat text is invalid. - 无效的聊天文本。 - - - - The client player count is invalid. - 无效的客户端玩家计数。 - - - - The game could not be found. - 找不到游戏。 - - - - The game name is either too short or too long. Please choose another one. - 游戏名称过长或者果断。请重新选择。 - - - - The password is too long. Please choose another one. - 密码太长。请重新选择。 - - - - The player name is too short, too long or invalid. Please choose another one. - 玩家名称太短、太长或者无效。请重新选择。 - - - - The PokerTH server does not support this version of the game.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. - PokerTH服务器不支持这个版本的游戏。<br>请访问<a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a>并下载最新的版本。 - - - - The selected avatar file is too large. Please choose a different avatar. - 你选择的头像文件过大。请重新选择。 - - - - The server is down for maintenance. Please try again later. - 服务器正在进行维护。请稍后重试。 - - - - The server name could not be resolved. - 服务器名称无法被解析。 - - - - The server referred to an unknown player. Aborting. - 服务器引用了一个未知的玩家。正在终止。 - - - - This beta release of PokerTH is outdated.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. - 这个公测版的PokerTH已过期。<br>请访问<a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a>并下载最新的版本。 - - - - Too many manual blinds were set. Please reconfigure the manual blinds. - 设定了过多的手动盲注,请重新设定手动盲注。 - - - - Unable to join - the server has already started the game. - 无法加入 - 服务器已经开始游戏。 - - - - You are the hosting server. Do you want to close PokerTH anyway? - 你现在是主机。你还是希望关闭PokerTH么? - - - - You cannot join Internet-Game-Lobby with "Human Player" as nickname. -Please choose another one. - 你不能以“Human Player”作为昵称加入因特网游戏大厅。 -请重新选择。 - - - - You cannot upload a new avatar file at this time. Please try again in a few seconds. - 你现在不能上传新的头像文件。请几秒后重试。 - - - - You were kicked from the game. - 你被踢出游戏。 - - - - You were kicked from the server. - 你被踢出服务器。 - - - - You were temporarily banned from the server. - 你暂时被服务器封禁。 - - - - Your admin state timed out due to inactivity. Feel free to create a new game! - 你的管理员状态因为闲置而超时。请重新创建游戏! - - - - Your player name is already used by another player. -Please choose a different name. - 你的玩家名称已被另一玩家使用。 -请重新选择。 - - - - Your server connection timed out due to inactivity. You are very welcome to reconnect! - 你与服务器的连接因为闲置而超时。请重新连接! - - - - manualBlindsOrderDialog - - - $ - $ - - - - Add - 添加 - - - - Afterwards: - 之后: - - - - Always double blinds - 总是将盲注翻倍 - - - - Always raise by: - 总是加注: - - - - Delete - 删除 - - - - Keep last blind - 保持最后的盲注 - - - - Manual Blinds Order - 手动盲注顺序 - - - - manualBlindsOrderDialogImpl - - - Manual Blinds Order - 手动盲注顺序 - - - - You cannot set more than 30 manual blinds. - 你不能设置超过30个手动盲注。 - - - - myMessageDialog - - - Dialog - 对话 - - - - Do not show this warning again. - 不要再显示这个警告。 - - - - MessageText - 消息文本 - - - - newGameDialog - - - $ - $ - - - - Blinds - 盲注 - - - - Change blinds settings ... - 变更盲注设置... - - - - Game Speed: - 游戏速度: - - - - Local Game Settings - 本地游戏设置 - - - - Number of players: - 玩家数: - - - - Start Cash: - 入场金额: - - - - Start Local Game - 开始本地游戏 - - - - Use saved blinds settings - 使用已保存的盲注设置 - - - - selectAvatarDialog - - - Load avatar from external file - 从外部文件读取头像 - - - - Miscellaneous - 杂项 - - - - People - 人物 - - - - Please select an avatar - 请选择一个头像 - - - - Select an avatar - 选择一个头像 - - - - selectAvatarDialogImpl - - - Avatar File Error - 头像文件错误 - - - - Images (*.png *.jpg *.gif) - 图像(*.png *.jpg *.gif) - - - - Please select an avatar from the list! - 请从列表中选择一个头像! - - - - Select external avatar picture - 选择外部头像图片 - - - - The entered avatar picture doesn't exist. -Please enter an valid picture! - 输入的头像图片不存在。 -请重新输入! - - - - The file size of the chosen picture is too big. (max. 30KB) -Please choose a smaller picture! - 选择的图片体积过大。(上限 30KB) -请重新选择! - - - - settingsDialog - - - s - - - - - #pokerth - #pokerth - - - - $ - $ - - - - <a href="http://en.wikipedia.org/wiki/Ipv6">What is this?</a> - <a href="http://en.wikipedia.org/wiki/Ipv6">这是什么?</a> - - - - <a href="http://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol">What is this?</a> - <a href="http://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol">这是什么?</a> - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Note: Best avatar quality with image ratio like </span><span style=" font-weight:600; font-style:italic;">width=50, height=50.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">注意:最佳的头像横宽比为</span><span style=" font-weight:600; font-style:italic;">宽度50, 高度50。</span></p></body></html> - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Note: Best quality with image ratio like </span><span style=" font-weight:600; font-style:italic;">width=100, height=140.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-weight:400; font-style:normal; text-decoration:none;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">注意:最佳的图像横宽比为</span><span style=" font-weight:600; font-style:italic;">宽度100, 高度140。</span></p></body></html> - - - - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Note: Default </span><span style=" font-weight:600; font-style:italic;">Game Settings</span><span style=" font-style:italic;"> like "Maximum number of players", "Start Cash" and "Small Blind" will be used </span><span style=" font-weight:600; font-style:italic;">from Network Game Settings.</span></p></body></html> - <html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style="font-weight:400; font-style:normal;"> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">注意:默认</span><span style=" font-weight:600; font-style:italic;">游戏设置</span><span style=" font-style:italic;">例如“玩家数上限”,“入场金额”及“小盲注”将使用</span><span style=" font-weight:600; font-style:italic;">网络游戏设置的值。</span></p></body></html> - - - - 10 - 10 - - - - action (high frequent disc access) - 每次操作(高频率磁盘读写) - - - - Always double blinds - 总是将盲注翻倍 - - - - Channel Password: - 频道密码: - - - - Channel: - 频道: - - - - chat.freenode.net - chat.freenode.net - - - - Computer Engine - 电脑对手 - - - - Day(s) - - - - - Default - 默认 - - - - Edit ... - 编辑... - - - - Enable/Disable Lobby Chat (IRC Server) - 启用/禁用大厅聊天(IRC服务器) - - - - Enable/Disable Logging - 启用/禁用日志 - - - - Every: - 每: - - - - First small blind: - 首轮小盲注: - - - - Flipside of Cards - 牌背 - - - - game (low disc access) - 每局游戏(低频率磁盘读写) - - - - Game Speed for computer opponents: - 电脑对手游戏速度: - - - - Game Speed: - 游戏速度: - - - - hand (medium disc access) - 每手(中等频率磁盘读写) - - - - hands - 成手 - - - - Human Player: - 玩家: - - - - Interface - 界面 - - - - Internet Game Settings - 因特网游戏设置 - - - - Internet Server Settings (Dedicated Server) - 因特网服务器设置(独立服务器) - - - - Language: - 语言: - - - - Local Game Settings - 本地游戏设置 - - - - Log File Directory: - 日志文件目录: - - - - Log Messages - 日志消息 - - - - Manual blinds order: - 手动盲注顺序: - - - - Maximum number of players: - 玩家数上限: - - - - minutes - 分钟 - - - - Network / Internet Game - 网络/因特网游戏 - - - - Network Game Settings - 网络游戏设定 - - - - Network Server Settings - 网络服务器设定 - - - - Number of players: - 玩家数目: - - - - Opponent 1: - 对手1: - - - - Opponent 2: - 对手2: - - - - Opponent 3: - 对手3: - - - - Opponent 4: - 对手4: - - - - Opponent 5: - 对手5: - - - - Opponent 6: - 对手6: - - - - Own flipside picture: - 自己的牌背图片: - - - - Pause between hands (press "start" button to go on) - 在两成手之间暂停(按下“开始”按钮继续) - - - - Play game actions sounds like "check", "call", "raise" - 播放游戏操作声音,例如“让牌”,“跟进”,“加注” - - - - Play lobby chat notifications - 播放大厅聊天通知 - - - - Play network/internet game notifications like "player joined the game" - 播放网络/因特网游戏通知,例如“玩家加入游戏” - - - - Play sound effects - 播放音效 - - - - Player Nicks - 玩家昵称 - - - - Player Nicks/Avatars - 玩家昵称/头像 - - - - QLabel { font-weight: bold; } - QLabel { font-weight: bold; } - - - - Raise blinds: - 加盲注: - - - - Raise mode: - 加注模式: - - - - Reverse order of F-Keys (F1 - F4) - 反向F-键顺序(F1 - F4) - - - - Server Address: - 服务器地址: - - - - Server Password: - 服务器密码: - - - - Server Port: - 服务器端口: - - - - Settings - 设置 - - - - Show buttons for small blind and big blind - 为小盲注和大盲注显示按钮 - - - - Show fade-out animation for non-winning cards - 为未成手的牌显示渐隐效果 - - - - Show flip-card animation - 显示翻牌动画 - - - - Show game settings dialog on every new game - 在每次开始新游戏前显示游戏设置对话框 - - - - Show intro on startup - 启动程序时显示欢迎界面 - - - - Show left toolbox - 显示左工具框 - - - - Show left toolbox - 显示左工具框 - - - - Show own cards only on mouse click - 只在鼠标点击时显示自己的牌 - - - - Show right toolbox - 显示右工具框 - - - - Show statusbar messages - 显示状态栏消息 - - - - Sound - 声音 - - - - Sound Categories - 声音类别 - - - - Sound Volume: - 音量: - - - - Start Cash: - 入场金额: - - - - Store log files for - 保存日志文件 - - - - Switch keyboard focus to bet-input-field if it's your turn - 在你的回合将键盘焦点移至下注输入框 - - - - Timeout for player action: - 玩家操作超时: - - - - Use IPv6 - 使用IPv6 - - - - Use password for private game: - 为私人游戏使用密码: - - - - Use SCTP - 使用SCTP - - - - Write log after every: - 写入日志文件间隔: - - - - settingsDialogImpl - - - Blinds Error - 盲注错误 - - - - Bulgarian - 保加利亚语 - - - - Chinese - 中文 - - - - Dutch - 荷兰语 - - - - English - 英语 - - - - French - 法语 - - - - German - 德语 - - - - Greek - 希腊语 - - - - Hungarian - 匈牙利语 - - - - Images (*.png *.jpg *.gif) - 图像(*.png *.jpg *.gif) - - - - Italian - 意大利语 - - - - Language Changed - 语言已变更 - - - - Norwegian - 挪威语 - - - - Open Directory - 打开目录 - - - - Polish - 波兰语 - - - - Portuguese - 葡萄牙语 - - - - Russian - 俄语 - - - - Select your flipside picture - 选择牌背图片 - - - - Settings Error - 设置错误 - - - - Slovak - 斯洛伐克语 - - - - Spanish - 西班牙语 - - - - Swedish - 瑞典语 - - - - The entered flipside picture doesn't exist. -Please enter an valid picture! - 输入的牌背图面不存在。 -请重新输入! - - - - The first element in your manual-blinds-list -is smaller than current first-small-blind! -This first-small-blind-value will be set to maximum allowed value. - 手动盲注列表中的第一个元素小于当前首轮小盲注! -首轮小盲注的值将设为所允许的最大值。 - - - - The log file directory doesn't exist. -Please select an valid directory! - 日志文件目录不存在。 -请重新选择! - - - - Turkish - 土耳其语 - - - - You have changed application language to %1. -Please restart PokerTH to load new language! - 你已经将程序语言变更为%1。 -请重新启动PokerTH来载入新的语言! - - - - startNetworkGameDialog - - - 0 - 0 - - - - Cancel - 取消 - - - - Chat - 聊天 - - - - Connected Players - 已连接的玩家 - - - - Fill up with computer opponents - 用电脑对手填补空额 - - - - Kick Player - 踢出玩家 - - - - Maximum number of players: - 玩家数上限: - - - - Start Game - 开始游戏 - - - - Start Network Game - 开始网络游戏 - - - - startNetworkGameDialogImpl - - - Server Error - 服务器错误 - - - - You should not kick yourself from this game! - 你无法将自己踢出游戏! - - - - timeoutMsgBoxImpl - - - Please click "OK" to stop the countdown! - 请点击“确定”以停止倒计时! - - - - Timeout Warning - 超时警告 - - - - You are game-admin of an open game which will time out in %1 seconds. - 你的管理员身份将在%1秒后超时。 - - - - Your connection is about to time out due to inactivity in %1 seconds. - 你的连接因为闲置将在%1秒后超时。 - - - + + + + + Chat + + + You cannot kick any player - You are not game admin! + 你不能将任何人踢出游戏:你并不是游戏的管理员! + + + + You cannot kick yourself! + 你不能将自己踢出游戏! + + + + LobbyChat + + + An internal IRC error has occured: + 发生内部IRC错误: + + + + An IRC action timed out. + IRC操作超时。 + + + + as user + 作为用户 + + + + Connecting to Chat server... + 连接到聊天服务器... + + + + Could not connect to the IRC server. Chat will be unavailable. + 不能连接到IRC服务器,聊天功能被禁用。 + + + + Joined channel: + 已加入频道: + + + + Successfully connected to + 成功连接至 + + + + The IRC server reported an error: + IRC服务器报告了一个错误: + + + + The IRC server terminated the connection. Chat will be unavailable. + IRC服务器终止了连接,聊天功能被禁用。 + + + + was kicked from the server by + 被踢出游戏,执行者为 + + + + MyAvatarLabel + + + Vote for kick this user + 投票踢出这个用户 + + + + aboutPokerth + + + - Poker engine for the popular "Texas Hold'em" Poker +- Singleplayer games with up to 6 computer-opponents +- Multiplayer network games +- Coded in C++/Qt4 + + +© 2006-2007, FHammer, FThauer, LMay + -为流行的“德州扑克”开发的扑克游戏引擎 +-可与多至6人的电脑对手进行单人游戏 +-多人网络游戏 +-使用C++/Qt4编写 + + +© 2006-2007, FHammer, FThauer, LMay + + + + <a href="http://www.pokerth.net" target="_blank">http://www.pokerth.net<a> + <a href="http://www.pokerth.net" target="_blank">http://www.pokerth.net<a> + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">!!!Please replace this with your translator name!!! - !!!Please replace this with your language!!! - !!!If you like please replace this with your mail address (otherwise please remove)!!!</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">简体中文翻译:<a href="http://gordianz.com/">GordianZ</a></p></body></html> + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://commons.wikimedia.org/wiki/Main_Page"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">Wikimedia Commons</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"> - <span style=" font-weight:400;">for different popular avatar picture resources</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Viktoria, Benedikt, Erhard, Felix, Florian, Linus, Lothar, Mark, Steffi, Caro</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for people avatar pictures</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">ZeiZei</span> </p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for "misc" avatar pictures</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://kde-look.org/"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">http://kde-look.org/</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for different gpl lizensed sounds</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">doc_dos</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - for self recorded chip sounds</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://commons.wikimedia.org/wiki/Main_Page"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">Wikimedia Commons</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600;"> - <span style=" font-weight:400;">提供了各种流行的头像图片资源</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Viktoria, Benedikt, Erhard, Felix, Florian, Linus, Lothar, Mark, Steffi, Caro</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - 提供了人物头像图片</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">ZeiZei</span> </p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - 提供“杂项”中的头像图片</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://kde-look.org/"><span style=" font-weight:600; text-decoration: underline; color:#0000ff;">http://kde-look.org/</span></a></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - 提供各种GPL授权的声音</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">doc_dos</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - 提供注码的声音</p></body></html> + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Projectpage: </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://www.pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">http://www.pokerth.net</span></a></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">IRC: </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> #pokerth (irc.freenode.net)</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Authors: </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Felix Hammer (<a href="mailto:doitux@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">doitux@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - initial idea, basic architecture, gui implementation, linux package</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Florian Thauer (<a href="mailto:floty@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">floty@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - initial idea, basic architecture, engine development</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Lothar May (<a href="mailto:lotodore@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">lotodore@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - basic architecture, network development, windows package</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Oskar Lindqvist (<a href="mailto:tranberry@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">tranberry@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - gui graphics design, webdesign</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Erhard List (<a href="mailto:dunkanx@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">dunkanx@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - MacOS package</p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">项目页面:</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://www.pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">http://www.pokerth.net</span></a></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">IRC: </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> #pokerth (irc.freenode.net)</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Authors: </span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Felix Hammer (<a href="mailto:doitux@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">doitux@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - 初始创意,基本架构,用户界面实现,Linux打包</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Florian Thauer (<a href="mailto:floty@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">floty@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - 初始创意,基本架构,游戏引擎实现</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Lothar May (<a href="mailto:lotodore@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">lotodore@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - 基本架构,网络开发,Windows打包</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Oskar Lindqvist (<a href="mailto:tranberry@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">tranberry@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - 用户界面图形设计,网页设计</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Erhard List (<a href="mailto:dunkanx@pokerth.net"><span style=" text-decoration: underline; color:#0000ff;">dunkanx@pokerth.net</span></a>)</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> - MacOS打包</p></body></html> + + + + About + 关于 + + + + Close + 关闭 + + + + License + 许可 + + + + Project + 项目 + + + + Thanks to + 鸣谢 + + + + Translation + 翻译 + + + + aboutPokerthImpl + + + About PokerTH %1 + 关于PokerTH %1 + + + + PokerTH %1 + PokerTH %1 + + + + changeCompleteBlindsDialog + + + $ + $ + + + + Add + 添加 + + + + Afterwards: + 之后: + + + + Always double blinds + 总是将盲注翻倍 + + + + Always raise by: + 总是加注: + + + + Change Blinds Settings + 更改盲注设置 + + + + Delete + 删除 + + + + Every: + 每: + + + + First small blind: + 第一轮小盲注: + + + + hands + 成手 + + + + Keep last blind + 保持最后的盲注 + + + + Manual blinds order: + 手动盲注顺序: + + + + minutes + 分钟 + + + + Raise blinds: + 加盲注: + + + + Raise mode: + 加注模式: + + + + changeCompleteBlindsDialogImpl + + + Manual Blinds Order + 手动盲注顺序 + + + + You cannot set more than 30 manual blinds. + 你不能设置超过30个手动盲注。 + + + + changeHumanPlayerNameDialog + + + Name: + 名字: + + + + Network Error + 网络错误 + + + + connectToServerDialog + + + Cancel + 取消 + + + + Connect to Server + 连接到服务器 + + + + Connecting to Server ... + 正在连接到服务器... + + + + connectToServerDialogImpl + + + Connecting to server... + 正在连接到服务器... + + + + Connection established! + 连接已建立! + + + + Resolving address... + 正在解析地址... + + + + Starting session... + 正在建立会话... + + + + createInternetGameDialog + + + s + + + + + $ + $ + + + + Blinds + 盲注 + + + + Cancel + 取消 + + + + Change blinds settings ... + 更改盲注设置... + + + + Create Game + 创建游戏 + + + + Create Internet Game + 创建因特网游戏 + + + + Game Speed for computer opponents: + 电脑对手的游戏速度: + + + + Internet Game Settings + 因特网游戏设置 + + + + Maximum number of players: + 玩家数上限: + + + + Password: + 密码: + + + + Start Cash: + 入场金额: + + + + Timeout for player action: + 玩家操作超时: + + + + Use saved blinds settings + 使用已保存的盲注设置 + + + + createNetworkGameDialog + + + s + + + + + $ + $ + + + + Blinds + 盲注 + + + + Cancel + 取消 + + + + Change blinds settings ... + 更改盲注设置... + + + + Create Game + 创建游戏 + + + + Create Network Game + 创建网络游戏 + + + + Game Speed for computer opponents: + 电脑对手的游戏速度: + + + + Maximum number of players: + 玩家数上限: + + + + Network Game Settings + 网络游戏设置 + + + + Start Cash: + 入场金额: + + + + Timeout for player action: + 玩家操作超时: + + + + Use saved blinds settings + 使用已保存的盲注设置 + + + + gameLobbyDialog + + + Available Players + 在线的玩家 + + + + Blinds raise interval: + 盲注加注间隔: + + + + Blinds raise mode: + 盲注加注模式: + + + + Connected Players + 已连接的玩家 + + + + Create Game + 创建游戏 + + + + Fill up with computer opponents + 用电脑对手填补空额 + + + + First small blind: + 第一轮小盲注: + + + + Game + 游戏 + + + + Game Info + 游戏信息 + + + + Internet Game Lobby + 因特网游戏大厅 + + + + Join any game + 加入任何游戏 + + + + Join Game + 加入游戏 + + + + Kick Player + 踢出玩家 + + + + Leave Game + 离开游戏 + + + + Lobby-Chat + 大厅聊天 + + + + Manual blinds list: + 手动盲注列表: + + + + Maximum number of players: + 玩家数上限: + + + + Players + 玩家 + + + + Private + 私人 + + + + Start Cash: + 入场金额: + + + + Start Game + 开始游戏 + + + + State + 状态 + + + + Timeout for player action (sec): + 玩家操作超时: + + + + gameLobbyDialogImpl + + + %1's game + %1的游戏 + + + + connected players: %1 + 已连接的玩家:%1 + + + + double blinds + 双倍盲注 + + + + Game Info + 游戏信息 + + + + hands + 成手 + + + + Joining a private Game + 加入一个私人游戏 + + + + manual blinds order + 手动盲注顺序 + + + + minutes + 分钟 + + + + open + + + + + open games: %1 + 游戏开局:%1 + + + + players in chat: %1 + 聊天中的玩家:%1 + + + + running + 运行中 + + + + running games: %1 + 运行中的游戏:%1 + + + + Server Error + 服务器错误 + + + + Starting game. Please wait ... + 正在开始游戏,请稍候... + + + + You are about to join a private game. Please enter the password! + 你正在加入一个私人游戏。请输入密码! + + + + You should not kick yourself from this game! + 你无法将自己踢出游戏! + + + + joinNetworkGameDialog + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-weight:400; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://en.wikipedia.org/wiki/Ipv6"><span style=" text-decoration: underline; color:#0000ff;">What is this?</span></a></p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-weight:400; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://en.wikipedia.org/wiki/Ipv6"><span style=" text-decoration: underline; color:#0000ff;">这是什么?</span></a></p></body></html> + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-weight:400; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol"><span style=" text-decoration: underline; color:#0000ff;">What is this?</span></a></p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-weight:400; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> <a href="http://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol"><span style=" text-decoration: underline; color:#0000ff;">这是什么?</span></a></p></body></html> + + + + Address + 地址 + + + + Close + 关闭 + + + + Connect + 连接 + + + + Connect to Network Game + 连接到网络游戏 + + + + Delete + 删除 + + + + IP Address / Domain Name: + IP地址/域名: + + + + IPv6 + IPv6 + + + + Join Network Game + 加入网络游戏 + + + + myServerProfile1 + myServerProfile1 + + + + Name + 名字 + + + + Password (optional): + 密码(可选): + + + + Port + 端口 + + + + Port: + 端口: + + + + Profile Name: + 档案名称: + + + + Save + 保存 + + + + SCTP + SCTP + + + + Server Profiles + 服务器档案 + + + + Use IPv6 + 使用IPv6 + + + + Use SCTP + 使用SCTP + + + + joinNetworkGameDialogImpl + + + A profile with the name: %1 already exists. +Would you like to overwrite ? + 名为%1的档案已存在。 +是否将其覆盖? + + + + Could not load server-profiles-file: + + 无法读取服务器档案文件 + + + + + Could not read server-profiles list + 无法读取服务器档案列表 + + + + Could not save server-profiles-file: + + 无法保存服务器档案文件 + + + + Load Server-Profile-File Error + 读取服务器档案文件出错 + + + + Read Server-Profile List Error + 读取服务器档案列表出错 + + + + Save Server Profile Error + 保存服务器档案出错 + + + + Save Server-Profile-File Error + 保存服务器档案文件出错 + + + + gameTable + + + About PokerTH ... + 关于PokerTH... + + + + Auto-Check / Auto-Call-Any + 自动让牌/自动跟进 + + + + Auto-Check / Auto-Fold + 自动让牌/自动收牌 + + + + Away + 离开 + + + + Chat + 聊天 + + + + Create Network Game ... + 创建网络游戏... + + + + Ctrl+A + Ctrl+A + + + + Ctrl+F + Ctrl+F + + + + Ctrl+H + Ctrl+H + + + + Ctrl+I + Ctrl+I + + + + Ctrl+J + Ctrl+J + + + + Ctrl+L + Ctrl+L + + + + Ctrl+N + Ctrl+N + + + + Ctrl+O + Ctrl+O + + + + Ctrl+Q + Ctrl+Q + + + + Ctrl+T + Ctrl+T + + + + Fullscreen + 全屏 + + + + Game + 游戏 + + + + Hands + 成手 + + + + Internet Game ... + 因特网游戏... + + + + Join Network Game ... + 加入网络游戏... + + + + Log + 日志 + + + + Manual Action (default) + 手动操作(默认) + + + + Network Game + 网络游戏 + + + + PokerTH 0.6-beta - The Open-Source Texas Holdem Engine + PokerTH 0.6-公测版 - 开源的德州扑克游戏引擎 + + + + Quit + 退出 + + + + Settings ... + 设置... + + + + Show/Hide Away Window + 显示/隐藏“离开”窗口 + + + + Show/Hide Chat Window + 显示/隐藏“聊天”窗口 + + + + Show/Hide Hands Window + 显示/隐藏“成手”窗口 + + + + Show/Hide Log Window + 显示/隐藏“日志”窗口 + + + + Speed: + 速度: + + + + Start Local Game ... + 开始本地游戏... + + + + View + 查看 + + + + gameTableImpl + + + A new release of PokerTH is available.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. + 有新版本的PokerTH可用。<br>请访问<a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a>并下载最新的版本。 + + + + An internal avatar error occured. Please report this to an admin in the lobby chat. + 发生内部错误。请将其通过大厅聊天报告给管理员。 + + + + An internal error occured. + 发生内部错误。 + + + + An invalid avatar file was configured. Please choose a different avatar. + 配置的头像文件不可用。请选择其它的头像。 + + + + An invalid network packet was received. +Please make sure that all players use the same version of PokerTH. + 收到无效的网络包。 +请确认所有玩家使用相同版本的PokerTH。 + + + + An invalid port was set (ports 0-1023 are not allowed). + 设置的端口无效(不能设置0-1023间的端口)。 + + + + Attention! Do you really want to leave the current game +and go back to the lobby? + 注意!你真的想离开当前的游戏 +并回到大厅么? + + + + Auto mode set: Check or call any. + 自动模式已设定:让牌或者跟进。 + + + + Auto mode set: Check or fold. + 自动模式已设定:让牌或者收牌。 + + + + Bind failed - please choose a different port. + 端口绑定失败 - 请使用其它的端口。 + + + + Chat + 聊天 + + + + Closing PokerTH during network game + 在网络游戏中关闭PokerTH + + + + Cmd+N to start a new game + 按下Cmd+N来开始新游戏 + + + + Connection timed out. +Please check the server address. + +If the server is behind a NAT-Router, make sure port forwarding has been set up on server side. + 连接超时。 +请检查服务器地址。 +如果服务器在NAT路由后,请确定服务器端已设定好端口转发。 + + + + Connection was closed by the server. + 连接已被服务器关闭。 + + + + Could not connect to the server. + 无法连接到服务器。 + + + + Could not create a socket for TCP communication. + 无法为TCP通信创建插口。 + + + + Could not set the IP address. + 无法设置IP地址。 + + + + Could not set the port for this type of address. + 无法为这种地址设定端口。 + + + + Could not start game: Synchronization failed. + 无法开始游戏:同步失败。 + + + + Ctrl+N to start a new game + 按下Ctrl+N来开始新游戏 + + + + F1 - All-In | F2 - Bet/Raise | F3 - Check/Call | F4 - Fold + F1 - 全押 | F2 - 下注/加注 | F3 - 让牌/跟进 | F4 - 收牌 + + + + F1 - Fold | F2 - Check/Call | F3 - Bet/Raise | F4 - All-In + F1 - 收牌 | F2 - 让牌/跟进 | F3 - 下注/加注 | F4 - 全押 + + + + Internal error: The current player could not be found. + 内部错误:找不到当前玩家。 + + + + Internal error: The current player is not active. + 内部错误:当前玩家无响应。 + + + + Internal network error: "listen" failed. + 网络内部错误:“监听”失败。 + + + + Internal network error: "select" failed. + 网络内部错误:“选择”失败。 + + + + Internal network error: "send" failed. + 网络内部错误:“发送”失败。 + + + + Internal network error: Duplicate TCP connection. + 网络内部错误:重复的TCP连接。 + + + + Internal state error. +Please make sure that all players use the same version of PokerTH. + 网络状态错误。 +请确认素有玩家使用相同版本的PokerTH。 + + + + Invalid password when joining the game. +Please reenter the password and try again. + 加入游戏时使用了错误的密码。 +请重新输入密码并重试。 + + + + Lobby + 大厅 + + + + Manual mode set. You've got to choose yourself now. + 手动模式已设置。你现在要选择自己。 + + + + Network Error + 网络错误 + + + + Network Notification + 网络通知 + + + + PokerTH - Internet Game Message + PokerTH - 网络游戏消息 + + + + PokerTH %1 - The Open-Source Texas Holdem Engine + PokerTH %1 - 开源德州扑克游戏引擎 + + + + Server address was not set. + 服务器地址未设置。 + + + + Server execution was terminated. + 服务器执行被终止。 + + + + Sorry, this game is already full. + 对不起,游戏已经满人了。 + + + + Sorry, this server is already full. + 对不起,服务器已经满人了。 + + + + Start + 开始 + + + + Stop + 停止 + + + + The chat text is invalid. + 无效的聊天文本。 + + + + The client player count is invalid. + 无效的客户端玩家计数。 + + + + The game could not be found. + 找不到游戏。 + + + + The game name is either too short or too long. Please choose another one. + 游戏名称过长或者果断。请重新选择。 + + + + The password is too long. Please choose another one. + 密码太长。请重新选择。 + + + + The player name is too short, too long or invalid. Please choose another one. + 玩家名称太短、太长或者无效。请重新选择。 + + + + The PokerTH server does not support this version of the game.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. + PokerTH服务器不支持这个版本的游戏。<br>请访问<a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a>并下载最新的版本。 + + + + The selected avatar file is too large. Please choose a different avatar. + 你选择的头像文件过大。请重新选择。 + + + + The server is down for maintenance. Please try again later. + 服务器正在进行维护。请稍后重试。 + + + + The server name could not be resolved. + 服务器名称无法被解析。 + + + + The server referred to an unknown player. Aborting. + 服务器引用了一个未知的玩家。正在终止。 + + + + This beta release of PokerTH is outdated.<br>Please go to <a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a> and download the latest version. + 这个公测版的PokerTH已过期。<br>请访问<a href="http://www.pokerth.net/" target="_blank">http://www.pokerth.net</a>并下载最新的版本。 + + + + Too many manual blinds were set. Please reconfigure the manual blinds. + 设定了过多的手动盲注,请重新设定手动盲注。 + + + + Unable to join - the server has already started the game. + 无法加入 - 服务器已经开始游戏。 + + + + You are the hosting server. Do you want to close PokerTH anyway? + 你现在是主机。你还是希望关闭PokerTH么? + + + + You cannot join Internet-Game-Lobby with "Human Player" as nickname. +Please choose another one. + 你不能以“Human Player”作为昵称加入因特网游戏大厅。 +请重新选择。 + + + + You cannot upload a new avatar file at this time. Please try again in a few seconds. + 你现在不能上传新的头像文件。请几秒后重试。 + + + + You were kicked from the game. + 你被踢出游戏。 + + + + You were kicked from the server. + 你被踢出服务器。 + + + + You were temporarily banned from the server. + 你暂时被服务器封禁。 + + + + Your admin state timed out due to inactivity. Feel free to create a new game! + 你的管理员状态因为闲置而超时。请重新创建游戏! + + + + Your player name is already used by another player. +Please choose a different name. + 你的玩家名称已被另一玩家使用。 +请重新选择。 + + + + Your server connection timed out due to inactivity. You are very welcome to reconnect! + 你与服务器的连接因为闲置而超时。请重新连接! + + + + manualBlindsOrderDialog + + + $ + $ + + + + Add + 添加 + + + + Afterwards: + 之后: + + + + Always double blinds + 总是将盲注翻倍 + + + + Always raise by: + 总是加注: + + + + Delete + 删除 + + + + Keep last blind + 保持最后的盲注 + + + + Manual Blinds Order + 手动盲注顺序 + + + + manualBlindsOrderDialogImpl + + + Manual Blinds Order + 手动盲注顺序 + + + + You cannot set more than 30 manual blinds. + 你不能设置超过30个手动盲注。 + + + + myMessageDialog + + + Dialog + 对话 + + + + Do not show this warning again. + 不要再显示这个警告。 + + + + MessageText + 消息文本 + + + + newGameDialog + + + $ + $ + + + + Blinds + 盲注 + + + + Change blinds settings ... + 变更盲注设置... + + + + Game Speed: + 游戏速度: + + + + Local Game Settings + 本地游戏设置 + + + + Number of players: + 玩家数: + + + + Start Cash: + 入场金额: + + + + Start Local Game + 开始本地游戏 + + + + Use saved blinds settings + 使用已保存的盲注设置 + + + + selectAvatarDialog + + + Load avatar from external file + 从外部文件读取头像 + + + + Miscellaneous + 杂项 + + + + People + 人物 + + + + Please select an avatar + 请选择一个头像 + + + + Select an avatar + 选择一个头像 + + + + selectAvatarDialogImpl + + + Avatar File Error + 头像文件错误 + + + + Images (*.png *.jpg *.gif) + 图像(*.png *.jpg *.gif) + + + + Please select an avatar from the list! + 请从列表中选择一个头像! + + + + Select external avatar picture + 选择外部头像图片 + + + + The entered avatar picture doesn't exist. +Please enter an valid picture! + 输入的头像图片不存在。 +请重新输入! + + + + The file size of the chosen picture is too big. (max. 30KB) +Please choose a smaller picture! + 选择的图片体积过大。(上限 30KB) +请重新选择! + + + + settingsDialog + + + s + + + + + #pokerth + #pokerth + + + + $ + $ + + + + <a href="http://en.wikipedia.org/wiki/Ipv6">What is this?</a> + <a href="http://en.wikipedia.org/wiki/Ipv6">这是什么?</a> + + + + <a href="http://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol">What is this?</a> + <a href="http://en.wikipedia.org/wiki/Stream_Control_Transmission_Protocol">这是什么?</a> + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style="font-weight:400; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Note: Best avatar quality with image ratio like </span><span style=" font-weight:600; font-style:italic;">width=50, height=50.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style="font-weight:400; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">注意:最佳的头像横宽比为</span><span style=" font-weight:600; font-style:italic;">宽度50, 高度50。</span></p></body></html> + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style="font-weight:400; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Note: Best quality with image ratio like </span><span style=" font-weight:600; font-style:italic;">width=100, height=140.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style="font-weight:400; font-style:normal; text-decoration:none;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">注意:最佳的图像横宽比为</span><span style=" font-weight:600; font-style:italic;">宽度100, 高度140。</span></p></body></html> + + + + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style="font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">Note: Default </span><span style=" font-weight:600; font-style:italic;">Game Settings</span><span style=" font-style:italic;"> like "Maximum number of players", "Start Cash" and "Small Blind" will be used </span><span style=" font-weight:600; font-style:italic;">from Network Game Settings.</span></p></body></html> + <html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style="font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-style:italic;">注意:默认</span><span style=" font-weight:600; font-style:italic;">游戏设置</span><span style=" font-style:italic;">例如“玩家数上限”,“入场金额”及“小盲注”将使用</span><span style=" font-weight:600; font-style:italic;">网络游戏设置的值。</span></p></body></html> + + + + 10 + 10 + + + + action (high frequent disc access) + 每次操作(高频率磁盘读写) + + + + Always double blinds + 总是将盲注翻倍 + + + + Channel Password: + 频道密码: + + + + Channel: + 频道: + + + + chat.freenode.net + chat.freenode.net + + + + Computer Engine + 电脑对手 + + + + Day(s) + + + + + Default + 默认 + + + + Edit ... + 编辑... + + + + Enable/Disable Lobby Chat (IRC Server) + 启用/禁用大厅聊天(IRC服务器) + + + + Enable/Disable Logging + 启用/禁用日志 + + + + Every: + 每: + + + + First small blind: + 首轮小盲注: + + + + Flipside of Cards + 牌背 + + + + game (low disc access) + 每局游戏(低频率磁盘读写) + + + + Game Speed for computer opponents: + 电脑对手游戏速度: + + + + Game Speed: + 游戏速度: + + + + hand (medium disc access) + 每手(中等频率磁盘读写) + + + + hands + 成手 + + + + Human Player: + 玩家: + + + + Interface + 界面 + + + + Internet Game Settings + 因特网游戏设置 + + + + Internet Server Settings (Dedicated Server) + 因特网服务器设置(独立服务器) + + + + Language: + 语言: + + + + Local Game Settings + 本地游戏设置 + + + + Log File Directory: + 日志文件目录: + + + + Log Messages + 日志消息 + + + + Manual blinds order: + 手动盲注顺序: + + + + Maximum number of players: + 玩家数上限: + + + + minutes + 分钟 + + + + Network / Internet Game + 网络/因特网游戏 + + + + Network Game Settings + 网络游戏设定 + + + + Network Server Settings + 网络服务器设定 + + + + Number of players: + 玩家数目: + + + + Opponent 1: + 对手1: + + + + Opponent 2: + 对手2: + + + + Opponent 3: + 对手3: + + + + Opponent 4: + 对手4: + + + + Opponent 5: + 对手5: + + + + Opponent 6: + 对手6: + + + + Own flipside picture: + 自己的牌背图片: + + + + Pause between hands (press "start" button to go on) + 在两成手之间暂停(按下“开始”按钮继续) + + + + Play game actions sounds like "check", "call", "raise" + 播放游戏操作声音,例如“让牌”,“跟进”,“加注” + + + + Play lobby chat notifications + 播放大厅聊天通知 + + + + Play network/internet game notifications like "player joined the game" + 播放网络/因特网游戏通知,例如“玩家加入游戏” + + + + Play sound effects + 播放音效 + + + + Player Nicks + 玩家昵称 + + + + Player Nicks/Avatars + 玩家昵称/头像 + + + + QLabel { font-weight: bold; } + QLabel { font-weight: bold; } + + + + Raise blinds: + 加盲注: + + + + Raise mode: + 加注模式: + + + + Reverse order of F-Keys (F1 - F4) + 反向F-键顺序(F1 - F4) + + + + Server Address: + 服务器地址: + + + + Server Password: + 服务器密码: + + + + Server Port: + 服务器端口: + + + + Settings + 设置 + + + + Show buttons for small blind and big blind + 为小盲注和大盲注显示按钮 + + + + Show fade-out animation for non-winning cards + 为未成手的牌显示渐隐效果 + + + + Show flip-card animation + 显示翻牌动画 + + + + Show game settings dialog on every new game + 在每次开始新游戏前显示游戏设置对话框 + + + + Show intro on startup + 启动程序时显示欢迎界面 + + + + Show left toolbox + 显示左工具框 + + + + Show left toolbox + 显示左工具框 + + + + Show own cards only on mouse click + 只在鼠标点击时显示自己的牌 + + + + Show right toolbox + 显示右工具框 + + + + Show statusbar messages + 显示状态栏消息 + + + + Sound + 声音 + + + + Sound Categories + 声音类别 + + + + Sound Volume: + 音量: + + + + Start Cash: + 入场金额: + + + + Store log files for + 保存日志文件 + + + + Switch keyboard focus to bet-input-field if it's your turn + 在你的回合将键盘焦点移至下注输入框 + + + + Timeout for player action: + 玩家操作超时: + + + + Use IPv6 + 使用IPv6 + + + + Use password for private game: + 为私人游戏使用密码: + + + + Use SCTP + 使用SCTP + + + + Write log after every: + 写入日志文件间隔: + + + + settingsDialogImpl + + + Blinds Error + 盲注错误 + + + + Bulgarian + 保加利亚语 + + + + Chinese + 中文 + + + + Dutch + 荷兰语 + + + + English + 英语 + + + + French + 法语 + + + + German + 德语 + + + + Greek + 希腊语 + + + + Hungarian + 匈牙利语 + + + + Images (*.png *.jpg *.gif) + 图像(*.png *.jpg *.gif) + + + + Italian + 意大利语 + + + + Language Changed + 语言已变更 + + + + Norwegian + 挪威语 + + + + Open Directory + 打开目录 + + + + Polish + 波兰语 + + + + Portuguese + 葡萄牙语 + + + + Russian + 俄语 + + + + Select your flipside picture + 选择牌背图片 + + + + Settings Error + 设置错误 + + + + Slovak + 斯洛伐克语 + + + + Spanish + 西班牙语 + + + + Swedish + 瑞典语 + + + + The entered flipside picture doesn't exist. +Please enter an valid picture! + 输入的牌背图面不存在。 +请重新输入! + + + + The first element in your manual-blinds-list +is smaller than current first-small-blind! +This first-small-blind-value will be set to maximum allowed value. + 手动盲注列表中的第一个元素小于当前首轮小盲注! +首轮小盲注的值将设为所允许的最大值。 + + + + The log file directory doesn't exist. +Please select an valid directory! + 日志文件目录不存在。 +请重新选择! + + + + Turkish + 土耳其语 + + + + You have changed application language to %1. +Please restart PokerTH to load new language! + 你已经将程序语言变更为%1。 +请重新启动PokerTH来载入新的语言! + + + + startNetworkGameDialog + + + 0 + 0 + + + + Cancel + 取消 + + + + Chat + 聊天 + + + + Connected Players + 已连接的玩家 + + + + Fill up with computer opponents + 用电脑对手填补空额 + + + + Kick Player + 踢出玩家 + + + + Maximum number of players: + 玩家数上限: + + + + Start Game + 开始游戏 + + + + Start Network Game + 开始网络游戏 + + + + startNetworkGameDialogImpl + + + Server Error + 服务器错误 + + + + You should not kick yourself from this game! + 你无法将自己踢出游戏! + + + + timeoutMsgBoxImpl + + + Please click "OK" to stop the countdown! + 请点击“确定”以停止倒计时! + + + + Timeout Warning + 超时警告 + + + + You are game-admin of an open game which will time out in %1 seconds. + 你的管理员身份将在%1秒后超时。 + + + + Your connection is about to time out due to inactivity in %1 seconds. + 你的连接因为闲置将在%1秒后超时。 + + +