From b0e8612b3fe8ff513f9c63637c4a546a4a0cea58 Mon Sep 17 00:00:00 2001 From: Nikolay Tischenko Date: Sat, 18 Sep 2010 01:17:59 +0700 Subject: [PATCH] Big commit: - added icons - added search line - minor bugfixing --- resources/add.png | Bin 0 -> 5796 bytes resources/artists.png | Bin 0 -> 6217 bytes resources/back.png | Bin 0 -> 5741 bytes resources/delete.png | Bin 0 -> 6286 bytes resources/dynamic.png | Bin 0 -> 6172 bytes resources/fav.png | Bin 0 -> 6046 bytes resources/forward.png | Bin 0 -> 5766 bytes resources/library.png | Bin 0 -> 6286 bytes resources/next.png | Bin 0 -> 5916 bytes resources/pause.png | Bin 0 -> 5480 bytes resources/play.png | Bin 0 -> 5852 bytes resources/playback.png | Bin 0 -> 5820 bytes resources/player.png | Bin 0 -> 5856 bytes resources/playlist.png | Bin 0 -> 5690 bytes resources/playlists.png | Bin 0 -> 6362 bytes resources/prev.png | Bin 0 -> 5859 bytes resources/random_active.png | Bin 0 -> 1069 bytes resources/random_inactive.png | Bin 0 -> 1071 bytes resources/repeat_active.png | Bin 0 -> 969 bytes resources/repeat_inactive.png | Bin 0 -> 933 bytes resources/resources.qrc | 27 ++++ resources/search.png | Bin 0 -> 6340 bytes resources/stop.png | Bin 0 -> 5504 bytes resources/use.png | Bin 0 -> 6173 bytes someplayer.pro | 15 ++ someplayer.pro.user | 2 +- src/libraryform.cpp | 37 +++-- src/mainwindow.cpp | 77 ++++++++-- src/mainwindow.h | 11 +- src/player/player.cpp | 8 +- src/playerform.cpp | 93 +++++++++++-- src/playerform.h | 13 ++ src/trackrenderer.cpp | 2 +- src/ui/libraryform.ui | 205 +++++++++++++++++++++------ src/ui/mainwindow.ui | 198 ++++++++++++++++++++++---- src/ui/playerform.ui | 309 +++++++++++++++++++++++------------------ 36 files changed, 755 insertions(+), 242 deletions(-) create mode 100644 resources/add.png create mode 100644 resources/artists.png create mode 100644 resources/back.png create mode 100644 resources/delete.png create mode 100644 resources/dynamic.png create mode 100644 resources/fav.png create mode 100644 resources/forward.png create mode 100644 resources/library.png create mode 100644 resources/next.png create mode 100644 resources/pause.png create mode 100644 resources/play.png create mode 100644 resources/playback.png create mode 100644 resources/player.png create mode 100644 resources/playlist.png create mode 100644 resources/playlists.png create mode 100644 resources/prev.png create mode 100644 resources/random_active.png create mode 100644 resources/random_inactive.png create mode 100644 resources/repeat_active.png create mode 100644 resources/repeat_inactive.png create mode 100644 resources/resources.qrc create mode 100644 resources/search.png create mode 100644 resources/stop.png create mode 100644 resources/use.png diff --git a/resources/add.png b/resources/add.png new file mode 100644 index 0000000000000000000000000000000000000000..3f3717ab81d0b10f7b86cabcd08017635a2de25a GIT binary patch literal 5796 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 I>pP$MUt=WuP5=M^ literal 0 HcmV?d00001 diff --git a/resources/back.png b/resources/back.png new file mode 100644 index 0000000000000000000000000000000000000000..6f0837fe5acdaa4e832fa005da22f5c069a3a292 GIT binary patch literal 5741 zcmcIo2{@GP`hP|Ct%Vlp8$*(q%|4BF#+IECT8)|4n9OEotd*#2)gei?NQ>+$N(qHT zrHGQUq_U+x`a)^Ld1u6@PUrlubFS;}n#J=z_x=0*p8L6<`?-m8cC?m}TrCLzfQ+pT z!4>*O@!#U2(5J_uFEIch(MKbC@;n{vv1AqlL87pHKtu?G4b1}p&NPHgBKw0pm=8#$ zF^%ExD{sMJG>S3YL(c)_z{Z1qG@CFE=oaQkB!~HvjVN$a6G>bM76M>^JQ6H~L1%KY zA;xe4E*AQo{}>5}2~2qY#&B~!AL=uMMP<*kj1gjr((8w6>$K$cFNMvwuFd|q7!QxPn zXd@#dBnpGXV6-6%ZEh%&M+(tqa#i^dvls-BOXkqnJQ|A$<71M1Sb;oaI2@XX{QzhC zv3M-5AB#Ot!Q}pk8Wca|{4^4cKp_`8+Om0MT_`U6WzPFTTx5YbE{}p-Xd!SHMDHgM z3VGg@9mt^zTq$HENCz1plgEX;&_CHje6BRAACEil_LJHW5?esT5!n3d`Ja6jt_`Ab zaQM&W48~9JT%KhR6xkoU^jlF}VkjF#x`JF*AcqWE20;r{6_C!y7)v1WKs*P8KB1Jv zpwK976dHQ{Vg*@HXb>4c7pM>l9rPuUK?Jm2zZjYa^88pFt}}~Er)1k>g65SeP^0$>ugG{L$(kwC*7OVr5?-UY`#Fx52qYe>+#_FQ5 zI=UNCXeu^2?h(@2`q9TKN;rSDgT|j6O;=yCW-z(!SD|f4EIxz1lz;n;91aVBlB#TzAV9E z`q_qNPT}BbyijAfGlxVC1O?H6{i}^LnMHx3h}K8_h}dsz@H`HLgAW7AelS;%9q2=+ zk$;P4$sp0_9xM)2g#1Znze$W=!QDAO%zu+e$l0Y+$k^GlBpA*X6>~aob~HPr)A*GH zOD8d@(Ee&upkxfB^WY|eK+%Fgs17n1EG8Fb&f{@tK7oQ_f z~|99_yiJvmBg3H4fNR!9pMEMElAW~g27ktGx*$An#>>gpXX;sb4UX6 zg+zQ}9t~Q{0@^vH|3_qg&eOkRzz@OiG|a&YH2lqpgDT7H&46|1lBggN zwTRV-OP{pSanXyA&bL^*y?+1TV;~~)bJ`vuVA}~51)=Oj0JaQ_B>;Y#fTETyhb;k56tLXauHFcErVXHM zJ$!9|OV@y!W_hVnKwKI?xx_|o07Uix-gi}1Lx4kRz;dfG58Q{1CGta>P^8jIaTRJt zmXX`UwFAUFJP>O&nr&BXT&_=AL`pY9)P<(4!bIxIy&Qi40NIHO&}zr0LYieunw$0G z%Vl?Izr7_o1NZUin;vK>WSarND_(f(v=*{#b;Kso2*&i;b)zDFJEgJ%Cy)4+%9&jS zvWGi8#@YPXSe`jn@%;HffB&=1^%mPm_dWJaQ|orscudj1gyX(XetdcJwOS-*N2ImL z=a+R4ChT+8v>cZ>7mn~d_^Ks%=Dq2Z zb@npS`ta*rpxdm>B5H9m$noMSH^uLw_FYuSsH0sBcU%6Yyl&! zHMjA!_jG(_lLuR)rn{t5!azd!kW1Zqcv7C-74;iSzSOVu!JuP2ZM0OME=^d5l;0DJ zuQyOz8i&WMuQ;~I_VRgR+tN0xHm0lUuvUJCuFY!Iq|k5~Jx@SCJve8ao3q$hc;W6C3swx(h0Hz{v~CxWGAq7@D{ z#!@v_WvmoiNnI7Z@?xs}g;kG_tZF2p4AAdVhtlNISni&h<(hjH67NeUZ%$TER?sH){T-yqE%N9*bytKHO_6 zPSoqR{cR`wd6(?VyZWjcU{d5&Wg%KB{xXHpfsuOk>X#or-y5V^nL4FhdBnIN|BMk{ zXS0q+nd|roUsJKZ)PT>Yc#aZ78o4Rs;fG%=f4|}N2BizS_7!MwyMMvSl#`x?Hia&Q z*6*tIOGa`tFH~DrdVPzOHE-O!e*1cBYC`kk%pteuZauk@xrz?P*pDTM0{Hn(n(ZadH?*^=y%Ed8X4> zzN~3OJuTBMHP|mPbQqxeI|W4gBO?=Ub`L`)LgrJt;y*&D{EI&FMhx33}q&4rWMGISSLgk zj*B#p+_vc3=dishx8hB)UErtE=OgAvvn$LM%o7e29~h`DR`I+0=dogy$)VKd#Acdo zlymr-r;o%)gQO$3!==|p#YA~To5r(aJy*A)Q}lvcyYbv!!dJpc!ix+l+R5mm_GUdz zlLEwUT&KYe-5aJ22w$%U?Vg#QwsgBSMhMLkeJ1^8@Ar}MnAe%FrTX@)NJZY=!45ss zTsIMwtC){is)apiW*_Tlc;YW}dCfe*?IrS}d z&^M^52#hM7zQa6n4Y@X1?4Ezwv7*IZ+LGlK7v2!JYIJCdl~O?u-&+sk?i-yf%-Z;H z6>~7U8ZRF4ttV zI~9(2q?CkLtA{!GNA9e>f1viNkpDX=cgcaMeeb$EMs_%PBE5RAlDWe-2W!jd%eepJRKsgkHX*cscv7Nwa;*%uGwA4^qE}*%{|Hj1 zDkFDWq>rUrWw@n(+vc%hAl_ z%zfdAFWufvz$3Hw5e)S^Y*dpys^@*fn^@oJ<=~?cQM}b z-r}Z{9y>Kwo~leQso3scF&b8Vb&v1luu_&mbI(L|=m*7_r|nrr#y!>JVXVnJlOKB( zd%`*Er<$88p9ilWEv|B^+BIP|V*VW86Vq+wN1APwzKp^yg$hY1AfK3H}6|CdC z?pOhUP`)j}oEXyiXQ%(}IOHtJ+gEbM^bzgi@NfMgy1N}r8Ze6wrI}UB7MBYw5y0K*MaW$;%(o#I}i(!1= zn#PI1*bRSJCdQwQ4UdO!B94cD;9+U-)l(nU1{bYKuvQ%43dzO@XN;u@kye&!o~Efv z-F6mU8Blrb{MJaA_!V^YjxWTG@*+Y_X-@bgVmEy?VX>dU?Fy;{Co z??fyLs?0nzmg3=E*>iZqe$l^hPQ))Ppd;{3@{9;wUny}w$gH^Iol3;zCrRGPv1`@- z01FAaC#9W%OIwTkr$zrfGQim|sY&TGjPKr8<9pfjZciLzaJ-^>k4naKy80yZi7z&D z&=RMaQ?)5&e{uV6*4wAK>Pfb~gzB9hmfGg)EYqm)u=^Z1d6Iax)sJFvX>U;*UEfXB za}ki;zB|X_(qh1@vgc-;w+s;Bm^;4lfH45v=oxiC1a)Z>Vbw>((E#vf@*7p$1prn` riz>calIWpkmOPWJAvCk*FB8B>zGLf~$;?P-g8^GhM?#5(_kn)`;B5ZQ literal 0 HcmV?d00001 diff --git a/resources/delete.png b/resources/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..3da8b2fa58f65d02a91421aec4b95739b7b33255 GIT binary patch literal 6286 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 R=)gM<*jP9c3(dXu|1VpN1z7+9 literal 0 HcmV?d00001 diff --git a/resources/library.png b/resources/library.png new file mode 100644 index 0000000000000000000000000000000000000000..02fcaebed781db4996689c73ded7809a31ec4709 GIT binary patch literal 6286 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 MGP5TXn0g%fCl;7oC;$Ke literal 0 HcmV?d00001 diff --git a/resources/pause.png b/resources/pause.png new file mode 100644 index 0000000000000000000000000000000000000000..de9805bd8c0e2af604103025942e276d0d05e945 GIT binary patch literal 5480 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 i$Pz)sdRPrXlqZaXU{Vxi^!!~X;l@PKvz literal 0 HcmV?d00001 diff --git a/resources/play.png b/resources/play.png new file mode 100644 index 0000000000000000000000000000000000000000..3f031b0d587433392f01da1660568f69b0a8db30 GIT binary patch literal 5852 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 AtpET3 literal 0 HcmV?d00001 diff --git a/resources/playback.png b/resources/playback.png new file mode 100644 index 0000000000000000000000000000000000000000..b8fdd79a39a8beaab54f145ef6a34eb0ee72aafa GIT binary patch literal 5820 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 Qpn3spEF1~N=Dz#?0lHKxrvLx| literal 0 HcmV?d00001 diff --git a/resources/player.png b/resources/player.png new file mode 100644 index 0000000000000000000000000000000000000000..31dcd7594544b83f6b837f8a964f474398bc8dfd GIT binary patch literal 5856 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 GdE}q(BRdoT literal 0 HcmV?d00001 diff --git a/resources/playlist.png b/resources/playlist.png new file mode 100644 index 0000000000000000000000000000000000000000..6edad1dfe9d04574c3a7f7ffbdde84d0015ec78b GIT binary patch literal 5690 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 literal 0 HcmV?d00001 diff --git a/resources/playlists.png b/resources/playlists.png new file mode 100644 index 0000000000000000000000000000000000000000..5e03318ae61b291bb7e626cec22e173630aa0bdd GIT binary patch literal 6362 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 Ci8g-# literal 0 HcmV?d00001 diff --git a/resources/prev.png b/resources/prev.png new file mode 100644 index 0000000000000000000000000000000000000000..d55620031a9e6260d05a49ddfd2f98977370bc82 GIT binary patch literal 5859 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 Fe*l;1FHZmf literal 0 HcmV?d00001 diff --git a/resources/random_active.png b/resources/random_active.png new file mode 100644 index 0000000000000000000000000000000000000000..5a8c3197eca905fcbcb0fd9aaf6e0995432f5245 GIT binary patch literal 1069 zcmV+|1k(G7P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ige{ z4=gl^9Unvh00XT_L_t(&-tAc3Y7|Ql{;GS{^?-=pd3o^8W6X;PqQ)eWponnZOAe?f ztBIocBAOqcz$@<#2xhkH^P;C_yC*ZdD@=|nOfADsPxVxN)%DZW0}M3KKm!dl(2CL1 zw#5Hr4E7&(D9B%krX_mIyBp;6x0exFm$*xf&-0Z;jwJTpD1KI0pv z5YBoy^MDrttC#HF#?9yEiPQr?^biwZmRD`EMoFxu@>4wNxGg-3e03XcOI|LVtLI$s zuFeG~(G!7jTq^P6!A)sa5UIcf5`}Yc(q2_8+yYtW9GT1PG+ z9CDgeA|)_o+t5Xb8^Vd$szyO5SpjZLdWJPf&K07a7tw@ z3Om;qcx8-t>ng46H$$h{>vx?8?Ao3jacK{1>_y9+#51XtKJO%g18V@rPiwwZt%ZRn ziGzo?#FD#It>V0~9LRrn~0pz+==k$BWhflaG9&BS}P zwI*i7R9VY2`KCJ^o4ztAzE8E*bLYiJb{Y_r_2oq1Dv+!iE9>cPjx}6CiPNBPBAwM` ze|t@0iyYR%h!~31}g(dm@&bn9_*e8?bA*QMGmo#(B z(Cz0RIdW2c6v&UMzB(j1nHf?l@nLseR>pvNWO2>};JXeFuk5EqECGIH4Y02rf%Czy n_Sb2mHRcBzXrO@x8Yrb7T2gEm=e)@P00000NkvXXu0mjf!CdsB literal 0 HcmV?d00001 diff --git a/resources/random_inactive.png b/resources/random_inactive.png new file mode 100644 index 0000000000000000000000000000000000000000..7b4ba32563a1e17640f9ab6efa6ef9425d54e371 GIT binary patch literal 1071 zcmV+~1kn45P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ige{ z4=WpOjkMYT00XZ{L_t(&-tAb~P9jkdJvBj}#&=m7qAa5R|F_6UgA1}JHD5#)<3M#0e6QkvF$;EQXeb)XuMF1orBo>PWe=Go{uP~p_ z`SSpP00}Z5gnXBhv)PP05X739m6zp9*$H4aopPP4h-W}Zz@2_K1?3IQH_>!D<-gBQ z&4I*fwThmfouA?T?>l~9T;RNPhL6<;Lc!PDuh1nm|j^7(^@U zpa>we`1JZprMwl$WHNC!5Yb!&1Sp0FA;w~)ww{on`8BperCf0`N}&Ly2oXYA#yX=s z80z@6ejr0{>-CedRj2U1bn!pboZNM#oIT!^GHwofUOK6GgmIEk4M-Sz*v zknwm-hQaA{rn7t;{0t0+;7d@g#)c_nvtL`E>)~QKn)@R3&N07&!2M47H#$WECB^Xa zYt3#^ez8qJ>ZjFOB@>=80L83bO$=IF2?c-xsqYCjAd;XELP0I5IzftnP&vm41=O2R zt0o)sW%TxDqDvY5W1d?9BuVn6vN{@#oP$(g>(OXLgt4x)@??%IM(KhismW0fvLs1_ zBuJue6dS$1k~YTa!-^z8<{o5rU7k@(hdP+*^}4JlwohDLHx+e#t2gSB(@Ox{W8JY% z;+K~fhPB0H3j{!;(Kx8g(lG##o69c2gUdR&2cDmwsgux_U{iGnTwPrqT;4%F@HBiP zl?u)x8mr4utbcF-_QWCq5k^UQeSN*R^@qbD0qnKsU@jdD23t+sY&IocBWO0aD;M&z zdyje!4AOzA`9bqV-~44tWKKBgBS4=8=^*9a9!S&Fw@pExLy1eFer|f=P^w5gix6nF zTcUaQO{*oQCGpSJDNR$xGY!#dwIvrozu)Ix6Vjg4Zfl`i`F@e#_7E~|vq!o61joDm zAP5=zXZHhK6Xy41W%w{-_zeEqcBGGwkK74BMZypd6;4p_?fUglF`(VGgVKIOzpb7uRKS>rnXpuT>r% zdW0E(Vyj9twNZR2yuIzp$pF|5?!gU6wvW2IyUU-*PU+QR7`EG#Kk0X)wv6sl{$v4w p1Qc+8e}9r8UQj^=6;#ma(0@ow*h7!fAmRW3002ovPDHLkV1l@kPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ige{ z4=pbmW9R7r00T)$L_t(&-tAc1irhvJJyoqC;E(Zm<1D^lvjlANC%F)83WN@tK|<(% zJD~v(ol6^!lj;9r)B%7fL>IT*0X<^{N)T-7eFFcG9vnI zb{(SH4F2gmLIg;@-2l;!eL!;g0n6Bb^z?-*nkUN*(6BUZwWT#yk5|=ao>0q5T$>!; zxFU<{zsJdx;G#hFy*_{{@Wh7(v1_@?a?(Gc>ACS`-P#;*%f?ckGB5#dvp*5<+fFqS^?i9#qmxD3I+{<+3?}-rtdOyt~(}RHlY>lByI!gMVuuXvVvH zMAv-h$xornf^Xf8=Gx!KX;{N7Ra#18@3#`;hky2WpckEMh>PUt?zMhzCC)y0%i~Jt zqQm%chxxibz1MZC2Hxpj=UPz3crqg>P{)cbb9rcD0y6SUG*@n*|_)$b0q; r1ONb^?*An9tCB$m8Dx+_Hd4L-*+ck1{hg|?00000NkvXXu0mjfb$rDw literal 0 HcmV?d00001 diff --git a/resources/repeat_inactive.png b/resources/repeat_inactive.png new file mode 100644 index 0000000000000000000000000000000000000000..004a4eb3d5ef47c8163f28075dac449d4f28e391 GIT binary patch literal 933 zcmV;W16urvP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2ige{ z4=oYf0{TJ#00SjSL_t(&-tAb~QsO`qJ=gII)KM0#QAbKZ|NmE95X2oA5z+U1<{{nb z4njhfk)bN5iUN}K?Q{3r0ZNo8QKH1U;^X6!pC6yhBV%K=Di8!Qold!y3Xp`70Ey}J zoolFo0wjzMc%P(KV#NvsULe$b6O+j#l@gM6)3>)V32_VQq`031C^OQz)OI8w0&Hz< zNudgi$76oChqkx3CAR{vudftizidde`s=ehJ3Fx)H1IAZD$QqmZm(E{Q*qf)6zo+KR%2ehsd0BU6Kd2)x|GpQ6{ z82Q%cCLtiGRPzxJ#VWo11Oj5OS`B3n1}{{N&x_4O;S##U+Nsb{!q1nONk8c={hk?H$FN(3MKSMA03Gl`tV1IEHf$G<)DU4njxCRFk((ChVxnH-}xwqzP5pv3WsBj4?IO?h^q zMF2uU_ohoTTn5AIg20Micc(U0F6=W*n6j4&;G5137cz>Gk}5+MK1`gPG!}~aktDa% z=@9t#(`1N7qmlPS#xJL(Oh-)d6EpweGgSy(U0rj@GvS;&(fblMsCcTUr>DifmAJaR zjP4uZ@RiUaiZa)i?rO8yl)^n=adB};Kb-8gtyW7`l_RO%%(YrgAvK&*!+~#wNd0QD z-EK?dP`_>p0Ki%MOze=S>!<(#oS&V`{}4hYN|Y#3A{YJwIEqQtQoo*z00000NkvXX Hu0mjf$-AWn literal 0 HcmV?d00001 diff --git a/resources/resources.qrc b/resources/resources.qrc new file mode 100644 index 0000000..24f51a2 --- /dev/null +++ b/resources/resources.qrc @@ -0,0 +1,27 @@ + + + artists.png + back.png + library.png + next.png + pause.png + play.png + playback.png + player.png + playlist.png + prev.png + search.png + stop.png + random_active.png + random_inactive.png + repeat_active.png + repeat_inactive.png + playlists.png + add.png + delete.png + use.png + dynamic.png + fav.png + forward.png + + diff --git a/resources/search.png b/resources/search.png new file mode 100644 index 0000000000000000000000000000000000000000..690d21295871ce4d59a1176e2899538e5e3d193d GIT binary patch literal 6340 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 dpBbrS0to!In-7C~o$)zg;D#h|ZM5PIXI!YB4 z6h%Oa2q*%AW1)!(i0FX-fDS6{zX`&i&-ecI-daB^_l9%M-uwH`K6~%8R}OD;ww0Gz zEdv06yuBUS4gSUmA1Mj=?YZQ0JOD`dGbvt>my;ub#$}_ZbgmzW3S;x&bpRlmhw-Si zKoCOsfea?c6#2fQ8i`=iO_81kP8cU12@GJ`MesrQ2xkf{B9LZ6N1B_-5W@(t0X7Ix z5n*f=M?eTOMT+ba;QxiwXe2@;0tK2PEroyxFQ;t?5|qUpna5pHuq7sjHA$O#}ida;B^ zUF5xQjL>Nds=Q!6OQcGtp+OeN204%b*1~=x597Hp83B-BLG2s1VN{+7h%b`)Ui07U zEZ!RoNOl8@E9O1F@n6M~=Po1+2yM^Ec$2*-0QH4|&al}(_ zSb{!=fX8pfURap|xZv4)th9{Yg|3F5b>mZxW

