From 5465ec09d96ad059116e08a099362035c15d828f Mon Sep 17 00:00:00 2001 From: vspader Date: Thu, 13 Apr 2006 18:40:23 +0000 Subject: [PATCH] Total time display is now a binding --- AppController.h | 2 -- AppController.m | 23 ------------- English.lproj/MainMenu.nib/info.nib | 2 +- English.lproj/MainMenu.nib/keyedobjects.nib | Bin 49552 -> 49834 bytes Playlist/PlaylistController.h | 6 ++++ Playlist/PlaylistController.m | 35 ++++++++++++++++++-- Playlist/PlaylistView.h | 1 - Playlist/PlaylistView.m | 1 - 8 files changed, 40 insertions(+), 30 deletions(-) diff --git a/AppController.h b/AppController.h index aa4009917..055c31295 100644 --- a/AppController.h +++ b/AppController.h @@ -32,8 +32,6 @@ - (IBAction)donate:(id)sender; -- (void)updateTotalTime; - - (IBAction)toggleInfoDrawer:(id)sender; - (void)drawerDidOpen:(NSNotification *)notification; - (void)drawerDidClose:(NSNotification *)notification; diff --git a/AppController.m b/AppController.m index 52ed537c7..049e7d7ad 100644 --- a/AppController.m +++ b/AppController.m @@ -17,7 +17,6 @@ if ([p runModalForTypes:[playlistController acceptableFileTypes]] == NSOKButton) { [playlistController addPaths:[p filenames] sort:NO]; - [self updateTotalTime]; } } @@ -35,7 +34,6 @@ - (IBAction)delEntries:(id)sender { [playlistController remove:self]; - [self updateTotalTime]; } - (PlaylistEntry *)currentEntry @@ -65,8 +63,6 @@ NSString *filename = @"~/Library/Application Support/Cog/Default.playlist"; [playlistController loadPlaylist:[filename stringByExpandingTildeInPath]]; - - [self updateTotalTime]; } - (void)applicationWillTerminate:(NSNotification *)aNotification @@ -124,8 +120,6 @@ [playlistController setPlaylistFilename:[p filename]]; [playlistController loadPlaylist:[p filename]]; - - [self updateTotalTime]; } [mainWindow makeKeyAndOrderFront:self]; @@ -178,21 +172,4 @@ [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"http://sourceforge.net/project/project_donations.php?group_id=140003"]]; } -- (void)updateTotalTime -{ - double tt=0; - NSArray* entries = [playlistController arrangedObjects]; - - NSEnumerator *enumerator = [entries objectEnumerator]; - PlaylistEntry* pe; - - while (pe = [enumerator nextObject]) { - tt += [pe length]; - } - - int sec = (int)(tt/1000.0); - NSString* ttstring = [NSString stringWithFormat:@"Cog - %i:%02i",sec/60, sec%60]; - [mainWindow setTitle:ttstring]; -} - @end diff --git a/English.lproj/MainMenu.nib/info.nib b/English.lproj/MainMenu.nib/info.nib index 819b6c605..370fb4288 100644 --- a/English.lproj/MainMenu.nib/info.nib +++ b/English.lproj/MainMenu.nib/info.nib @@ -29,9 +29,9 @@ IBOpenObjects 29 - 21 513 463 + 21 IBSystem Version 8I127 diff --git a/English.lproj/MainMenu.nib/keyedobjects.nib b/English.lproj/MainMenu.nib/keyedobjects.nib index a0b007a1e0b87132df6f35998781b25c42c11305..e8640396c23c830e942999befae6b31b8f353c06 100644 GIT binary patch delta 29730 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 Se@jXE9~)lzAOHW2(*FSJin@jX delta 29271 zcma%j2VfM%_y6|2ws*U^^xhL7_0oIqz4x9AEd&TeK#{wZjzWL~q=-N$N*6&CM0zhG zT|l}>6A?rNY5%u-Aw-ey?=L2Ixp{5gyqWpDH*>pUEIxHKKD948ZC$@jsLp|KBZ7zs zB9e$A;)r-6nMfhhi7XEEri9y6*Vkj}3&=F&ZvBU&o3Ne$IOUxra zAr=rzh?T@DVlA5`D{+tbgZP_x zN<1T8lDLkPk#bT&sz^0yP1=yQqyyK!%eMWF#3wCXnf5Hkm`_k_BW5 zSxwfEwPXX?n`|Kml7q;hEEXYx9Ei~OCuPd*_3AYW1@l$tW7 zJPfJ0i!Pjsq@t*3Duzl%+No43gUY6g;gb@oluD+mDJ|7R^``oCz7C{@Qp2d>)Cg)6 zrK3Ke##0mE-DGMyWuRtLbEr?LrPK;)CG{1xnfjL6N*$)oP(MJjyr z`kR&_vym+{N1M|YI@*@Dqur1#=waHO?n!&oKD34ophM{hI+9MNQ|MGWjn1HR=~B9$ zZlrtDedzvlD?NlBNxx6?^au1<`XhQWJ(HeA&!az~7t>4V)$|(r3wje?ikIQ#cqLwe zSJ6A^UGzTs5PcY*O&`JM(%;iZ>67#+T6c~+iC*%7WP)Up<7nX|yy(nkdbXW=gZ9+0r5^N?I%}F%F}&TG}A(C+$xSm+G3O zgQcy~VbbB!_obtxqore{6Qz@+?b4~znbKL(dD2g$i=-XWiSf^s9(Dd{=sdFf^873nY1N7BEfkEKtf&t!y5B2&w(WUew#nV&3B z7B5SdWy&gavIbeBtiP;THbgd5HcB>DHcmE0Hd8iBHedFsY^iLSY>n(I*+$uSvaPZ` zvc0nJWv67PWfx=@W!GiD$nMI1ll>`sBzqwz<&<10H*RgpedUAXgXP2JBjkFyj+al6Pn1uUPm|A<&yg>bFOq*QUoKxK z|3EwxryD(n=l3O9wj!b9Pu@Kg9JLKQKJSVf8=Rgt5}Rg@@7b&7IDg`!r` zTkfmqqv)$>Q4FR=DOwf76vGwoD@G|sE5;}$Dkdq~6;l;66|HwjAte=6PYPYJ2QissSHxa zDif6XI%S2jQQ4v#s2rqhRlchn4ev%P$0#Q$Co4ZzE`+}pDHkh0Q+}>or`)XEr97-W z2A>^M9#@`LUQk|CUQ*tKzi%pUDIY0csw7C0ic>kOdZ_}H164t)a8;x#Mir|{Q>Cl2 zRK=gga-8%;X$6N4W>*gqd)zoEzuPc`)yCo?H*EC$#nAd{h~nFKWyA$pblm zP6M+1;PU`3kPD(CxL_`X3#IRIVO+Qlnj*MJE{coh;wTd?f;!73pdMTzH4GTsKur>7 z!zFVmTq>6crlfJ{Tn3lPWpUX+mBTr5x$u+6<%3x^Tmk3D6>>#f5LZmNVd)27)hpC1)vMI2)oav-jOi9W>TlIs)ZeMMs<)}Pt9Ph(s&}b( ztM{n)s`sh)s}HCTst>6TtBj+jhkh?Tip;_0U0rV*x* z=GJ}sijND?n&2;DbPvrejZ-OT$^Ta@& z7{n7KPqgr4J5LPO(>ysGUMxpiR6 z&~QER$`f@UuR(twuI56Lh?fAW#3B{+|Ad{&)Q~{q++>53&Ev(EAo1KO=Vc z$I^s>y&Y4v&4cn{jQwcUA)#eM`V1Tk(oe*|j(cvI~NQSH00x}krl{}a^K z2x?D)TBGCj1P`i5^Y{@SKPqbfzC58>Ti5C+41`hpI3%=J4QtjQe4MXs(6$Us9N5q{ z0A7cHEhmYI#&AIVh!4S@$%cDAmb!lre!FPQRPe!c(FafTe}gek|7pxD;$tvo4v+uL zU3_G-f^$T0T_UI-qY$-B9hn)Gq?{i}e_fBGKTI7iYu}d>w#- z4a>UR@kIafl{?Df>Ib%oT8uhY8+QA;hrjODI*_|wkW1=s@F@1Cs|Cp$iLaq|o5YB5 z^^5Grz602I3G6a~o&IljUt%w??-$wU`Z;uCKML%}1a_ssu6P^!$yYry{Nd-XGluz3 zz$e|`9vaw3kf~87sS}S zMGQ$2{v<7m@zmJHF-T}ptG03A>*+zVAjO17T?8qPZQmnb`V}ew9VRv zp>fU4-9$NpC}$q^6hyhbO_Upm@(@Mc1%tf7pthEO7~}_1G(74pNa^`DDM275M3j;q zVA~W0QW^#h8qv*`SdbFWqXB{x-#4U?iNdIoNgyRfkiw&WJnAous;1khk{Lu8nZ@IK z#Zld7I2>S;l_#!o!ZMT6rX4aQx2{Fo-35i9wwOml1+_tMQ(FdVD@5Z11Krc>kkIOe zKH7%<1%tHB&3#*Xck4wXh->1}NI_iq+r;(l3hE_+*~XwI2Ls~}9*q|mqu*p~6TANo z*fHGL{TLpN6}lhSz564f`=fY#zu5f)MG4IVhiLPLRSnX%HVteYApRNtDi}wD!m&J> zECzMr8yX358j%yaO#L{>AyAxu*D^qbRA(unXR`U1`v1dCCEx|oHWqtuNzvR&(L1zBj zWqt)RzZPX433ljY{SH{S@o2fgTJm<*oxr+VWOWX42{rcQAg~_h(HeoZ^6jigf%TZc zN}e>lAL7&LzaN459FH~%%yn=0uhR(^fc287^-@SmC*v=`c#}u_3XDx}Fp49#k-P(p zcSXkX&=|Xk(mSYh!`cWlNhX!Gn92ei zb2!5GO>?PSDi0~6@~Hwamy9e55CoS|6;#qIft5Vk&Z85~5M5n0c9g26>VUHz_$EhI z=Kj02AJrdPo5|;BFCOjBqaX9=Odg%ZqZ9RBU7J5Oh=O^EjO5WdJUS0{-|@!gn=zBumBHi z?Jj)`;bPbtWvzQHXc9FNxi4DO!K0t*UAw4}`&2tMl6*|}e#eKEI zx~RaEnOzc=i4w{i>xR}DL2MTpHJ6$P7SHF=wLE%|HYau)S6mMfr91Y z|0|?Cx`szro8gN`VjjGfaqq=4E^?La1ike$>nYB&7bOYK8^ke$>4>L7KIf(iD88qT!oRu50{D4Ioup0~$k-t6EOm}L53N5z2QH$AsY`~8*bwy<>MFGzKD|c$ zjO+ySexYs{X2yp4z-LG_{C%6cqepmjBaeP1Zt<8D3DpzEn7v0`SwdZ*ey8pmp2mhH z{(+2HL>=PMFZD^r_P?le9n?7lAgd7JPpF+8)J`PkN9rl{jCxMJpk5;8G=j{gQ5u7u zY^O<@G7OKKY6Wph%V>s5>Y(Mcf=9RV==Kg;NvjM_@fN7s5EdVSS{d5nJ&FZNd)i5$ zbf6u1bPtd2?Vz1$7arZkqq`xtA%Q4rY1FpDUZXuhdmtNu!xKG>Y%0nw$WMt+_H*=e z^hfkoqK$Mf+N*>1GCYX)lKE0+mr-YFKic2mnc(5t8D(@J9Yl?!LwNLi9(^W;(&5gy zro#_zpZ`z@jS8Ez+fF#=DE5T59Hda%JIDT!%A7SY4#0;CMR zOOG(LB_-0MK(>z78@4AoQKRWG9rPH(jU-Qzb%HUn=?@LI$>FLgXelsHqYIHG=uCQs zL7NDx%LA2kHiofx}_WA1)u*zivc)+t8r{Te@a5c>aROyE4_WOI|*GP5kU! zs&m)C-=uHBXLoo^!efzwJdAoZ@V^-x(?Zqv=?C;5^h5ej`VqB29QY@O{%Hjk^h;#S za%#Q=m0;9S2_YdRl!TT@45!k(8CW+YjM2Li)}Tu7^sdBQf_8ehG~H9Avg@RBG)(TI za+hG8RHxJZ)V*L0T0rfV_)7dxYl*)^L+v(LWw<&8BV!iB#~KNszAt#pj>jB@2@1g{ zi4w5olqk&-fS|BtG$gzGEa}X5YiJ#5NaSD4C z!*?XR2p0(np~hp0fLyR1RYSBbjmcVVV|`si|M1sQd`EHsC<(*wIcEN^xI-k6DAGj` z_&k;>;GP>r!UX8X6(TtW6a|LhT$hN~T<1a31(7RT(3$xrS`u@2$>lDXIwLo{i~o+~ z7VyJ70h{v${@l0m|JKDX%?s`F11Mv1+lg zM;9kGNNRymBMo->mi3+PLeivm0({ZKs!%VGqjSm!)b(vC=?i(@YiI$SE`*EJO#nk! zZ^0{#Z+L|i^AxEk;VaM102q1;Fbo^PW5alC zxBv`ex_hw}YyodUUq%VGy!SR+v|vkb!4@8k;jxjBvtjQGIa^82AZ?3}kEu`Iz%H@K zFlmbjB)1n@2EQ7e;nJbv=rr)y2c4rcWaz*_|JnnP5z==>R%MaptN23RmFh*-HXa+- z$=aeFKJ?$LBcGwNKY6WSx$adWX3S2c`=tj!{XtNFSXBQR zk1gdfKQ63-M`~RAT#T zErQky(E5$xs}i@w&H<8Ml>%OnUgxnddAx_yyqK<;tv)amaDxSL67KGGzXO2n~;I2FRqf0Gm~^Ht1@%JWZAZ;NdW`ME1VHqcTe5;5#|S7zS4c{s%{H7svKW zCy@i{0iq={48K)|by_l4me*-XaFv@#C3r%xcZs1-RnULP&F_-?O_fpZx=xM_hF_{) z$=xg~=#=YIZS3KWPO9C8y6XRuTi7LcUA0l}u}+SYhD+6*07!ODR@5oiv&Ja*N+;FN zhKib3RJUctom5LYsqS}DJv5xD`7dvkbZK|56}8JzBZr(Y6xRNiy`^0oOFB8YP7YJU z@!C#H)D!au*&0oN`Z}bQ;+rcb9t*j;IGf#VPV0GL5{KEK%-l zm|o|r^F>1Q{Pjd(VO{SbVwNQjkOy|i1Cf}j?1I9&dZCCQ98mpRN(e{^lZVS;FNCGx zcOgJ=3m&`AW50>1v>YnAc^Wt`5rY~+S{{q|$m4~8egHWlZf*=_Yjb%LGG>K5S)L+K zm8Z$m4oz@)W^MfNN_SdWuv-JE?{lW_3}$FHh~Hy4>I@QjO`P8gJklU%7m;Jgt+e zys?K!HKUX2W5d+OR~qNb(>tloHF}CvOFF4OGpMxx)t8KJeW}wL`?8^v=WD}cZQy_O zKeHRp#ZI2xojm&tvZnvy$?C>a(PY$fvXkeGVSLl8eqNA^iwOAahbE)Xe(t2YVW4{l zM!h*2U5kih9*?flTkFmAH9W4C>g@~DU|%=J*dKC_C2|kL@ZOHpU-HLG1?&_7;tn5JXgp7ZJXE1U#w<|;C;}BhieMfO;_(n3599F& zsDJ#s(yj0m>fDO(SGj|zCK%4`{Ka$3^4#XS5x%)~Z9}wgV~u~sYPi?etl(eAlAYqy zU(tx-!(SZ>7G?tie4E_-S3HK2es)=9gnI|!4*PlIz=r-pPha~tO;H8@t$~yQPZ0bY z`-Vj0$+)5({M#t{cSk?}*8oJ(pBkwcU_kqu$_D949#5`eO>zx8n$EU}oYyRRU>PB@WC2Ta(V$lCJO5xA2L$hm1UW#^ zRwTgTe-L~GGJoiA+Z71|6w`s_J&~mVSVk2M(Q3P8t;jG109(ZXeIbuSn))dazV=d^ zV!qg>;_(t=TiMXQ1GLF~watyMsoqm87OCLmrp!oHJ;>0%S=E&R+*d3Y30!%+!bng# z2tuT}?~tMYDE@*=)rB6z}jt!0P$uR!YyLYgtG|z&9ev* z_4+Ed!5Hok$FS!B`);0rbX{>st{25cX4-ux3Hn06|#YUs!i}S3w>exP!bQg1kX*lXnBe-RcrI zSP<806o+>gcMrtDoCk5bHbGuc_r{0N7$`Ol6WT($w>^P2SPX!1gwPh&z3m0G!CC=r z?+I-YZzMPj&Jai$Lz2&Bg+i8q>v-I-rzOPZUr8&YU>KlN0$r)WVqn}G?PiQQv|B)X zzG29~m^a$(83$;0g!Wv+k%19!w0kg~(B1>uOAIc9-sJaV{GnX~?Ky_`|D!#O35WIw z^0_?OaAr{28}j3s1ZYo$_6$SB;Dk5YGnh zR6~0Wv}YO0T5}3IR}3VLX%dniVHtz-4k72M98}i|cR=2#eK5^pb|maID~*(0BS{Tn z;FQSlwAK05`X;^33==b8uOU{i%NNZ1gbSk+x2yHSc&~dSCJC`9#eC4U3hRgTWV%*2 z1}>r)z8=!!)hD2L8cg@QLu_B7nZh%p**r?#qf4!Nf6n7Scw|B?_5u6*Y1fW-IK$ zKO@7Louo54L>|uUm6f8sm;;DTo+`_Q;_YatV(B*1#bgJG$r7dCAn(wDo18H6`;nYn_zFFlNmBoh^fpgwh-TEN^U%d@3{$a|!Qc_g7^ z*~}BVP+?0pQAee2$Opt?Bu!REeu;X?(})Mi2y&ZJD$7&Kl?quQH3;E#5`qp<1Ts3s z7V;)JU4qI}$iwnXq*iIGv{M8r9gty&UUEU2pmdc;=sSd#9INn@mC!}xIeCsO2kwsT zl3rD6h!Fz5g|iFTzM({pZ-NUJaD7Do2fzsIu)dAQF`J0ksx5!>*d87;(eD@QgaEgG<1oyh$tyt`>^R_!GEjp?@r_KWLEt zE{{RKZ}Yec>T>!~aFc__U-Fm_k8S1gAB58!9CCng9y5o!pMI16g-|X08P44G5j>`Q z0rz6`&2Ws);|F;R?jJnkaVSoJm*(g<2o+4I-wJ?e9qckZ3Kt|&c?{C|M{s)1<5E4t z;}3ZJHxV#B(iiGiLd6!!dpv%X#{!`WtN)Eh69pK9T@(+M>Hul-*iJo+1uYaTeDGiN z4|xJV_Zn#_gN+yTlp)5A18%+f1Clh}ed|BMP6s6vxHfi0YP>rJr!{c3P8kPxf07#e z4i!!Z0n{lIAq9uH$CxX`MN&gNfan@an!v2t%Ip<~%Le=_gaWt=H5Yr9Cfy#) zn|MbG?#*m_1rm9Ddtow^f2)TW3E~=t_8r&~Zgf(M@$^*i&k#8IBNvcglH16`!kvap z2nZnxU|7+*uFn6LEjlt$`Ti?olu+1&TUrpGyI)(dr}WkR8sk`ug*p%!PZkUJYv4pA z2%=Fq0}_VqLm0N?zRlWK!!`vO^O>|>8mN>qPskxsHz*nl^P;a1okB3fB-1uRfW5^+ zV-=eip`6=g-~yQV5MubD*Y+K*5GuHi#=Cox!6(_j2wY&y86sthr1E&t+s@*jNv94y9on@+2QdwjqQWo#uNzLPK^@l&r| zak}g3rSgdKdm>Ev1CPUe#Ka^i?$1Kuf~Rp1PY7;l(BJ)!tjK7g@<+m7c}`FSiy3}S zz+>kPJ4QGe?_U0wanjAot6j#yx_442j^YpL*U|`;4NzsbMZC?TB5(dg2&!fS9a*A*{#3 zLYvFu$HhJA7jff&#TJgFV3UI_>ze+tvERDRYtOGc{(sxi+3$Z2nvspUukv{{XsQ5V zsA225`FhN5l@@4Q-|5?+9nu+EoUVKxHqU$1@l_}_jPRseL9k(q2$!7W1LR8~P+ds09&xNvP*tUd7f(|>b! zVzGJM_+;{ZR@0^%}r zS*Fn;elm(qK;DrhLT#j79*)#fM~x&h4KQ4lZboXs#>-@z+=aLd;_egef=F2++=8eD zth$p z1%5`15gqL9aQ1mm{Ctbv6-0`%fQi6{9BA)Ng{JW%+-9witEXJ0zFP!}WU5xW4|1jT?I0jUG4pV&KS z7x{#yECICxkDx?A+MpZ+iTet;2@@>_6~?{`PBeN*U;%^g>m`CG1h@(z4&QIm>%gNR zqti@C5P$>B1x@f);DGm{S1^I?AOKl0-dT+h@BNwEvQlz^G*DK+T$X1@XhMtV;LK+f z@($Wd5kLy@(MCE;FqwvVA|a6Bc zy-GP%EFqB*#6{*? zvIBCiCT0y3d_09E54$2JE`1?)5gd%eeG7m1CP@cm9r`(XM1$4tZn zh#w%MfQ(5<2^3;_v|7k+z{96IGZ{#i8ugGA%o;+j*yWFh_@2T ze~V>%5eh__uAo>b1_ir_?O+$f@1^WA_A~Z#b~(F(UCFLuSF>x_wd@z{ zI`&I;J-dPZirvWie$9TvZelmH-?CfS?|^9=yB&V-WOuQ<**)xDb|1T+J-{Ah53z^Y zBkcEvmaz`7C(34 z30Luro1uDKv|+(GGn6)bIc{Pggft*^aN3Ioibi=*z z)~@2;!ZDMcfNw$>Zvq5_bQhrsF!USms`D2qIry$arH~7F3~|gE)}n3I6WzXlrTGV6 zCxvBKudt05R$IuzHpgS1A+xe zAe_4S`*+v!j~2h~WC8!sAM#p%XhpWHOIm>8@&t2Ta6osN!Gf1xAM^QF77c=H!CE8e z$@lkvEh?Z?xR)W+m5p}CfZgJ4Sr|S!93$$9?iT&ip&IC2=Li|LPwc7dZfSk9^H;Ulyf;GW~{_tP7=CIC?GNep0(Y@}O zrodlg9CBknO5qD%;<1Lf+Hw`jz$H+CdW^Io_k{vTf4vG8kIuE2tA|#sjp7gke3?kc zqs@9&@7C4Y7bYc#+ENRYa;SWH6Iuz4KL@aVQKn187s;~-8U7=_3qK`uq~^lDe;xmu z9Lrq5Z{h3k^Y{zoU1YcdW(auAvpv;C!=)aVP*yDrIZrZ z3QznFeo>x*KOju#JLCde<*D6>jX|Z>YR{lp}_XD2snBQNk2B4$E(G19)N|v#qAeBArv}uc(ex~ z5Genm89asyCC>(^0->M7W{y_ySPG9G5}?Wk0ZQcY7ztQI052Wlo(=_239mzod0el5 z4pmjmg0p@6Vd?Al5;;~j9`<%ye0dWZh>RSC@JZde1pRqhPhsP!ZN{9L{fR_b4 z2KC-CJO*(9zzM(?geVkGv^-YCV=!iF9;*QVM+g;bY%UK)T876{c~mZ78+<5_0!jkJ zv_ybJfW)9aC*UR%5fg!?`$ByeA^~bJ>0;TgACFBGp_wlaU)Y9>T=i-JHkn{tfK4Wv zOfvb<GCR0q>O{SVmvox7*VlbIuGSg(1$;T$MP3D-)HJNAfiOGC}=TuM3 zQ?pTwb})2In_g$YhlX+}#i4;5*1@4Hhgxyyb`IOiE@4M==%?&< z4z1^~gX}5x1c#9v>dm1OIqWKXlFi_-UpRClhy4go8^Dfm*eVY7W6yBdK6WODuH>-O zIyRic7IP@D*>LDm4%+}I?J|d2aM)IMJ%{b*PkFih&|4s z_t`WK1^z{V|8}!Kup>F_Hx5HNbPE~{h5v8UNp9JY+ZzUI)L z><1injYD-bhfy5%E8Ckr#$j97O7<3qF&wsr{f5JCaM*Vo>cC+SIJ6i0E{A^3VfQ$+ zH;1j@u)7>)%AwOa>@bIVvIE&r_E!#D$J%k|6%Jj_p|jaf*$o`FndJekuH;aE_A3sP zuxHtQ9O}lJacCd*ebCRbKe7io)QiKu;4meJMslb-htA^A2oBxC&f~C^>;VqD%uZoR zb{czu!+vJNIMjvR!(q1p{(i=xFeXRY=^P3M|IV)Au%qlz4*i%zKjX0N>>&;XTbFR? zTy_hGonXJ}dsyJ*LhwWr@**p$g&VJ9K zVAx`S({3ELgH^LIkT*FLTr+_~w{oa2hmPg2FFEWO`yl}Ja~wK{L%-$Fg)I0>%>og@ zp}`yme(_*ubJ*uBbZ-fV!3YNFI22TU!=YguMsuh&hpuAVIczrzBJ4Qq6uXtfzU43& zl#P%hq;hBghnhluaFxT>bLe<>7l*=t?qPG-pEz_r`w3(Pdsz#1t%!n5HzQ*fc7CV@2#4N5%ynE8@e1 zGm%U*lL8M9sbT7ve#{VN6f>6jm{|yimR~YoGkck%%vI)R<}UM?dCEN3F)x*Y%2Z`J zJT9bFsfWjd%vCOdhk|^o+y@T=xum?Jyr#Uaya5jaxud+Ryr+B!4+MFv{99$BGFREF zJXBsPA9xfW&c4UCv-2QF`-0sH>D3ts z<@4+XNUW}~*Vtd#`y2%i5V41+dHBF1K!V`mAK~ykk6d_8M-)>Oys~x>Q}Ru2R>i`>6Y?2dD?a!#{pfKQ@(_nwvVp6FJIFN19GFooTwrRQHAH zSEgT^ZZX|sy4Q5S=|R(@rpHWAn4U5{V|v!~yy*qgOQu&$e>S~u`rJ%nW@Tn$W@qMZ z=4lpVmTHz~R%6y=)@t^i*#~B0%*L5bFq>qy)@-ZUA+ytF7tQXPJvPV9NpspChxwo8f0;iqe_?@Im|Iv{SXiTTE$q!StVE{S*2LzSyfv#SZS?BT8*`uVl~HVv(+xE zBUY!aezZDg^^?^_tIJl`t!`K&){M2ewUf1%b+FF5!n(@3#=6eB!CGtG+q&7h#d@6e z0_)GM*I941K5u=&`jYh(>#Nq+t#4T0vO#UaZ8B|YYzEkjw3%kJz-FDzKAQtJhis16 z9JM)SbHe77%{iN&Y%bbdwz+O|+vce)VvE@lwzRFOt&6Rjt%q$7TYuXK+eF(8+iKfZ zTb(U$s~c@Q*0$Yts_h)xdA3Vz*V=BeJ!pHv_M+_#JHn2#li11ZJ z(XPp^k6k~zX1f-u-|BZ)Is7Pb5J-a9askw2U7=g2TKP#hn@~z4n7X>ObUk-hct%_ zhb)H@hgyevhw%;*9X@oJ?9lEo)nU5B42M|`OC8oY>~};R%^h7G!yQW;>mB8*f({iVkPOF{PI(_4` z!)ce(Wv8o7KRf;6bi?VE(;a8bIl?*0ImS88Il(!}ImJ0m=bYi3?_A?t=iK0|bsp?I z%31IHf%6#Wsm^np=Q)4lyxDn+^H%3=&O4lUIiGhibuo9bbg_1^b+LDGbm`&J%f;J8 z;}YW%=aS%(r(I1?9%2k%w>klESK3Xb6w`S%y(Jf^0mwFE)QHDx;%1u z?DDtEGnW^xh%4=?Gj%n0wRE+1b#v9Y2D%2jhPuYPX1Hd#_H%7^ZE+psI@ooHYn$t2 z*S)U$T@Sh*cKzP<2iN1SCtXjwUUa?Vde`-y>wVYfZZbE8o6?PSvvG5Eb9YN{OL9wb zOLI$i%W}(c%X91Jw%Bc{+h=ae-B!4*cl*k1quVyO9c~BRPPzT9bEn)nceT5jyM?=@ zyN$b@yMw!vyR&;Q_fYq6_el3>_gMFM_eA$(_j>nP?q9o~bpO>u;=y@XdboM?@<{M# z^l0`N>Y?)(?=jJ1lE+6L(>!K*EcRIH@tMbRkFPwodhGK!;c?mHmd8U+#M8~w!?TBH zFHbK|A5T9|jc0&oq-Rc=XNG5%XO3r{XMtytXNhNvXS?S#&*`2sJQsN`_FU@undg_D z2Rx5^p7p%%`K*Uk59b~pJ;Hk=^o;MB*fY6jYR~kZnLV?6=JhP>S<wB*sypDTa_xjE253d*Aw6~qNgSV%*uXl=f zv3G;F*1NZNU++oYA9+vlp6Wf_dxrNc@0H#gbl!Wt_j{l6KI47X`@Huv?-xFZ59UMo zP(BhLGapMI8y|Zg51$@B8lOm?XrBz9ET0^oJfBvdp+4{U4EK50XQa<4pLU<=J~Mr0 z`^@uM=CjskpU(lGb3QkHZu|V|^PA7_zMQYx*UZ<#*UHz%*Us0+*WWkLH^evGH^Dc_ zH``ZN=3C+0?Aziy*msC;o9}er8NRc8XZz0e{lxcE-_L#5`5yB<;rp}iFTS^Y@A&@a zr}E?c%>AtVZ2auutI*DVK7M|FX@2E?m3}pTb$*S0WBtbaP4fH5uibB&pTX}FzYf3k zeqZ^0!0sm z<6rNu_3z`~?BC))%zvc+DE|-rr}$6xH~4Sx|Jr}E{}%sk{yY44`5*8<)O2XpYQEHL(0r}=QFC5%QFB>yO>ya;p%bPjY2^a$*!3-k)~35*Ji2}}(v2`me23hW!$ zKd>dRJ#c#9%)pNW=LF6RoFBM3@O<3z(AuDNK^uZj1)T{x7xYum z#h}YUSA%W@=^h57!9*|>EDiPv4h#+n4iAnDjtPznP6*BoE(k6TE(>l9ZVJ{1PY#|M zJUw`3@aEv}g0~0n4BivGFZe+4iQrSgSA(wy-w3`Pq6#qyF$=K>u@12fu@CVI@d=3t zi4KVkNeJl^(m$jnWKhVEkhYLvAtOSjhs+3B6tW~_S;%r-$ia{!AwPs14>=WbCgg0$ z-H>~ss!-cdhft?b*U+TU)X;qOjJm$zjXFHisP!I~w*w*s-wVVJE^)hn)@kDePj{rLe1Ef5G=3 zOv6LM!^5M(W5W}|@#OHd=}XOYeZvQbzZ?ER_=NEG@R{NB!WV^q7QQNcefYQG`@@fg zUkbk+{y6-31QH>QP)2x11Vm&+lt$D>G(e3yvn6J0%#N7d zG5ca3#ypQjV)0liRvIghRmO6$rm^O+PO-tUaj^xlRk8K4+Sop^{bTj9Q(|Ywu8duy zi~S;YeeA~AU9o#&_s1TJJsEpC_EPN4I3ms}&NtR-+2G{fcU)l zruaVb{o@D34~!ojKQ(@4{OtI7@eAV@$1jW5Esy^yerNpt_@nX1;?Kojihq=VCnyrE z65JBJ5<(Nw5;7BV67my@5~>qw6B-iUN%$;bMZ)TYFA~-#Y)sgcuq9z@!j6RV3HK5n zC!&dXqG_Tn`C#&qovgc?;+*1^;*ruL#Vf@(B{U^GB{C&0 zB|RlGWpK*Slwm3Fro5N(eu_S2bjp~N$tiPF=BF%7S)8&gWqHb~lr<@PQhrIfm2x}f z*OVtI&r)8bBB@lWU8-klP-=2&T54u$PHKK?RccG>;MAe1!&2W(9h*8Ubx!IhsS8p& zQa7aTN!_nYJ(T)=>ao=8sgF{hq&`c1nTDl7VLXjZb4x2uD@&_Pt4XU*)28)F>z_6t zZBW{WX>-y#(w3yHPTQWgD{XJufwaSEN7Ig{ol5&L?R?sWw7=7yrz7cjI+0GN%hH|G z6Vj8@Q`6Jav(j_Z^V2KRho`@nJ}RA0{~&#A`h@g_>AD^1yVLik?@vFJ{(brn>1Q*j z3~7cULzQ8YVU}T;VVz-@;h5o^(JMof5tI>{5s?v==ElrBnZITJp7|j2&&vGnUZ1ZfZY};&y zY{zVuZ1?P#?8fZg*?qJ7XAj68ls!0mNcQmTnc1_m=VgDIy&zlHk-aqgyX=eESF*2V zU(ddoeJA^F_Ji!lIjS7{9N!#GPEby0PDD;hPH9d>PIXRQPGioX96o1E&iI^3Ig@i1 z=B&%vkn?rUrkpJ~2XoHnT+F$Wb1mnWoZoU@=3=>IE}bjOWpkZ!U2{Ehd*piM#^)B~ z7U!1bR^(Ra>T>zqF}mDwxf60H<$jdAIQQ$^{key7zt8<4_eAc)+()@ja-Zft&wZJP z=9%X8%!|m2&Wp=S%uC73&8y36%{-OL|^Y7(9$bXpsSN@ayrv=Ia zw!pr?w?I=6R1i`SUQkg`T~JrhP|#G+r=VX!d%?7V#Rc07b`|U`I8bo7;Ap|Ig1-vQ z3j+#+3&RQ{3u6l73lj^A3QKi`6@^uWwS|1)n8NXe6AM2ooKiToaCYI`!j*-q3%@8_ zU%0VwN8$0plZ9sr&lO%Myjl39@M+VeUj~AaTzEb>i@r~l!#rKQmkcR+r=-1PVaei>WhI~MN>-NaDmhtlrsQ17g_6sq(o&1k9;Feb*`;-* zgGxu2jw_u|I=QsHbb9H`(vM5$mM$$_Te`V)SLwmh6Q#eGJ}Z4$hLsUzbQv6sm6?}W zmD!frmt~Y?m*tfemX(y1msOS3mNk?$mGvnbTsFMyy|PhdeA(!-FUmHRZ7JJUwzEvP zr)+=Op|bDGj+LD#`>E_w+10Y2%h7V8oGzD@Gv#c#y4<|nq1?ILt=yx$uzW!I*zy_W zGs|a}&ny45d{O!0@+IY;m9HpYUB0n=Q~8$it>q`mPnVx9|Ec^^`IYk96?g?zA+1nU zs47e<%qlD^Y%1(4oGM%^JSuurBv+(WWa=t%Dsn3dDvB%0Dh5?dtC&$St73M=yoygN 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 diff --git a/Playlist/PlaylistController.h b/Playlist/PlaylistController.h index 2fcd19aa8..46b255393 100644 --- a/Playlist/PlaylistController.h +++ b/Playlist/PlaylistController.h @@ -15,6 +15,7 @@ NSArray *acceptablePlaylistTypes; NSString *playlistFilename; + NSString *totalTimeDisplay; NSMutableArray *shuffleList; @@ -33,6 +34,8 @@ - (int)insertFile:(NSString *)filename atIndex:(int)index; - (int)addFile:(NSString *)filename; - (void)updateIndexesFromRow:(int) row; +- (void)updateTotalTime; + //PUBLIC METHODS - (int)addPaths:(NSArray *)paths sort:(BOOL)sort; @@ -48,6 +51,9 @@ - (IBAction)takeShuffleFromObject:(id)sender; - (IBAction)takeRepeatFromObject:(id)sender; +- (void)setTotalTimeDisplay:(NSString *)ttd; +- (NSString *)totalTimeDisplay; + //FUN PLAYLIST MANAGEMENT STUFF! - (id)currentEntry; - (void)setCurrentEntry:(PlaylistEntry *)pe; diff --git a/Playlist/PlaylistController.m b/Playlist/PlaylistController.m index d5a7a72ff..d18984ced 100644 --- a/Playlist/PlaylistController.m +++ b/Playlist/PlaylistController.m @@ -134,6 +134,7 @@ [self setSelectionIndex:index]; + [self updateTotalTime]; return count; } @@ -193,13 +194,42 @@ [self insertPaths:files atIndex:row sort:YES]; [self updateIndexesFromRow:row]; - + [self updateTotalTime]; + if (shuffle == YES) [self resetShuffleList]; return YES; } +- (void)updateTotalTime +{ + double tt=0; + + NSEnumerator *enumerator = [[self arrangedObjects] objectEnumerator]; + PlaylistEntry* pe; + + while (pe = [enumerator nextObject]) { + tt += [pe length]; + } + + int sec = (int)(tt/1000.0); + [self setTotalTimeDisplay:[NSString stringWithFormat:@"%i:%02i",sec/60, sec%60]]; +} + +- (void)setTotalTimeDisplay:(NSString *)ttd +{ + [ttd retain]; + [totalTimeDisplay release]; + totalTimeDisplay = ttd; + NSLog(@"Displaying: %@", ttd); +} + +- (NSString *)totalTimeDisplay; +{ + return totalTimeDisplay; +} + - (void)updateIndexesFromRow:(int) row { // DBLog(@"UPDATE INDEXES: %i", row); @@ -236,7 +266,8 @@ [super removeObjectsAtArrangedObjectIndexes:indexes]; [self updateIndexesFromRow:[indexes firstIndex]]; - + [self updateTotalTime]; + if (shuffle == YES) [self resetShuffleList]; diff --git a/Playlist/PlaylistView.h b/Playlist/PlaylistView.h index b53ab6247..b2c7239de 100644 --- a/Playlist/PlaylistView.h +++ b/Playlist/PlaylistView.h @@ -14,7 +14,6 @@ @interface PlaylistView : NSTableView { - IBOutlet AppController *appController; //needed to update the total time in the main window title IBOutlet PlaybackController *playbackController; IBOutlet PlaylistController *playlistController; diff --git a/Playlist/PlaylistView.m b/Playlist/PlaylistView.m index 0af980437..1bb6d5b27 100644 --- a/Playlist/PlaylistView.m +++ b/Playlist/PlaylistView.m @@ -54,7 +54,6 @@ if (c == NSDeleteCharacter) { [playlistController remove:self]; - [appController updateTotalTime]; } else if (c == ' ') {