]> git.sesse.net Git - vlc/commitdiff
* Support for saving xspf playlist files
authorBenjamin Pracht <bigben@videolan.org>
Sat, 29 Apr 2006 20:48:44 +0000 (20:48 +0000)
committerBenjamin Pracht <bigben@videolan.org>
Sat, 29 Apr 2006 20:48:44 +0000 (20:48 +0000)
extras/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib
extras/MacOSX/Resources/English.lproj/MainMenu.nib/info.nib
extras/MacOSX/Resources/English.lproj/MainMenu.nib/keyedobjects.nib
modules/gui/macosx/playlist.h
modules/gui/macosx/playlist.m

index 2af33c33823b1eabf919fcb18f9b84b1c8250abe..cd3dedb63f7854b565de1e6cfbe1b44c32b0f18c 100644 (file)
                 "o_outline_view" = id; 
                 "o_playlist_view" = id; 
                 "o_random_ckb" = id; 
+                "o_save_accessory_popup" = id; 
+                "o_save_accessory_text" = id; 
+                "o_save_accessory_view" = id; 
                 "o_search_field" = id; 
                 "o_status_field" = id; 
                 "o_tc_author" = id; 
index 0532525c50175aa907525ad65c9a543ab3c83610..bdb24bbde460bfbea2498b81bcc57e400d394169 100644 (file)
@@ -3,13 +3,15 @@
 <plist version="1.0">
 <dict>
        <key>IBDocumentLocation</key>
-       <string>43 22 478 430 0 0 1024 746 </string>
+       <string>90 147 478 430 0 0 1024 746 </string>
        <key>IBEditorPositions</key>
        <dict>
                <key>1617</key>
                <string>788 586 109 149 0 0 1440 878 </string>
                <key>2197</key>
-               <string>422 532 596 143 0 0 1440 878 </string>
+               <string>172 420 596 143 0 0 1024 746 </string>
+               <key>2709</key>
+               <string>305 626 508 82 0 0 1024 746 </string>
                <key>29</key>
                <string>76 675 438 44 0 0 1024 746 </string>
                <key>915</key>
@@ -24,6 +26,6 @@
                <integer>21</integer>
        </array>
        <key>IBSystem Version</key>
-       <string>8H14</string>
+       <string>8I127</string>
 </dict>
 </plist>
index bf6ca6209443e8121c098370f7620f29751a27a3..01ab78dd2b6855bb47211cc3f14670715df6611d 100644 (file)
Binary files a/extras/MacOSX/Resources/English.lproj/MainMenu.nib/keyedobjects.nib and b/extras/MacOSX/Resources/English.lproj/MainMenu.nib/keyedobjects.nib differ
index 565722ca6bda18d190e45add161cbe360cb020ee..67ecdf3cc8705f71cb436bdc42671317613d6161 100644 (file)
     IBOutlet id o_mm_mi_services;
     IBOutlet id o_mm_mu_services;
 
+    IBOutlet id o_save_accessory_view;
+    IBOutlet id o_save_accessory_popup;
+    IBOutlet id o_save_accessory_text;
+
+
     NSImage *o_descendingSortingImage;
     NSImage *o_ascendingSortingImage;
 
index 91137e387c697604693afa82587cc1578ca25946..4cada240cc6e10ef36e5cb305120e979b397b07e 100644 (file)
         o_outline_dict = [[NSMutableDictionary alloc] init];
     }
     return self;
-}        
+}
 - (void)awakeFromNib
 {
     playlist_t * p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST,
@@ -498,6 +498,10 @@ belongs to an Apple hidden private API, and then can "disapear" at any time*/
     [[o_loop_popup itemAtIndex:1] setTitle: _NS("Repeat One")];
     [[o_loop_popup itemAtIndex:2] setTitle: _NS("Repeat All")];
     [o_mi_addNode setTitle: _NS("Add Folder to Playlist")];
+
+    [o_save_accessory_text setStringValue: _NS("File Format:")];
+    [[o_save_accessory_popup itemAtIndex:0] setTitle: _NS("Extended M3U")];
+    [[o_save_accessory_popup itemAtIndex:1] setTitle: _NS("XML Shareable Playlist Format (XSPF)")];
 }
 
 - (void)playlistUpdated
@@ -745,19 +749,58 @@ belongs to an Apple hidden private API, and then can "disapear" at any time*/
                                                        FIND_ANYWHERE );
 
     NSSavePanel *o_save_panel = [NSSavePanel savePanel];
-    NSString * o_name = [NSString stringWithFormat: @"%@.m3u", _NS("Untitled")];
+    NSString * o_name = [NSString stringWithFormat: @"%@", _NS("Untitled")];
+
+    //[o_save_panel setAllowedFileTypes: [NSArray arrayWithObjects: @"m3u", @"xpf", nil] ];
     [o_save_panel setTitle: _NS("Save Playlist")];
     [o_save_panel setPrompt: _NS("Save")];
+    [o_save_panel setAccessoryView: o_save_accessory_view];
 
     if( [o_save_panel runModalForDirectory: nil
             file: o_name] == NSOKButton )
     {
-        playlist_Export( p_playlist, [[o_save_panel filename] fileSystemRepresentation], "export-m3u" );
+        NSString *o_filename = [o_save_panel filename];
+
+        if( [o_save_accessory_popup indexOfSelectedItem] == 1 )
+        {
+            NSString * o_real_filename;
+            NSRange range;
+            range.location = [o_filename length] - [@".xspf" length];
+            range.length = [@".xspf" length];
+
+            if( [o_filename compare:@".xspf" options: NSCaseInsensitiveSearch
+                                             range: range] != NSOrderedSame )
+            {
+                o_real_filename = [NSString stringWithFormat: @"%@.xspf", o_filename];
+            }
+            else
+            {
+                o_real_filename = o_filename;
+            }
+            playlist_Export( p_playlist, [o_real_filename fileSystemRepresentation], "export-xspf" );
+        }
+        else
+        {
+            NSString * o_real_filename;
+            NSRange range;
+            range.location = [o_filename length] - [@".m3u" length];
+            range.length = [@".m3u" length];
+
+            if( [o_filename compare:@".m3u" options: NSCaseInsensitiveSearch
+                                             range: range] != NSOrderedSame )
+            {
+                o_real_filename = [NSString stringWithFormat: @"%@.m3u", o_filename];
+            }
+            else
+            {
+                o_real_filename = o_filename;
+            }
+            playlist_Export( p_playlist, [o_real_filename fileSystemRepresentation], "export-m3u" );
+        }
     }
     vlc_object_release( p_playlist );
 }
 
-
 /* When called retrieves the selected outlineview row and plays that node or item */
 - (IBAction)playItem:(id)sender
 {