a#5X5Kt1&fN2Gnb<$oCoMbdZm5 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 G9{67nRf&H9 literal 0 HcmV?d00001 diff --git a/resources/use.png b/resources/use.png new file mode 100644 index 0000000000000000000000000000000000000000..bbbfce26368bcb5a4e3e6105e0c266307c2e9e2a GIT binary patch literal 6173 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 1 - 2010-09-12T03:30:33 + 2010-09-18T01:12:07 1 diff --git a/src/libraryform.cpp b/src/libraryform.cpp index f2e335b..8ce4c1d 100644 --- a/src/libraryform.cpp +++ b/src/libraryform.cpp @@ -74,17 +74,18 @@ void LibraryForm::_view_button() { __fill_model(_model, artitst); ui->listView->setModel(_model); _state = STATE_ARTIST; - ui->backButton->setEnabled(false); + ui->backButton->hide(); ui->listLabel->setText("Artists"); - ui->addButton->setEnabled(true); + ui->addButton->show(); ui->deleteButton->hide(); ui->useButton->hide(); } void LibraryForm::_dynamic_button() { ui->useButton->hide(); - ui->backButton->setEnabled(false); - ui->addButton->setEnabled(true); + ui->backButton->hide(); + ui->addButton->show(); + ui->deleteButton->hide(); _model->clear(); _model->setRowCount(4); _model->setItem(0, new QStandardItem("Favorites")); @@ -102,7 +103,7 @@ void LibraryForm::_process_list_click(QModelIndex index) { __fill_model(_model, _lib->getAlbumsForArtist(data)); _current_artist = data; _state = STATE_ALBUM; - ui->backButton->setEnabled(true); + ui->backButton->show(); ui->listLabel->setText(QString("Albums by \"%1\"").arg(_current_artist)); break; case STATE_ALBUM: @@ -110,7 +111,7 @@ void LibraryForm::_process_list_click(QModelIndex index) { _current_tracks = _lib->getTracksForAlbum(data, _current_artist); __fill_model_tracks(_model, _current_tracks); _state = STATE_TRACK; - ui->backButton->setEnabled(true); + ui->backButton->show(); ui->listLabel->setText(QString("Tracks from \"%1\" by \"%2\"").arg(_current_album).arg(_current_artist)); break; case STATE_PLAYLIST: @@ -119,7 +120,7 @@ void LibraryForm::_process_list_click(QModelIndex index) { _current_tracks = _current_playlist.tracks(); __fill_model_tracks(_model, _current_tracks); _state = STATE_PLAYLIST_TRACK; - ui->backButton->setEnabled(true); + ui->backButton->show(); ui->deleteButton->show(); ui->useButton->show(); ui->listLabel->setText(QString("Tracks in playlist \"%1\"").arg(data)); @@ -145,8 +146,9 @@ void LibraryForm::_process_list_click(QModelIndex index) { _current_tracks = _current_playlist.tracks(); __fill_model_tracks(_model, _current_tracks); _state = STATE_PLAYLIST_TRACK; - ui->backButton->setEnabled(true); + ui->backButton->show(); ui->useButton->show(); + ui->addButton->show(); ui->listLabel->setText(_current_playlist.name()); } default: @@ -243,10 +245,10 @@ void LibraryForm::_playlists_button() { __fill_model(_model, playlists); ui->listView->setModel(_model); _state = STATE_PLAYLIST; - ui->backButton->setEnabled(false); + ui->backButton->hide(); ui->listLabel->setText("Playlists"); - ui->addButton->setEnabled(false); - ui->deleteButton->hide(); + ui->addButton->hide(); + ui->deleteButton->show(); ui->useButton->hide(); } @@ -265,6 +267,19 @@ void LibraryForm::_delete_button() { _current_tracks.removeAt(to_delete.at(i)); } __fill_model_tracks(_model, _current_tracks); + } else if (_state == STATE_PLAYLIST) { + QModelIndexList selected = ui->listView->selectionModel()->selectedIndexes(); + QQueue to_delete; + foreach (QModelIndex id, selected) { + _delete_track(_current_tracks.at(id.row())); + to_delete.append(id.row()); + } + qSort(to_delete); + int count = to_delete.count(); + for (int i = count-1; i >= 0; i--) { + _lib->removePlaylist(_model->item(to_delete.at(i))->data().toString()); + _model->removeRow(to_delete.at(i)); + } } } diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 3617517..61d7a59 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -17,11 +17,8 @@ MainWindow::MainWindow(QWidget *parent) : { _library = new Library(_DATABASE_PATH_, _PLAYLISTS_PATH_); ui->setupUi(this); - connect(ui->actionOpen, SIGNAL(triggered()), this, SLOT(openMedia())); connect(ui->actionAbout_Qt, SIGNAL(triggered()), this, SLOT(aboutQt())); connect(ui->actionAbout, SIGNAL(triggered()), this, SLOT(about())); - connect(ui->actionPlayer, SIGNAL(triggered()), this, SLOT(player())); - connect(ui->actionLibrary, SIGNAL(triggered()), this, SLOT(library())); setAnimated(true); _player_form = new PlayerForm(_library, ui->stackedWidget); _library_form = new LibraryForm(_library, ui->stackedWidget); @@ -29,11 +26,9 @@ MainWindow::MainWindow(QWidget *parent) : ui->stackedWidget->insertWidget(0, _player_form); ui->stackedWidget->insertWidget(1, _library_form); ui->stackedWidget->insertWidget(2, _busy_widget); - _library_menu = new QMenu("Lirary"); - QAction *add_directory = _library_menu->addAction("Add directory"); - QAction *save_playlist = _library_menu->addAction("Save playlist"); - QAction *clear_playlist = _library_menu->addAction("Clear current playlist"); - _player_menu = new QMenu("Player"); + QAction *add_directory = ui->menuLibrary->addAction("Add directory"); + QAction *save_playlist = ui->menuLibrary->addAction("Save playlist"); + QAction *clear_playlist = ui->menuLibrary->addAction("Clear current playlist"); connect(_player_form, SIGNAL(library()), this, SLOT(library())); connect(_library_form, SIGNAL(player()), this, SLOT(player())); connect(add_directory, SIGNAL(triggered()), this, SLOT(_add_directory())); @@ -42,6 +37,13 @@ MainWindow::MainWindow(QWidget *parent) : connect(_library, SIGNAL(done()), this, SLOT(library())); connect(_library_form, SIGNAL(done()), this, SLOT(library())); connect(_library_form, SIGNAL(busy(QString)), this, SLOT(showBusyWidget(QString))); + connect(ui->searchButton, SIGNAL(clicked()), this, SLOT(_toggle_search_line())); + connect(_player_form, SIGNAL(showSearchPanel()), this, SLOT(showSearchPanel())); + connect(_player_form, SIGNAL(hideSearchPanel()), this, SLOT(hideSearchPanel())); + connect(ui->searchLine, SIGNAL(textChanged(QString)), this, SLOT(_search(QString))); + connect(ui->nextButton, SIGNAL(clicked()), this, SLOT(_nextItem())); + connect(ui->prevButton, SIGNAL(clicked()), this, SLOT(_prevItem())); + hideSearchPanel(); library(); } @@ -52,12 +54,6 @@ MainWindow::~MainWindow() delete ui; } -void MainWindow::openMedia() -{ -// SomePlayer::DataObjects::Library *l = new SomePlayer::DataObjects::Library("/tmp", "/tmp"); -// l->addDirectory("/mnt/music/Three Days Grace"); -} - void MainWindow::aboutQt() { QMessageBox::aboutQt(this, "About Qt"); } @@ -77,8 +73,8 @@ void MainWindow::player() { void MainWindow::library() { ui->menuBar->setEnabled(true); ui->stackedWidget->setCurrentIndex(1); + showSearchPanel(); setWindowTitle("SomePlayer Library"); - ui->menuBar->addMenu(_library_menu); } void MainWindow::_add_directory() { @@ -108,3 +104,54 @@ void MainWindow::showBusyWidget(QString caption) { ui->menuBar->setEnabled(false); ui->stackedWidget->setCurrentIndex(2); } + +void MainWindow::_toggle_search_line() { + if (ui->searchLine->isVisible()) { + ui->searchLine->setText(""); + ui->searchLine->hide(); + ui->nextButton->hide(); + ui->prevButton->hide(); + _cancelSearch(); + } else { + ui->searchLine->show(); + ui->nextButton->show(); + ui->prevButton->show(); + } +} + +void MainWindow::showSearchPanel() { + ui->searchButton->show(); +} + +void MainWindow::hideSearchPanel() { + ui->searchLine->setText(""); + ui->searchLine->hide(); + ui->nextButton->hide(); + ui->prevButton->hide(); + ui->searchButton->hide(); + _cancelSearch(); +} + +void MainWindow::_search(QString pattern) { + if (ui->stackedWidget->currentIndex() == 0) { // player + _player_form->search(pattern); + } +} + +void MainWindow::_nextItem() { + if (ui->stackedWidget->currentIndex() == 0) { // player + _player_form->nextItem(); + } +} + +void MainWindow::_prevItem() { + if (ui->stackedWidget->currentIndex() == 0) { // player + _player_form->prevItem(); + } +} + +void MainWindow::_cancelSearch() { + if (ui->stackedWidget->currentIndex() == 0) { // player + _player_form->cancelSearch(); + } +} diff --git a/src/mainwindow.h b/src/mainwindow.h index a229394..e9b4608 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -3,7 +3,6 @@ #include #include -#include #include "playerform.h" #include "libraryform.h" #include "busywidget.h" @@ -27,22 +26,26 @@ private: Ui::MainWindow *ui; public slots: - void openMedia(); void aboutQt(); void about(); void player(); void library(); void showBusyWidget(QString); + void showSearchPanel(); + void hideSearchPanel(); private slots: void _add_directory(); void _save_playlist(); void _clear_current_playlist(); + void _toggle_search_line(); + void _search(QString); + void _nextItem(); + void _prevItem(); + void _cancelSearch(); private: PlayerForm *_player_form; LibraryForm *_library_form; BusyWidget *_busy_widget; - QMenu *_library_menu; - QMenu *_player_menu; Library *_library; }; diff --git a/src/player/player.cpp b/src/player/player.cpp index 7eecd0e..577a4dc 100644 --- a/src/player/player.cpp +++ b/src/player/player.cpp @@ -17,6 +17,7 @@ Player::Player(QObject *parent) : qsrand(seed); _random = false; _repeat = false; + _current = -1; } void Player::setTrackId(int id) { @@ -137,9 +138,14 @@ void Player::seek(int s) { } void Player::play() { - _player->play(); _state = PLAYER_PLAYING; emit stateChanged(_state); + if (_current == -1) { + _current = 0; + _track = _playlist.tracks().at(0); + _set_source(); + } + _player->play(); } void Player::enqueue(int id) { diff --git a/src/playerform.cpp b/src/playerform.cpp index d0bb5dc..6bb2379 100644 --- a/src/playerform.cpp +++ b/src/playerform.cpp @@ -1,10 +1,12 @@ #include "playerform.h" #include "ui_playerform.h" #include "library.h" +#include "player/player.h" #include #include #include #include "trackrenderer.h" +#include using namespace SomePlayer::DataObjects; using namespace SomePlayer::Playback; @@ -27,6 +29,7 @@ PlayerForm::PlayerForm(Library* lib, QWidget *parent) : { _lib = lib; _player = new Player(this); + _time = new QTime(); ui->setupUi(this); connect(ui->libraryButton, SIGNAL(clicked()), this, SLOT(_library())); connect(ui->viewButton, SIGNAL(clicked()), this, SLOT(_toggle_view())); @@ -37,11 +40,20 @@ PlayerForm::PlayerForm(Library* lib, QWidget *parent) : connect(ui->prevButton, SIGNAL(clicked()), _player, SLOT(prev())); connect(_player, SIGNAL(trackChanged(Track)), this, SLOT(_track_changed(Track))); connect(_player, SIGNAL(tick(int,int)), this, SLOT(_tick(int,int))); - connect(ui->randomButton, SIGNAL(clicked()), _player, SLOT(toggleRandom())); - connect(ui->repeatButton, SIGNAL(clicked()), _player, SLOT(toggleRepeat())); - ui->randomButton->setChecked(_player->random()); - ui->repeatButton->setChecked(_player->repeat()); + connect(ui->randomButton, SIGNAL(clicked()), this, SLOT(_toggle_random())); + connect(ui->repeatButton, SIGNAL(clicked()), this, SLOT(_toggle_repeat())); + if (_player->random()) { + ui->randomButton->setIcon(QIcon(":/icons/random_active.png")); + } else { + ui->randomButton->setIcon(QIcon(":/icons/random_inactive.png")); + } + if (_player->repeat()) { + ui->repeatButton->setIcon(QIcon(":/icons/repeat_active.png")); + } else { + ui->repeatButton->setIcon(QIcon(":/icons/repeat_inactive.png")); + } _seek_slider = new QSlider(Qt::Horizontal); + _seek_slider->setEnabled(false); ui->progressLayout->insertWidget(1, _seek_slider); _seek_slider->setTracking(false); connect(_seek_slider, SIGNAL(sliderReleased()), this, SLOT(_slider_released())); @@ -49,12 +61,13 @@ PlayerForm::PlayerForm(Library* lib, QWidget *parent) : _model = new QStandardItemModel(0, 2, this); ui->playlistView->setModel(_model); _context_menu = new QMenu(ui->playlistView); - QAction *delete_action = _context_menu->addAction("Delete"); + QAction *delete_action = _context_menu->addAction(QIcon(":/icons/delete.png"), "Delete"); connect(delete_action, SIGNAL(triggered()), this, SLOT(_delete_track())); - QAction *enqueue_action = _context_menu->addAction("Enqueue"); + QAction *enqueue_action = _context_menu->addAction(QIcon(":/icons/add.png"), "Enqueue"); connect(enqueue_action, SIGNAL(triggered()), this, SLOT(_enqueue_track())); - QAction *add_to_favorites = _context_menu->addAction("Add to favorites"); + QAction *add_to_favorites = _context_menu->addAction(QIcon(":/icons/fav.png"), "Add to favorites"); connect(add_to_favorites, SIGNAL(triggered()), this, SLOT(_add_to_favorites())); + connect(_player, SIGNAL(stateChanged(PlayerState)), this, SLOT(_state_changed(PlayerState))); _track_renderer = new TrackRenderer(this); ui->playlistView->setItemDelegateForColumn(0, _track_renderer); @@ -71,6 +84,9 @@ void PlayerForm::_library() { } void PlayerForm::reload() { + if (ui->stackedWidget->currentIndex() == 1) { + emit hideSearchPanel(); + } _current_playlist = _lib->getCurrentPlaylist(); _player->setPlaylist(_current_playlist); __fill_list(_model, _current_playlist); @@ -79,6 +95,13 @@ void PlayerForm::reload() { void PlayerForm::_toggle_view() { int index = ui->stackedWidget->currentIndex(); index = (!index % 2); + if (index) { + ui->viewButton->setIcon(QIcon(":/icons/playlist.png")); + emit hideSearchPanel(); + } else { + ui->viewButton->setIcon(QIcon(":/icons/playback.png")); + emit showSearchPanel(); + } ui->stackedWidget->setCurrentIndex(index); } @@ -108,7 +131,7 @@ void PlayerForm::_display_track(Track track) { arg(_current_playlist.tracks().indexOf(track)+1). arg(_current_playlist.tracks().count())); ui->titleLabel->setText(QString("

