From: James Bunton Date: Sun, 2 Jan 2011 19:27:48 +0000 (+1100) Subject: Added icons X-Git-Tag: notipod-1.3~8 X-Git-Url: https://code.delx.au/notipod/commitdiff_plain/02030014f9372d738ae6a519ec71c464dbfb0f6a?ds=sidebyside Added icons --- 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 0000000..0f08b4e Binary files /dev/null and b/icons/playlist-books.icns differ diff --git a/icons/playlist-cd.icns b/icons/playlist-cd.icns new file mode 100644 index 0000000..9a6f270 Binary files /dev/null and b/icons/playlist-cd.icns differ diff --git a/icons/playlist-downloads.icns b/icons/playlist-downloads.icns new file mode 100644 index 0000000..447f67b Binary files /dev/null and b/icons/playlist-downloads.icns differ diff --git a/icons/playlist-folder.icns b/icons/playlist-folder.icns new file mode 100644 index 0000000..4ac9082 Binary files /dev/null and b/icons/playlist-folder.icns differ diff --git a/icons/playlist-genius-mixes.icns b/icons/playlist-genius-mixes.icns new file mode 100644 index 0000000..9e744bc Binary files /dev/null and b/icons/playlist-genius-mixes.icns differ diff --git a/icons/playlist-genius-playlist.icns b/icons/playlist-genius-playlist.icns new file mode 100644 index 0000000..75a9afa Binary files /dev/null and b/icons/playlist-genius-playlist.icns differ diff --git a/icons/playlist-genius.icns b/icons/playlist-genius.icns new file mode 100644 index 0000000..89458ca Binary files /dev/null and b/icons/playlist-genius.icns differ diff --git a/icons/playlist-itunes-dj.icns b/icons/playlist-itunes-dj.icns new file mode 100644 index 0000000..6ce0647 Binary files /dev/null and b/icons/playlist-itunes-dj.icns differ diff --git a/icons/playlist-itunes-u.icns b/icons/playlist-itunes-u.icns new file mode 100644 index 0000000..142c80f Binary files /dev/null and b/icons/playlist-itunes-u.icns differ diff --git a/icons/playlist-movies.icns b/icons/playlist-movies.icns new file mode 100644 index 0000000..45e1e35 Binary files /dev/null and b/icons/playlist-movies.icns differ diff --git a/icons/playlist-music.icns b/icons/playlist-music.icns new file mode 100644 index 0000000..065eb7c Binary files /dev/null and b/icons/playlist-music.icns differ diff --git a/icons/playlist-playlist.icns b/icons/playlist-playlist.icns new file mode 100644 index 0000000..7173572 Binary files /dev/null and b/icons/playlist-playlist.icns differ diff --git a/icons/playlist-podcasts.icns b/icons/playlist-podcasts.icns new file mode 100644 index 0000000..38a8c57 Binary files /dev/null and b/icons/playlist-podcasts.icns differ diff --git a/icons/playlist-purchased.icns b/icons/playlist-purchased.icns new file mode 100644 index 0000000..a8824a8 Binary files /dev/null and b/icons/playlist-purchased.icns differ diff --git a/icons/playlist-radio.icns b/icons/playlist-radio.icns new file mode 100644 index 0000000..53dcab4 Binary files /dev/null and b/icons/playlist-radio.icns differ diff --git a/icons/playlist-ringtones.icns b/icons/playlist-ringtones.icns new file mode 100644 index 0000000..77ce59f Binary files /dev/null and b/icons/playlist-ringtones.icns differ diff --git a/icons/playlist-smart-playlist.icns b/icons/playlist-smart-playlist.icns new file mode 100644 index 0000000..a6dbd13 Binary files /dev/null and b/icons/playlist-smart-playlist.icns differ diff --git a/icons/playlist-tv-shows.icns b/icons/playlist-tv-shows.icns new file mode 100644 index 0000000..1c76e8e Binary files /dev/null and b/icons/playlist-tv-shows.icns differ diff --git a/libnotipod.py b/libnotipod.py index 49af34a..02f7c30 100644 --- a/libnotipod.py +++ b/libnotipod.py @@ -27,9 +27,10 @@ class Playlist(NSObject): def init(self): return self - def set(self, name, pid, tracks, parent): + def set(self, name, pid, ptype, tracks, parent): self.name = name self.pid = pid + self.ptype = ptype self.children = [] self.tracks = tracks self.parent = parent @@ -48,6 +49,8 @@ class ITunesLibrary(NSObject): self.playlists = {} for pl_playlist in plist["Playlists"]: playlist = self.make_playlist(pl_playlist, pl_tracks) + if not playlist: + continue yield "Read playlist: " + playlist.name self.playlists[playlist.pid] = playlist @@ -55,8 +58,33 @@ class ITunesLibrary(NSObject): return urllib.splithost(urllib.splittype(urllib.unquote(location))[1])[1] def make_playlist(self, pl_playlist, pl_tracks): + if int(pl_playlist.get("Master", 0)): + return + kind = int(pl_playlist.get("Distinguished Kind", -1)) + if kind == 26: + # Don't do genius + return + name = pl_playlist["Name"] pid = pl_playlist["Playlist Persistent ID"] + if kind > 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