]> code.delx.au - notipod/commitdiff
Added cancel button and put playlists in their own folder
authorJames Bunton <jamesbunton@fastmail.fm>
Sun, 2 Jan 2011 11:59:25 +0000 (22:59 +1100)
committerJames Bunton <jamesbunton@fastmail.fm>
Sun, 2 Jan 2011 11:59:25 +0000 (22:59 +1100)
English.lproj/NotiPod.xib
NotiPod.py
libsyncitunes.py

index 8d7bb0f5361c26d6880cc2138cb0cfb8f752e667..2c2bc5ad9957ba0d62ff26573ae7d3baea298d6e 100644 (file)
@@ -8,9 +8,9 @@
                <string key="IBDocument.HIToolboxVersion">461.00</string>
                <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
                        <bool key="EncodedWithXMLCoder">YES</bool>
-                       <integer value="429"/>
                        <integer value="29"/>
                        <integer value="372"/>
+                       <integer value="429"/>
                </object>
                <object class="NSArray" key="IBDocument.PluginDependencies">
                        <bool key="EncodedWithXMLCoder">YES</bool>
                        <object class="NSWindowTemplate" id="92204650">
                                <int key="NSWindowStyleMask">7</int>
                                <int key="NSWindowBacking">2</int>
-                               <string key="NSWindowRect">{{196, 436}, {342, 74}}</string>
+                               <string key="NSWindowRect">{{196, 410}, {342, 100}}</string>
                                <int key="NSWTFlags">603979776</int>
                                <string key="NSWindowTitle">Window</string>
                                <string key="NSWindowClass">NSWindow</string>
                                                        <reference key="NSNextResponder" ref="851027294"/>
                                                        <int key="NSvFlags">1292</int>
                                                        <object class="NSPSMatrix" key="NSDrawMatrix"/>
-                                                       <string key="NSFrame">{{18, 16}, {306, 20}}</string>
+                                                       <string key="NSFrame">{{18, 42}, {306, 20}}</string>
                                                        <reference key="NSSuperview" ref="851027294"/>
                                                        <int key="NSpiFlags">16394</int>
                                                        <double key="NSMinValue">2.000000e+01</double>
                                                <object class="NSTextField" id="142560492">
                                                        <reference key="NSNextResponder" ref="851027294"/>
                                                        <int key="NSvFlags">268</int>
-                                                       <string key="NSFrame">{{17, 44}, {308, 17}}</string>
+                                                       <string key="NSFrame">{{17, 70}, {308, 17}}</string>
                                                        <reference key="NSSuperview" ref="851027294"/>
                                                        <bool key="NSEnabled">YES</bool>
                                                        <object class="NSTextFieldCell" key="NSCell" id="1010085952">
                                                                <int key="NSCellFlags">67239488</int>
-                                                               <int key="NSCellFlags2">272631296</int>
+                                                               <int key="NSCellFlags2">272632320</int>
                                                                <string key="NSContents">Please wait...</string>
                                                                <reference key="NSSupport" ref="822023840"/>
                                                                <reference key="NSControlView" ref="142560492"/>
                                                                <reference key="NSTextColor" ref="888276067"/>
                                                        </object>
                                                </object>
+                                               <object class="NSButton" id="172442330">
+                                                       <reference key="NSNextResponder" ref="851027294"/>
+                                                       <int key="NSvFlags">268</int>
+                                                       <string key="NSFrame">{{232, 3}, {96, 32}}</string>
+                                                       <reference key="NSSuperview" ref="851027294"/>
+                                                       <bool key="NSEnabled">YES</bool>
+                                                       <object class="NSButtonCell" key="NSCell" id="250030516">
+                                                               <int key="NSCellFlags">67239424</int>
+                                                               <int key="NSCellFlags2">134217728</int>
+                                                               <string key="NSContents">Cancel</string>
+                                                               <reference key="NSSupport" ref="822023840"/>
+                                                               <reference key="NSControlView" ref="172442330"/>
+                                                               <int key="NSButtonFlags">-2038284033</int>
+                                                               <int key="NSButtonFlags2">129</int>
+                                                               <string key="NSAlternateContents"/>
+                                                               <string key="NSKeyEquivalent"/>
+                                                               <int key="NSPeriodicDelay">200</int>
+                                                               <int key="NSPeriodicInterval">25</int>
+                                                       </object>
+                                               </object>
                                        </object>
-                                       <string key="NSFrameSize">{342, 74}</string>
+                                       <string key="NSFrameSize">{342, 100}</string>
                                        <reference key="NSSuperview"/>
                                </object>
                                <string key="NSScreenRect">{{0, 0}, {1024, 746}}</string>
                                        </object>
                                        <int key="connectionID">511</int>
                                </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">doCancel:</string>
+                                               <reference key="source" ref="719278169"/>
+                                               <reference key="destination" ref="172442330"/>
+                                       </object>
+                                       <int key="connectionID">516</int>
+                               </object>
                        </object>
                        <object class="IBMutableOrderedSet" key="objectRecords">
                                <object class="NSArray" key="orderedObjects">
                                                        <bool key="EncodedWithXMLCoder">YES</bool>
                                                        <reference ref="327138569"/>
                                                        <reference ref="142560492"/>
+                                                       <reference ref="172442330"/>
                                                </object>
                                                <reference key="parent" ref="92204650"/>
                                        </object>
                                                <reference key="object" ref="1010085952"/>
                                                <reference key="parent" ref="142560492"/>
                                        </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">514</int>