%1

").arg(track.metadata().title())); - ui->artistAlbumLabel->setText(QString("

%1


%2"). + ui->artistAlbumLabel->setText(QString("%1
%2"). arg(track.metadata().artist()). arg(track.metadata().album())); _seek_slider->setMinimum(0); @@ -117,10 +140,10 @@ void PlayerForm::_display_track(Track track) { } void PlayerForm::_tick(int done, int all) { - QTime time(0, all/60, all%60); - ui->allTimeLabel->setText(time.toString("mm:ss")); - time.setHMS(0, done/60, done%60); - ui->doneTimeLabel->setText(time.toString("mm:ss")); + _time->setHMS(0, all/60, all%60); + ui->allTimeLabel->setText(_time->toString("mm:ss")); + _time->setHMS(0, done/60, done%60); + ui->doneTimeLabel->setText(_time->toString("mm:ss")); _seek_slider->setValue(done); } @@ -151,3 +174,49 @@ void PlayerForm::_add_to_favorites() { int id = idx.first().row(); _lib->addToFavorites(_current_playlist.tracks().at(id)); } + +void PlayerForm::_state_changed(PlayerState state) { + if (state == PLAYER_PLAYING) { + ui->playpauseButton->setIcon(QIcon(":/icons/pause.png")); + _seek_slider->setEnabled(true); + } else { + if (state == PLAYER_STOPPED) { + _seek_slider->setValue(0); + ui->doneTimeLabel->setText("00:00"); + _seek_slider->setEnabled(false); + } + ui->playpauseButton->setIcon(QIcon(":/icons/play.png")); + } +} + +void PlayerForm::_toggle_random() { + _player->toggleRandom(); + if (_player->random()) { + ui->randomButton->setIcon(QIcon(":/icons/random_active.png")); + } else { + ui->randomButton->setIcon(QIcon(":/icons/random_inactive.png")); + } +} + +void PlayerForm::_toggle_repeat() { + _player->toggleRepeat(); + if (_player->repeat()) { + ui->repeatButton->setIcon(QIcon(":/icons/repeat_active.png")); + } else { + ui->repeatButton->setIcon(QIcon(":/icons/repeat_inactive.png")); + } +} + +void PlayerForm::search(QString &pattern) { + _search_pattern = pattern; +} + +void PlayerForm::nextItem() { +} + +void PlayerForm::prevItem() { +} + +void PlayerForm::cancelSearch() { + _search_pattern = ""; +} diff --git a/src/playerform.h b/src/playerform.h index 335d3fa..9d74ad7 100644 --- a/src/playerform.h +++ b/src/playerform.h @@ -8,6 +8,7 @@ #include "player/player.h" #include #include +#include #include "trackrenderer.h" namespace Ui { @@ -18,6 +19,7 @@ using SomePlayer::DataObjects::Library; using SomePlayer::DataObjects::Playlist; using SomePlayer::DataObjects::Track; using SomePlayer::Playback::Player; +using SomePlayer::Playback::PlayerState; class PlayerForm : public QWidget { @@ -28,9 +30,15 @@ public: ~PlayerForm(); signals: void library(); + void showSearchPanel(); + void hideSearchPanel(); public slots: void reload(); + void search(QString &); + void nextItem(); + void prevItem(); + void cancelSearch(); private slots: void _library(); @@ -43,15 +51,20 @@ private slots: void _delete_track(); void _enqueue_track(); void _add_to_favorites(); + void _state_changed(PlayerState); + void _toggle_repeat(); + void _toggle_random(); private: Ui::PlayerForm *ui; Library *_lib; Playlist _current_playlist; + QTime *_time; QStandardItemModel *_model; Player *_player; QSlider *_seek_slider; QMenu *_context_menu; + QString _search_pattern; TrackRenderer *_track_renderer; void _display_track(Track); diff --git a/src/trackrenderer.cpp b/src/trackrenderer.cpp index 2d88cb1..339f2e3 100644 --- a/src/trackrenderer.cpp +++ b/src/trackrenderer.cpp @@ -47,7 +47,7 @@ void TrackRenderer::paint(QPainter *painter, const QStyleOptionViewItem &option, painter->setPen(pen); } -QSize TrackRenderer::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const { +QSize TrackRenderer::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &/*index*/) const { return QSize(option.rect.width(), option.rect.height()/3); } diff --git a/src/ui/libraryform.ui b/src/ui/libraryform.ui index 276cbc2..10e9499 100644 --- a/src/ui/libraryform.ui +++ b/src/ui/libraryform.ui @@ -61,8 +61,30 @@ + + + 0 + 0 + + + + + 70 + 70 + + + + + 70 + 70 + + - View + + + + + :/icons/artists.png:/icons/artists.png true @@ -84,8 +106,30 @@ + + + 0 + 0 + + + + + 70 + 70 + + + + + 70 + 70 + + - Dynamic + + + + + :/icons/dynamic.png:/icons/dynamic.png true @@ -107,8 +151,24 @@ + + + 70 + 70 + + + + + 70 + 70 + + - Playlists + + + + + :/icons/playlists.png:/icons/playlists.png true @@ -126,8 +186,30 @@ + + + 0 + 0 + + + + + 70 + 70 + + + + + 70 + 70 + + - Back + + + + + :/icons/back.png:/icons/back.png true @@ -135,22 +217,31 @@ - - - Qt::Vertical + + + + 0 + 0 + - + - 20 - 40 + 70 + 70 + + + + + 70 + 70 - - - - - Add + + + + + :/icons/add.png:/icons/add.png true @@ -158,22 +249,25 @@ - - - Qt::Vertical + + + + 70 + 70 + - + - 20 - 40 + 70 + 70 - - - - - Delete + + + + + :/icons/delete.png:/icons/delete.png true @@ -181,22 +275,31 @@ - - - Qt::Vertical + + + + 0 + 0 + - + - 20 - 40 + 70 + 70 + + + + + 70 + 70 - - - - - Use + + + + + :/icons/use.png:/icons/use.png true @@ -218,8 +321,30 @@ + + + 0 + 0 + + + + + 70 + 70 + + + + + 70 + 70 + + - Player + + + + + :/icons/player.png:/icons/player.png true @@ -274,6 +399,8 @@ - + + + diff --git a/src/ui/mainwindow.ui b/src/ui/mainwindow.ui index 0a50b25..b6c3180 100644 --- a/src/ui/mainwindow.ui +++ b/src/ui/mainwindow.ui @@ -14,8 +14,169 @@ someplayer - - + + + + + 0 + + + + + Qt::Horizontal + + + QSizePolicy::Expanding + + + + 0 + 20 + + + + + + + + 0 + + + + + + 0 + 0 + + + + + 60 + 60 + + + + + 60 + 60 + + + + + + + + :/icons/back.png:/icons/back.png + + + true + + + + + + + + 0 + 0 + + + + + 500 + 60 + + + + + 16777215 + 60 + + + + + + + + + 0 + 0 + + + + + 60 + 60 + + + + + 60 + 60 + + + + + + + + :/icons/forward.png:/icons/forward.png + + + true + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + 60 + 60 + + + + + 60 + 60 + + + + + + + + :/icons/search.png:/icons/search.png + + + true + + + + + + @@ -32,13 +193,6 @@ 23 - - - View - - - - Help @@ -46,24 +200,14 @@ - + + + Library + + + - - - Open media - - - - - Player - - - - - Library - - About @@ -76,6 +220,8 @@ - + + + diff --git a/src/ui/playerform.ui b/src/ui/playerform.ui index f26d3bc..f85698d 100644 --- a/src/ui/playerform.ui +++ b/src/ui/playerform.ui @@ -15,26 +15,147 @@ + + + 1 + + + + + 0 + + + 0 + + + + + Qt::CustomContextMenu + + + QAbstractItemView::NoEditTriggers + + + Qt::ElideLeft + + + true + + + true + + + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 0/0 + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + <h3>Title</h3> + + + Qt::AlignCenter + + + + + + + + + 00:00 + + + + + + + 00:00 + + + + + + + + + <b>Artist</b><br/>album + + + Qt::AlignCenter + + + + + + + + + + + 0 + + + 0 + 0 + + - 0 + 70 70 - 16777215 + 70 70 - Library + + + + + :/icons/library.png:/icons/library.png true @@ -75,10 +196,14 @@ - ^ + + + + + :/icons/playlist.png:/icons/playlist.png - true + false true @@ -119,10 +244,20 @@ - S + + + + + :/icons/random_inactive.png:/icons/random_inactive.png + + + + 48 + 48 + - true + false true @@ -150,10 +285,20 @@ - R + + + + + :/icons/repeat_inactive.png:/icons/repeat_inactive.png + + + + 48 + 58 + - true + false true @@ -194,7 +339,11 @@ - <| + + + + + :/icons/prev.png:/icons/prev.png true @@ -222,7 +371,11 @@ - >|| + + + + + :/icons/play.png:/icons/play.png true @@ -250,7 +403,11 @@ - [] + + + + + :/icons/stop.png:/icons/stop.png true @@ -278,7 +435,11 @@ - |> + + + + + :/icons/next.png:/icons/next.png true @@ -287,126 +448,10 @@ - - - - 1 - - - - - 0 - - - 0 - - - - - Qt::CustomContextMenu - - - QAbstractItemView::NoEditTriggers - - - Qt::ElideLeft - - - true - - - true - - - - - - - - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - 0/0 - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - - <h3>Title</h3> - - - Qt::AlignCenter - - - - - - - - - 00:00 - - - - - - - 00:00 - - - - - - - - - <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> -<html><head><meta name="qrichtext" content="1" /><style type="text/css"> -p, li { white-space: pre-wrap; } -</style></head><body style=" font-family:'Droid Sans'; font-size:9pt; font-weight:400; font-style:normal;"> -<p style=" margin-top:14px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:large; font-weight:600;">Artist</span></p> -<p style=" margin-top:14px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:large;">album</span></p></body></html> - - - Qt::AlignCenter - - - - - - - - - widget - - - - + + + -- 1.7.9.5