From 02030014f9372d738ae6a519ec71c464dbfb0f6a Mon Sep 17 00:00:00 2001 From: James Bunton Date: Mon, 3 Jan 2011 06:27:48 +1100 Subject: [PATCH] Added icons --- English.lproj/NotiPod.xib | 156 ++++++++++++++++++++-------- icons/playlist-books.icns | Bin 0 -> 1044 bytes icons/playlist-cd.icns | Bin 0 -> 907 bytes icons/playlist-downloads.icns | Bin 0 -> 1042 bytes icons/playlist-folder.icns | Bin 0 -> 826 bytes icons/playlist-genius-mixes.icns | Bin 0 -> 841 bytes icons/playlist-genius-playlist.icns | Bin 0 -> 1035 bytes icons/playlist-genius.icns | Bin 0 -> 958 bytes icons/playlist-itunes-dj.icns | Bin 0 -> 992 bytes icons/playlist-itunes-u.icns | Bin 0 -> 818 bytes icons/playlist-movies.icns | Bin 0 -> 926 bytes icons/playlist-music.icns | Bin 0 -> 842 bytes icons/playlist-playlist.icns | Bin 0 -> 1032 bytes icons/playlist-podcasts.icns | Bin 0 -> 1024 bytes icons/playlist-purchased.icns | Bin 0 -> 1027 bytes icons/playlist-radio.icns | Bin 0 -> 927 bytes icons/playlist-ringtones.icns | Bin 0 -> 876 bytes icons/playlist-smart-playlist.icns | Bin 0 -> 1027 bytes icons/playlist-tv-shows.icns | Bin 0 -> 854 bytes libnotipod.py | 32 +++++- notipod.xcodeproj/project.pbxproj | 80 ++++++++++++++ notipod_gui.py | 13 ++- 22 files changed, 234 insertions(+), 47 deletions(-) create mode 100644 icons/playlist-books.icns create mode 100644 icons/playlist-cd.icns create mode 100644 icons/playlist-downloads.icns create mode 100644 icons/playlist-folder.icns create mode 100644 icons/playlist-genius-mixes.icns create mode 100644 icons/playlist-genius-playlist.icns create mode 100644 icons/playlist-genius.icns create mode 100644 icons/playlist-itunes-dj.icns create mode 100644 icons/playlist-itunes-u.icns create mode 100644 icons/playlist-movies.icns create mode 100644 icons/playlist-music.icns create mode 100644 icons/playlist-playlist.icns create mode 100644 icons/playlist-podcasts.icns create mode 100644 icons/playlist-purchased.icns create mode 100644 icons/playlist-radio.icns create mode 100644 icons/playlist-ringtones.icns create mode 100644 icons/playlist-smart-playlist.icns create mode 100644 icons/playlist-tv-shows.icns diff --git a/English.lproj/NotiPod.xib b/English.lproj/NotiPod.xib index 0039003..d184c40 100644 --- a/English.lproj/NotiPod.xib +++ b/English.lproj/NotiPod.xib @@ -8,9 +8,9 @@ 461.00 YES - - + + YES @@ -357,18 +357,26 @@ 256 - {327, 338} + {327, 322} YES - - + + + 256 + {327, 17} + + + + + -2147483392 {{313, 0}, {16, 17}} + YES - selected + icon 4.000000e+01 1.600000e+01 1.000000e+03 @@ -392,7 +400,42 @@ - + + 67239424 + 33685504 + + 0 + 0 + 0 + NO + + 1 + YES + YES + + + + selected + 2.000000e+01 + 1.000000e+01 + 3.402823e+38 + + 75628032 + 0 + + + + 6 + System + headerColor + + 3 + MQA + + + + + 67239424 131072 @@ -414,12 +457,11 @@ 1 YES - YES - + playlist - 2.810000e+02 + 2.580000e+02 1.000000e+01 3.402823e+38 @@ -427,21 +469,13 @@ 0 - - 6 - System - headerColor - - 3 - MQA - - + - + 337772096 2048 - + Text Cell @@ -478,7 +512,7 @@ 1 - {{1, 1}, {327, 338}} + {{1, 17}, {327, 322}} @@ -492,7 +526,7 @@ _doScroller: - 9.970502e-01 + 9.969040e-01 @@ -504,6 +538,21 @@ _doScroller: 9.969512e-01 + + + 2304 + + YES + + + {{1, 0}, {327, 17}} + + + + + 4 + + {{32, 160}, {329, 340}} @@ -512,6 +561,8 @@ + + QSAAAEEgAABBmAAAQZgAAA @@ -1048,6 +1099,7 @@ + @@ -1068,6 +1120,7 @@ YES + @@ -1076,7 +1129,7 @@ YES - + @@ -1085,25 +1138,15 @@ - - 484 - - - 485 YES - + - - 486 - - - 490 @@ -1137,6 +1180,35 @@ + + 517 + + + YES + + + + + + 518 + + + + + 520 + + + + + 521 + + + + + 522 + + + @@ -1210,14 +1282,14 @@ 470.IBPluginDependency 472.IBPluginDependency 477.IBPluginDependency - 484.IBPluginDependency 485.IBPluginDependency - 486.IBPluginDependency 490.IBPluginDependency 509.IBPluginDependency 510.IBPluginDependency 514.IBPluginDependency 515.IBPluginDependency + 521.IBPluginDependency + 522.IBPluginDependency 56.IBPluginDependency 56.ImportedFromIB2 57.IBPluginDependency @@ -1328,7 +1400,7 @@ - 516 + 522 @@ -1353,9 +1425,9 @@ id - + IBProjectSource - NotiPod.py + notipod_gui.py @@ -1393,7 +1465,7 @@ id - + NotiPodController @@ -1410,7 +1482,7 @@ outlineView id - + diff --git a/icons/playlist-books.icns b/icons/playlist-books.icns new file mode 100644 index 0000000000000000000000000000000000000000..0f08b4ebed9544bd60b5d7d0857239d7bc6d278f GIT binary patch literal 1044 zcmc~y&MRhMU=hhIHa22lU}lkEU`R}Fs;;Z6t*@!AtF6sua45O{@XfoApBg^YfBf*W zmced8-}I?dmu)$8_R5_%XKEO1c6aaIv0>$+`I}cPY&~1UV7a^d!jaP_Pn|wn`AD~GmiS+{)2(zRuKY8dP`)t=eAcFpR=OBMvLFWFYd;IORX;D%L8mdu$wac;r3 zS_bDCCF_?gpEYa7^!^!H+kqDJ7A~JPcXEGE&xD!jJ8Br5n!;OKx+nFu*SAkh-&@Qe z@8gyb7!ZyNsla-1LOVq%_ZC5e(wi2HsYdww}R3 zaVdT&jzHg=csg2|TiZFau>m9B(mvAL#|Mafy?wl$7*t)4-+T>={CB<#Dox3G$!S#` z3)k*A^6H5momJ>~ z&6`1`(yOngFh4&#J3YA2{u0oDe9zXB{LJj+q{tMj3%(2*X^y4oSxHIp@!_#1K)za> zQ$c)6bW~VGbiC089|pA$gUG<}=&)eVfDprr&I}?(DvtX4MmFxwzJX?`hCuJ@*_rF> z85*0iu@zh7W-~A_axgGd{GWU7$+M@=9$q+mW?MeP<^TWxe*!?tBRTTJ0UkUY&H>^SNAJfopyGHu4shx8mo7Hn)S!lhPaSf+NGFVa@fBlHli;$P@i|JpIJ;pJQ+zE$Uq`)1`rSQTo(|ug*DpZKimKc70y+d>Z=%fcxjOZu)dugGTG|N z7-f^uqyd->$5qxG1nJ!1p+mC*8FCrTu<{5D8E~!dG?@Ye+raW zD;gZ1oG3-0^G$-TAvNXpOA&~#Zf)+6s;5IM?qLKfTKZrR-MA*y`agRY5lH$rv>+17 zv=f9c=tDoK($VTM1I3uNdfyuzz=U2a)Y5eqsL4*2MPRjF->#)APn*Z<)r1o5GY-uJ zL($}OiMaOxde0m1>c%xALXq>`i)#SKX57mQ@>`dy9y=q`M-k}ej4xn&`kysaCkX62Un;d$}v#`Fux5?Uv<=Fqv_M9W(RCbc7vUa3! zE!EK7sS++c{w~#Qeq03y@c%P@028eK8?5j#IIf8P9Yhs{0NEv~(4Rp-Rg#SWJBoX0 deF0O8U(k-Yuxd+S6_zkvAD!2du literal 0 HcmV?d00001 diff --git a/icons/playlist-downloads.icns b/icons/playlist-downloads.icns new file mode 100644 index 0000000000000000000000000000000000000000..447f67beede299cc7246ffa9356568786016a55e GIT binary patch literal 1042 zcmc~y&MRhMU=hkJHa22lU}j=qXcS`;6%!K`72s}S;1=7tb<>75D_3-^F63-v;1Qc# zQjnPv7ioHHcMe+vL%rzCs*2+5)OgExxAvs4FffSDYieq!F3z(1^Y+$qZUzRCCB2g- z_coN;n`kSf3Ih47X6tHe^wsA^1oBa>UI~uDe1LcK1U7hT#%}pXFv^UKF%KHfyc)2?}*n};Z+}%Eh52)c_ zl8>ir=!$vM`g;}v6$l?(ALSdoeEFQ2QzkA28Myn<#>iFsw{P08ZuKf&1_n+pK}l6f zAue`y4t5R>21W*j21PanMFn|zabBSJ6<$4m`uM@UyK|4t;0AhM@xhhzCyyT3Q}F1* z1P-A06`tI@cInLVLuH>HU1(!tV32=)|L(187f+V|`}F7t&^7X}o;-Pc|MunLqyU?0 zNd^Yl_pc1}v>)6$x^(W;*nAHS<2O(4-@S45Hc0;G zcLy7b_phHnxO?k?I8ffl!`0Ew%Dm$F!+TFe85rDU8vMN6obA)!ynOcfxd>3hmt21z z&xDsB-@SVF3dooF_cA#!`r+3vAK$%s590s%cPHV>pP%2qfBpPPh=GBJM?^+lT7f1URiZd+qRb?`D7#K|F^;w#m zG!-ZMd$~rcGBB7do?&lo(N~$5nHpcI&cI;2dWnmJ?X0$nqTH+|Am3!mI&U|pWm8%z zi}E@^@)02cJ{~TPu}u}ly+Hkb#+6ZFLH=HGliF%4Cn^Iq?8u3Z2uYYbsjZ=Q8jx?i zZE1RJ;{2KYU9C+sm4N*9+t;Ko-vaW|{CNrt41$6Z3OWiB0=&F@y!-+T#TL2Q3=E7M z3}HDrIk~xcdHEK=1Ofy(|6yPQFisg5a$(&6|92<=`FRNb|3jP%3c&AO1faE7U{S|xUlF%g?n zDJ=0v$dRd;i6o2zD9HGgaukm!q6;o;uG!}7FQ`}7DD-ple!uVYW6$%xHKIBRz_Fql zN#13EWKI|0S#6M#rB=UHXSG6dCRc(<%ema#+)H^^ax;PJ^ZET>y>l+R$!IX-z(uoZ z+B9vP`20yfG^ou1wvHGkbVDDs8qK>NH5=Id{eAs?n)f|wRd;t63s@a*RNbns&W=v( z^;KmyFcr#nWt&1Fm%ozBTUfw+-rOvE*({SiYig3cU;?v2Ds7N7N~MiYq)!`}z^bjU z6XSJh;`+z+;#DIXf(DN ziLBAV0Cf{emZ$&~nD_g3#NrD zpkiY=xQqpps3mOibhsRD(*f#W_l1S|`JfOgDW4yGsn3UbQ$357$h+ijhR5xu?t;)w zwpbaY6+MYt2>I>TAb$WP1>#zOBnBLzSdS?Fcdh@8(8qnPcN^i^$LsYx0>^$hj`N5o oEKQQULdjJ3c literal 0 HcmV?d00001 diff --git a/icons/playlist-genius-mixes.icns b/icons/playlist-genius-mixes.icns new file mode 100644 index 0000000000000000000000000000000000000000..9e744bc520f0329553ea05d73f87ae6d8fdd868c GIT binary patch literal 841 zcmZ9|*-ukZ5C`BN5W(6@%e|$glucZSAWNW@EiMES3^5uLjhcW#B|Z?5ecwE+r4ir1mH}Q_`DOY9z%!*A zP05Fol3++Q81#AuL9_UIVL=W5kDun}RovrmUXH1uvi4j0B(i$)?dw71NW~HScOW#F^-@Yz>QIf^knduLH zP&y`Ty(BvZBHe1mC-pn-j=gTUA~XjG+5@cXPE2 z5S#tHq3}~G6$*NIYD!8{Vj>KNGc19Ibq@QaO^bjRW23`ra-gZBy)^)u+RE}0Zmrqe z(XN5Ip{}~ppB!K|n@qGs)>vOnOJst~SCE4iBgh5*_~sm+Y}~qa^TzdS3?ApUnad{? z$(tMN>-=wLH`mwJl3`d`Uj7+J{nRbC;bVY)l|IB!KgH$R+SDWd*XqhjG=pc5PR9bh zpbgZrfF1}}uUx*Am4%C$nY14UpE$RBe=iD=O*=S2r=#6_d%LF)!7t&Ca__tMB5-nh z+qHF!97%Sc#PQvoZC5y1lq8iTK@vqtlq@Jqe)s_JIE;f)Ls46Y`i6$aM~s>UzbT4P z%u^-#Auozi%2N%wkQb$>;Hi%Mcd!Cg+>PYt&-*O>1F#Mb4UdeH4@OICyU}REc`}mgc+rA3p3LM%UbMl;QzyBJ7e<(P>H;**iHS+OUE^>#ol{d08gE~f TE+jP6H#9Uvr}Fit1OLY#V)HR; literal 0 HcmV?d00001 diff --git a/icons/playlist-genius-playlist.icns b/icons/playlist-genius-playlist.icns new file mode 100644 index 0000000000000000000000000000000000000000..75a9afab4a0c3daf6dff32f8f99ec0706269b661 GIT binary patch literal 1035 zcmZ9~ZA?>F7zgmb6s5hil}-!H%oTJhQ|C~oa7V=wK@xQsw}dQviQAk81}!h0pk>(G z7wLcsPPS5+bQ%!c>auPlMW7U+E!z+rapGL-%*4bco45}o_@TYGJ1jA~@qGK8|2fHd zp7WF()M$a&_!4c#79b`ZgTy35A|qcUql}18y7PM|6b$~>?){W9KrA008tm_L_o{1+qH+hM| zd8X)~&DykkM@E|FX<+5|NB3&CuBtbe9y(B-2s|^ix1;;HXDh2qO@`J5AA8s3vg|h> zE_|=CJqcJ*xUKt(+>ei6s3>Z2kbH&Xoy=`-7{0OQw4FXL2MUrqlvPLQW+!dwXzf}K zB+*qP!{zC!<{n4e#bv~sb-t16O}P$d=jTq6CwAGrz* zdGu%tN`lAj7Be~5NrN-bW{XX z@ElEl!o@%pKeqr!_%;DGPxu($^*}A(~0+3f7> z#@(5{HM=n?cx^2uK2#73MZAC@YJ>C#av!sH9%zH zDXz$zm7PQ&1Guw6WQ&ca#9>l)Ti6!Ve5#dHEa8w8s9|eZH>qISD$LdJ!JAldF%3iu z-)c2%yT9t=bS|PsSWB}o5w2AbdY`;4)|xLn4Hcu(c=jCKdggDUDUl;# zLNfDhAm+=9EZvS6?Ftp%%1vR8gwt9OTCvfPIZUb3)F-6*H7l)FNf@$)Rk!s-bLixa$C#3~KU16dO7zsgTZDGlutdcO|C*k<6 z7$(MI{5#?7Bs2Q?d&1fC=SA=~N@Zdfc3JOrp7%l5O@WZ)kURVUQ z6lNOV8S+ZS4L%Eaj4&##6DJK3K|M@;;zrP1QA^8;Pv=M&FCQxcYTJy{4*!$t4LXyq zoT!lS^+r%Mg`|joy7XRj6|Is3>~Z{j!$CXjnV;{kBezEq0mcdY+j9A0-)6M=k2bxX z&Sp5S?E|iCcf5LuFBJ-JyOf*ab)fpq70tB<9Cu;M@?T$l@#`5UKDz)6t_|bslTV&j zLm0fXgKF$s8x|gCUy0t){;IcVpd&S2%4p*=f3 ze2d!QBWgT#>gn?q)w@acmb@ba-@gcX|NiM?jQj{ZPMvv}y#-uiJDtoUz%@Tk^A0<& l;?>J;2*%OdH+{Mh>)SKRP}b}09~k=N(#4%a1O3ikyaoOLF4F)2 literal 0 HcmV?d00001 diff --git a/icons/playlist-itunes-dj.icns b/icons/playlist-itunes-dj.icns new file mode 100644 index 0000000000000000000000000000000000000000..6ce064779c39dfdf84558a3b3a21d629b4981960 GIT binary patch literal 992 zcmYk*drVSM9Ki9DZ9YmDmibO1L0y0KaI5v0scW^?OV>jiYbiP-6jCM&6uXM3Sxy$U z%)~Uc0<)}~(x`m2%%+0R2=UQ0O$0S7F)=)yOPZYjzQ5h=>~qe!bQ+Tl!0In__Rbvu z*mPjP)|uq%OCoL%0-MmMBN$w5YEN{`0JfLE*53W7H)C*>)D8oVKHs~a$$0y-zRrxn za~N=@z!?a;BjT{4Co_r&0&q8^!!y&GqKjf>^Ph4Da8v`~ta5m~U=hXo^UCeo92}P91fM#R7xIJ z6`Xg=1hxcZO8^ko(aYE0f^`V3H$pQswX-bPZ(U!sZNHYWq-kY&&CQTh_2jq( z>jw?<3ysIP#UhE}^)j}nc|ca7db5CIKSQWj)Q*@xUA-}YW6xe~QER*FCA_3-FXwUW zwg^6ln;iedsM6Frdk=QzFzWSiO0E5=m-zuV9n{NMOi@*(r1S)iy@AeFm3)rDzY^t& zV=?UMs9{vAZ4(ND5H_kRj~N#m70bPYS+Iq&Vo_c}$t4#YyO~VhLULcik^_8+1R*+) zR~-X$(4_o#v!;37gPP%Gtj|nu(_mpxlB%O0$HtRkpLRsLFR{7l-k1eD1$CxTxkxrN z-2ZsWa*BbtW^?+l~(^+>a z{_Iy)&*AGUfqoaNW0_T(BLOI~>R~Sc=)YG6QU?HtMgIqF!8m}Jt{g+3eAhhMgC_uX Nfsq^`pBCa`slPx3AR+(& literal 0 HcmV?d00001 diff --git a/icons/playlist-itunes-u.icns b/icons/playlist-itunes-u.icns new file mode 100644 index 0000000000000000000000000000000000000000..142c80f495a9c42a1985601176800e587d79c279 GIT binary patch literal 818 zcma*hNlX)A6bJB!CCJj0GHYk1Gi|3kjC9jlXo0r0M5PdAv1|frz?4>YByun@BqR_eQoo`>4<3An@B9AmeJ}aNP7lQaWX@RJ zhy2~nF0*MX{r^U~hZG%+Qpoq&YF# z=;xand?JMbbz`c5Ge?ew-2z1-vOcaS)Ox|n@OH_l1@I@FCUZ@Vz4}n7!pZ~0Ce?yq zudWH&Od2((faHRJF}$_hz|i@KeEoR|BCB`;kqxg`Bt$MkS-3wJ8@Vu+7&z|G3cSW04hE_`Vs}@#m?J?E zsIbtb(T=(*1IHmVS!QPRrAE78sPx*40eGp};c9EEjGkzz+iwKechG1tS2RbDd2J@0 zMhOQR3rMZr8I}aL0Ga)#6aaEoMY@c1^#=^YhV8Ayo`dlvGwhD=WPSp4{U7het0JX82A&@ z>69${)As7_eEAJ0U;WW!ySjo}uLcF8FhA#W`ee48zqfgYl;@yz`*!*~z+R4r P>sj9PqDz*U{i}Wg7X0-C literal 0 HcmV?d00001 diff --git a/icons/playlist-movies.icns b/icons/playlist-movies.icns new file mode 100644 index 0000000000000000000000000000000000000000..45e1e35e2cba0388289026dd318847c672c0b3f9 GIT binary patch literal 926 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 literal 0 HcmV?d00001 diff --git a/icons/playlist-purchased.icns b/icons/playlist-purchased.icns new file mode 100644 index 0000000000000000000000000000000000000000..a8824a834b75aae5c0a2f3e5738eae4e08a40060 GIT binary patch literal 1027 zcmc~y&MRhMU}4TIHa22lVEW9&ATHi4#w04h-Ne8xzH{rQ^=ntG=vZCI*~q{nHn}7} zGdVWW^w#biwg!fJ(V11{#o1{ImhW!uNnvGR5M9vPTvt($Y4`Wtt>xSd3?eJ1O`gzJ zTkc@0rI02FAFoqX%{uKDsc06XE}lmTG<#F6ka~Kd+XZyljZ+DKRN<*gxu?APaoaAd8Ifhz_wbFfkF0@n~~F#2RDx| zn>%%m7?A(XQ{VYbVc3})7f)RP@?|D_8M$=nY5U)}dG)q91A~;cg&EM7dPTSI-+lm; zm$J99GB-7D`|#??{l}s}UrRVoc{{<%%-!Ad#gpeE3=HBPAO5_vv9>fbe)r;)Fp%#v z=fey~dw>6c4{zTC<;DDcz1`iMr~Uf*?ej;VJWm4`17{-y13lho+hD_NWvM9&^t$b) zb!%2GU%aS$dzm26>oy%3NwML9zWQ&jG2in3=BpMJ~nQ7<|ghn1zAlR3=I0N&JK1qmKJd><@p_I3=DdnZZ3}YwmC~DHJ0@N z^*ihM*RHN`aq#l+?5Ufm%)p=(v|-Cy50I`YEz^`37&OD0*Vp-Y1qb?1?U)JVt4BqI z1_$~!9oo8b(OgAf3gYAEZ{lO%ZQx@RU?{f8&1PU=Fz)~VI~0KYJOuy$Az&~RAo2ejpz$*p7>bbP+Zh;2k@?LG4CQG2N@RW; x14A`3AE>_;ncvC4P>;;-Vqj=O=Jx=THZs4LL3_^O!$*!BJ$m#Q5bRx`4FD>^)vEvi literal 0 HcmV?d00001 diff --git a/icons/playlist-radio.icns b/icons/playlist-radio.icns new file mode 100644 index 0000000000000000000000000000000000000000..53dcab4bcd74fb74a1db7e33ad70afd7829fd0b9 GIT binary patch literal 927 zcmcJK!D|yi6vn@7(oGZU3ZYPCWudp0ZA+;K1N|QYwTJZL!Pt;AHHDDUn>g7`UDzy0 zv0%w%%|%ptk@gVnB}efhcop$jiioI@f-rsYAmELu%dAlB~+=v33NggJqJ7ZxRvK^ALL6vcQ-N18U!5GEhPRQdjorTtGDkgN`#lKFbe`H~&f zJhzsQPqV#qojB3&KgZ|H&?vqwe?NWlpnaxO-;Q78cehUdUS~r~?ETwGZylx!@_mBt SFlv9CDf`(6d+KigrGfuSQ(6B2 literal 0 HcmV?d00001 diff --git a/icons/playlist-ringtones.icns b/icons/playlist-ringtones.icns new file mode 100644 index 0000000000000000000000000000000000000000..77ce59fd334d15df7eb5cb1db60f9fbf4bfc76bc GIT binary patch literal 876 zcmZwEUr1AN6bJC*?)5r%|7_FEKhve+-^FaqEj6?GFCj@REz$=QAqBPRY`&=YaA#`1 zNIpo!il&y48fB#v8fprLz6fe%k>P`X%KvC6S?t$uDq_%ix*vY`aL$)gc&(%ifG`%8 z=^_9G*-aowiA$*mN@s}E8w~nd5Ng%NU9@XdYimGwx?%^}(N3k|CWvCR?OUrGYg_Hw z*lG}+&*)#CUt3)1&p3ybWa|IAur&W|z?h5`X&ISbT3`A&!s{)-WSo33F=t2ixd~fj z3=e|D+{GFsSjHfw?ii_5Y#za8qe*)mxR z(5y#!>+8uclW$tfxjR+FW|85E)Z zYE_no1D+LnDtyyhE-Jk}c$Nb^i(y!f6SEA>&^16x-QA^lA$$pvAaM+W4AF-W1YVwS ziGKd`SrkR!OAx0XcRlQCiy?3jf;BZ3mJ~FaI1(>Q1{4<*l@}Eh`x6dDnDZ;DD)Y=* z#~Tq>YOJiSC@M8L;Y$$Am8$B7rUpw@CPVVrf!3b!)%BI}ZfhXHgPJPo?&@ss=;(aW zZK432!m?E=zaT}BpGuV-<^(`9ZXSxn+ysSO%FwuTHB@(E3+;A#6sS~d_uYt`g|lmB2M^!x0-sXKc_sA<1LIe6d!-@PBg zrw{!3#GW$_h)}x2&bJTU=$H^Ndg##rZ1W)zG6P&VLWI&F=O14MkR_YyI)~m5Kdm(- P%Nzr6i3~Ys=)JGMQK&lgV~M0ocr*}@1Aq= zJvry_2Ockwm3i2!ECW_80fFL7u~?MnLtgPrDmj&yoNWKzpGzZOe6=+cJRJyZpG!1m zQ)m(ocC>{^EY%M7 z#X?^9p<_kFzgpz_Tl=cJBCWyh6;oD)>8Na@t^0gi?}|05vdyJ$$lvRUbzUWYMz2+u zmnn`+T)z?>Tnz|B=EjNR>T=3#9O@k|1Vpx}UlLliN~stfxJG^uRRxl?Nnc%A`R&&? zNWaLjwX(vx#sB-yi66&^bA;L1Lh{kVRoOxaAeBlaQYj_LC@CQ6rK#y@51+!H>)FNmF|zsk@A?P&q8(>z zN&1F$z>AY+g(2P>ZTZ-B@Uvpzg<0Ds zicR}3N6z&VKexrGBheau8tLhZivi0zTjT8$IXnEv9W-9V7jtYl!RKa#U5?{J+hN|8RpiFOSZpbLd=KEZn~&1hgE(QjC?2un!jQl>i!!Wf(GA zP8_Ta$^jL(Ltn!%5C6EEoEU!@P;yRf4cm0!&qx0}eDo?%c5$bnu1l?YcZp&?Bv#mM zW|Lm4ZCWDByaJRuswymI<2jCH8J5hK*IrzVR#=?%J6Vo<36RwO;M1& literal 0 HcmV?d00001 diff --git a/icons/playlist-tv-shows.icns b/icons/playlist-tv-shows.icns new file mode 100644 index 0000000000000000000000000000000000000000..1c76e8ed3830e0b4c91e90f20445cbf5931d9d2c GIT binary patch literal 854 zcmc~y&MRhMU=GVHHa22lU~*$%=>E^n;EgZtXs2s z)yfrpu4;bEruOx8cXf8Ow$}RT=&5?mYObm%FD)r72-Q|mQCD&9D9KDsNluC|RaR1v zS5meuPmT@`3vy6Zke88`mQ}XNi3tht)K^lFlaZE`l2WqEiV1VmR8~@ymz9>1lv1?K zjI~r#0dnP3Wu(LBd{Y1T$>T?lAKqG|8T{nZ$>Yb49zA^M z;NF?_eHy-xkM7vMZR_TZ8)g>gl(eb4-9NBl&Fa-F7uIB@r{~qHI^5l{a_N!k@1fz8W18k_2CYbq-ndz2ln99q!b)zJeCqqe60 zS<22AcW&9eZ=b}${rh(B*?(Z8vJc1$_I6g5X2ynkI``B;KJajHur@P-`hbAu@AJgA|{~G`D{QLLkkACF8zkmM#VdEc;Uq629hW`8e=TFmbj$dED zeE+56`|oelZ^mEW8oo$>`=#yn@9*zlzkmJw`uWSJPhWm%d4l-AzJK}B@R{e+*PrU1 zAnBjqzyE0X#sk!?=KkmJj~_tpkH+sDKYpuu0Zsn 0: + ptype = { + 2: "movies", + 3: "tv-shows", + 4: "music", + 5: "books", + 10: "podcasts", + 19: "purchased", + 22: "itunes-dj", + 31: "itunes-u", + }.get(kind, "playlist") + elif pl_playlist.has_key("Smart Info"): + ptype = "smart-playlist" + elif int(pl_playlist.get("Folder", 0)): + ptype = "folder" + else: + ptype = "playlist" + parent = None try: parent_pid = pl_playlist["Parent Persistent ID"] @@ -75,7 +103,7 @@ class ITunesLibrary(NSObject): filename = strip_prefix(filename, self.folder) tracks.append(filename) playlist = Playlist.alloc().init() - playlist.set(name, pid, tracks, parent) + playlist.set(name, pid, ptype, tracks, parent) return playlist def has_playlist_name(self, name): diff --git a/notipod.xcodeproj/project.pbxproj b/notipod.xcodeproj/project.pbxproj index 08adab1..67db772 100644 --- a/notipod.xcodeproj/project.pbxproj +++ b/notipod.xcodeproj/project.pbxproj @@ -12,6 +12,24 @@ 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; 8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + 939819EF12D107B300306B20 /* playlist-books.icns in Resources */ = {isa = PBXBuildFile; fileRef = 939819DD12D107B300306B20 /* playlist-books.icns */; }; + 939819F012D107B300306B20 /* playlist-cd.icns in Resources */ = {isa = PBXBuildFile; fileRef = 939819DE12D107B300306B20 /* playlist-cd.icns */; }; + 939819F112D107B300306B20 /* playlist-downloads.icns in Resources */ = {isa = PBXBuildFile; fileRef = 939819DF12D107B300306B20 /* playlist-downloads.icns */; }; + 939819F212D107B300306B20 /* playlist-folder.icns in Resources */ = {isa = PBXBuildFile; fileRef = 939819E012D107B300306B20 /* playlist-folder.icns */; }; + 939819F312D107B300306B20 /* playlist-genius-mixes.icns in Resources */ = {isa = PBXBuildFile; fileRef = 939819E112D107B300306B20 /* playlist-genius-mixes.icns */; }; + 939819F412D107B300306B20 /* playlist-genius-playlist.icns in Resources */ = {isa = PBXBuildFile; fileRef = 939819E212D107B300306B20 /* playlist-genius-playlist.icns */; }; + 939819F512D107B300306B20 /* playlist-genius.icns in Resources */ = {isa = PBXBuildFile; fileRef = 939819E312D107B300306B20 /* playlist-genius.icns */; }; + 939819F612D107B300306B20 /* playlist-itunes-dj.icns in Resources */ = {isa = PBXBuildFile; fileRef = 939819E412D107B300306B20 /* playlist-itunes-dj.icns */; }; + 939819F712D107B300306B20 /* playlist-itunes-u.icns in Resources */ = {isa = PBXBuildFile; fileRef = 939819E512D107B300306B20 /* playlist-itunes-u.icns */; }; + 939819F812D107B300306B20 /* playlist-movies.icns in Resources */ = {isa = PBXBuildFile; fileRef = 939819E612D107B300306B20 /* playlist-movies.icns */; }; + 939819F912D107B300306B20 /* playlist-music.icns in Resources */ = {isa = PBXBuildFile; fileRef = 939819E712D107B300306B20 /* playlist-music.icns */; }; + 939819FA12D107B300306B20 /* playlist-playlist.icns in Resources */ = {isa = PBXBuildFile; fileRef = 939819E812D107B300306B20 /* playlist-playlist.icns */; }; + 939819FB12D107B300306B20 /* playlist-podcasts.icns in Resources */ = {isa = PBXBuildFile; fileRef = 939819E912D107B300306B20 /* playlist-podcasts.icns */; }; + 939819FC12D107B300306B20 /* playlist-purchased.icns in Resources */ = {isa = PBXBuildFile; fileRef = 939819EA12D107B300306B20 /* playlist-purchased.icns */; }; + 939819FD12D107B300306B20 /* playlist-radio.icns in Resources */ = {isa = PBXBuildFile; fileRef = 939819EB12D107B300306B20 /* playlist-radio.icns */; }; + 939819FE12D107B300306B20 /* playlist-ringtones.icns in Resources */ = {isa = PBXBuildFile; fileRef = 939819EC12D107B300306B20 /* playlist-ringtones.icns */; }; + 939819FF12D107B300306B20 /* playlist-smart-playlist.icns in Resources */ = {isa = PBXBuildFile; fileRef = 939819ED12D107B300306B20 /* playlist-smart-playlist.icns */; }; + 93981A0012D107B300306B20 /* playlist-tv-shows.icns in Resources */ = {isa = PBXBuildFile; fileRef = 939819EE12D107B300306B20 /* playlist-tv-shows.icns */; }; 93EE29F312D0C5450002BB95 /* libnotipod.py in Resources */ = {isa = PBXBuildFile; fileRef = 93EE29F012D0C5450002BB95 /* libnotipod.py */; }; 93EE29F412D0C5450002BB95 /* notipod_cli.py in Resources */ = {isa = PBXBuildFile; fileRef = 93EE29F112D0C5450002BB95 /* notipod_cli.py */; }; 93EE29F512D0C5450002BB95 /* notipod_gui.py in Resources */ = {isa = PBXBuildFile; fileRef = 93EE29F212D0C5450002BB95 /* notipod_gui.py */; }; @@ -28,6 +46,24 @@ 77C8C1F80C07829500965286 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/NotiPod.xib; sourceTree = ""; }; 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 8D1107320486CEB800E47090 /* notipod.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = notipod.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 939819DD12D107B300306B20 /* playlist-books.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "playlist-books.icns"; sourceTree = ""; }; + 939819DE12D107B300306B20 /* playlist-cd.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "playlist-cd.icns"; sourceTree = ""; }; + 939819DF12D107B300306B20 /* playlist-downloads.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "playlist-downloads.icns"; sourceTree = ""; }; + 939819E012D107B300306B20 /* playlist-folder.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "playlist-folder.icns"; sourceTree = ""; }; + 939819E112D107B300306B20 /* playlist-genius-mixes.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "playlist-genius-mixes.icns"; sourceTree = ""; }; + 939819E212D107B300306B20 /* playlist-genius-playlist.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "playlist-genius-playlist.icns"; sourceTree = ""; }; + 939819E312D107B300306B20 /* playlist-genius.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "playlist-genius.icns"; sourceTree = ""; }; + 939819E412D107B300306B20 /* playlist-itunes-dj.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "playlist-itunes-dj.icns"; sourceTree = ""; }; + 939819E512D107B300306B20 /* playlist-itunes-u.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "playlist-itunes-u.icns"; sourceTree = ""; }; + 939819E612D107B300306B20 /* playlist-movies.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "playlist-movies.icns"; sourceTree = ""; }; + 939819E712D107B300306B20 /* playlist-music.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "playlist-music.icns"; sourceTree = ""; }; + 939819E812D107B300306B20 /* playlist-playlist.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "playlist-playlist.icns"; sourceTree = ""; }; + 939819E912D107B300306B20 /* playlist-podcasts.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "playlist-podcasts.icns"; sourceTree = ""; }; + 939819EA12D107B300306B20 /* playlist-purchased.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "playlist-purchased.icns"; sourceTree = ""; }; + 939819EB12D107B300306B20 /* playlist-radio.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "playlist-radio.icns"; sourceTree = ""; }; + 939819EC12D107B300306B20 /* playlist-ringtones.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "playlist-ringtones.icns"; sourceTree = ""; }; + 939819ED12D107B300306B20 /* playlist-smart-playlist.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "playlist-smart-playlist.icns"; sourceTree = ""; }; + 939819EE12D107B300306B20 /* playlist-tv-shows.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = "playlist-tv-shows.icns"; sourceTree = ""; }; 93EE29F012D0C5450002BB95 /* libnotipod.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = libnotipod.py; sourceTree = ""; }; 93EE29F112D0C5450002BB95 /* notipod_cli.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = notipod_cli.py; sourceTree = ""; }; 93EE29F212D0C5450002BB95 /* notipod_gui.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; path = notipod_gui.py; sourceTree = ""; }; @@ -98,6 +134,7 @@ 29B97317FDCFA39411CA2CEA /* Resources */ = { isa = PBXGroup; children = ( + 939819DC12D107B300306B20 /* icons */, 77C8C1F70C07829500965286 /* NotiPod.xib */, 8D1107310486CEB800E47090 /* Info.plist */, 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, @@ -114,6 +151,31 @@ name = Frameworks; sourceTree = ""; }; + 939819DC12D107B300306B20 /* icons */ = { + isa = PBXGroup; + children = ( + 939819DD12D107B300306B20 /* playlist-books.icns */, + 939819DE12D107B300306B20 /* playlist-cd.icns */, + 939819DF12D107B300306B20 /* playlist-downloads.icns */, + 939819E012D107B300306B20 /* playlist-folder.icns */, + 939819E112D107B300306B20 /* playlist-genius-mixes.icns */, + 939819E212D107B300306B20 /* playlist-genius-playlist.icns */, + 939819E312D107B300306B20 /* playlist-genius.icns */, + 939819E412D107B300306B20 /* playlist-itunes-dj.icns */, + 939819E512D107B300306B20 /* playlist-itunes-u.icns */, + 939819E612D107B300306B20 /* playlist-movies.icns */, + 939819E712D107B300306B20 /* playlist-music.icns */, + 939819E812D107B300306B20 /* playlist-playlist.icns */, + 939819E912D107B300306B20 /* playlist-podcasts.icns */, + 939819EA12D107B300306B20 /* playlist-purchased.icns */, + 939819EB12D107B300306B20 /* playlist-radio.icns */, + 939819EC12D107B300306B20 /* playlist-ringtones.icns */, + 939819ED12D107B300306B20 /* playlist-smart-playlist.icns */, + 939819EE12D107B300306B20 /* playlist-tv-shows.icns */, + ); + path = icons; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -162,6 +224,24 @@ 93EE29F312D0C5450002BB95 /* libnotipod.py in Resources */, 93EE29F412D0C5450002BB95 /* notipod_cli.py in Resources */, 93EE29F512D0C5450002BB95 /* notipod_gui.py in Resources */, + 939819EF12D107B300306B20 /* playlist-books.icns in Resources */, + 939819F012D107B300306B20 /* playlist-cd.icns in Resources */, + 939819F112D107B300306B20 /* playlist-downloads.icns in Resources */, + 939819F212D107B300306B20 /* playlist-folder.icns in Resources */, + 939819F312D107B300306B20 /* playlist-genius-mixes.icns in Resources */, + 939819F412D107B300306B20 /* playlist-genius-playlist.icns in Resources */, + 939819F512D107B300306B20 /* playlist-genius.icns in Resources */, + 939819F612D107B300306B20 /* playlist-itunes-dj.icns in Resources */, + 939819F712D107B300306B20 /* playlist-itunes-u.icns in Resources */, + 939819F812D107B300306B20 /* playlist-movies.icns in Resources */, + 939819F912D107B300306B20 /* playlist-music.icns in Resources */, + 939819FA12D107B300306B20 /* playlist-playlist.icns in Resources */, + 939819FB12D107B300306B20 /* playlist-podcasts.icns in Resources */, + 939819FC12D107B300306B20 /* playlist-purchased.icns in Resources */, + 939819FD12D107B300306B20 /* playlist-radio.icns in Resources */, + 939819FE12D107B300306B20 /* playlist-ringtones.icns in Resources */, + 939819FF12D107B300306B20 /* playlist-smart-playlist.icns in Resources */, + 93981A0012D107B300306B20 /* playlist-tv-shows.icns in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/notipod_gui.py b/notipod_gui.py index 9b299ea..39d911f 100644 --- a/notipod_gui.py +++ b/notipod_gui.py @@ -48,16 +48,23 @@ class PlaylistModel(NSObject): return len(playlist.children) def outlineView_objectValueForTableColumn_byItem_(self, _, col, playlist): - col = col.identifier() if col else "playlist" + if not col: + return + col = col.identifier() if col == "selected": selected = NSApp.delegate().playlists() return playlist.pid in selected - if col == None or col == "playlist": + if col == "icon": + return NSImage.imageNamed_("playlist-" + playlist.ptype) + if col == "playlist": return playlist.name def outlineView_setObjectValue_forTableColumn_byItem_(self, _, v, col, playlist): - col = col.identifier() if col else "playlist" + if not col: + return + col = col.identifier() + if col != "selected": return -- 2.39.2