+                                               <reference key="object" ref="172442330"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="250030516"/>
+                                               </object>
+                                               <reference key="parent" ref="851027294"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">515</int>
+                                               <reference key="object" ref="250030516"/>
+                                               <reference key="parent" ref="172442330"/>
+                                       </object>
                                </object>
                        </object>
                        <object class="NSMutableDictionary" key="flattenedProperties">
                                        <string>490.IBPluginDependency</string>
                                        <string>509.IBPluginDependency</string>
                                        <string>510.IBPluginDependency</string>
+                                       <string>514.IBPluginDependency</string>
+                                       <string>515.IBPluginDependency</string>
                                        <string>56.IBPluginDependency</string>
                                        <string>56.ImportedFromIB2</string>
                                        <string>57.IBPluginDependency</string>
                                        <string>{{89, 581}, {211, 33}}</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-                                       <string>{{82, 574}, {342, 74}}</string>
-                                       <string>{{82, 574}, {342, 74}}</string>
+                                       <string>{{82, 548}, {342, 100}}</string>
+                                       <string>{{82, 548}, {342, 100}}</string>
                                        <integer value="0"/>
                                        <string>{{196, 436}, {204, 74}}</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <reference ref="9"/>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <reference ref="9"/>
                                </object>
                        </object>
                        <nil key="sourceID"/>
-                       <int key="maxID">511</int>
+                       <int key="maxID">516</int>
                </object>
                <object class="IBClassDescriber" key="IBDocument.Classes">
                        <object class="NSMutableArray" key="referencedPartialClassDescriptions">
                                        <string key="className">NotiPodAppDelegate</string>
                                        <string key="superclassName">NSObject</string>
                                        <object class="NSMutableDictionary" key="actions">
-                                               <string key="NS.key.0">doSync:</string>
-                                               <string key="NS.object.0">id</string>
+                                               <bool key="EncodedWithXMLCoder">YES</bool>
+                                               <object class="NSArray" key="dict.sortedKeys">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>doCancel:</string>
+                                                       <string>doSync:</string>
+                                               </object>
+                                               <object class="NSMutableArray" key="dict.values">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <string>id</string>
+                                                       <string>id</string>
+                                               </object>
                                        </object>
                                        <object class="NSMutableDictionary" key="outlets">
                                                <bool key="EncodedWithXMLCoder">YES</bool>
index f302f6f9ed167a3b01843a482990e51cb778dbcc..5292faf7b4ba0e9aae41cf4f2b7f54c0a58bb6df 100644 (file)
@@ -134,17 +134,26 @@ class NotiPodAppDelegate(NSObject):
                self.runGeneratorNext()
 
        def runGeneratorNext(self):
+               if self.gen is None or self.finish is None:
+                       return
                try:
                        msg = self.gen.next()
                        self.loadingLabel.setStringValue_(msg)
                        self.performSelector_withObject_afterDelay_(
                                self.runGeneratorNext, None, 0)
                except StopIteration:
-                       self.gen = None
-                       NSApp.endSheet_(self.loadingSheet)
-                       self.loadingSheet.orderOut_(self)
-                       self.finish()
-                       self.finish = None
+                       self.stopGenerator()
+
+       def stopGenerator(self):
+               self.gen = None
+               NSApp.endSheet_(self.loadingSheet)
+               self.loadingSheet.orderOut_(self)
+               self.finish()
+               self.finish = None
+
+       @objc.IBAction
+       def doCancel_(self, sender):
+               self.stopGenerator()
 
        @objc.IBAction
        def doSync_(self, sender):
index c8d330ccd3c5a6af4ffae0e1cb60b0cbc53cc07b..41228914301c236cf7413dc281558136dd5e1cdf 100644 (file)
@@ -133,19 +133,6 @@ def encode_filename(filename):
        encoded_names[orig_filename] = filename
        return filename
 
-def export_m3u(dry_run, dest, path_prefix, playlist_name, files):
-       if dry_run:
-               return
-       playlist_file = os.path.join(dest, playlist_name) + ".m3u"
-       logging.info("Writing: " + playlist_file)
-       f = open(playlist_file, "w")
-       for filename in files:
-               if path_prefix.find("\\") > 0:
-                       filename = filename.replace("/", "\\")
-               filename = encode_filename(filename)
-               f.write("%s%s\n" % (path_prefix, filename))
-       f.close()
-
 def strip_prefix(s, prefix):
        assert s.startswith(prefix)
        s = s[len(prefix):]
@@ -166,6 +153,20 @@ def mkdirhier(path):
                except OSError:
                        pass
 
+def export_m3u(dry_run, dest, path_prefix, playlist_name, files):
+       if dry_run:
+               return
+       playlist_file = os.path.join(dest, "-Playlists-", playlist_name) + ".m3u"
+       mkdirhier(os.path.dirname(playlist_file))
+       logging.info("Writing: " + playlist_file)
+       f = open(playlist_file, "w")
+       for filename in files:
+               if path_prefix.find("\\") > 0:
+                       filename = filename.replace("/", "\\")
+               filename = encode_filename(filename)
+               f.write("%s%s\n" % (path_prefix, filename))
+       f.close()
+
 def sync(dry_run, source, dest, files):
        join = os.path.join
 
@@ -198,7 +199,7 @@ def sync(dry_run, source, dest, files):
                                else:
                                        yield "Update: " + filename
 
-                       elif not filename.endswith(".m3u"):
+                       elif not filename.startswith("-Playlists-"):
                                yield "Delete: " + filename
                                if not dry_run:
                                        os.unlink(join(dest, filename))