]> git.sesse.net Git - vlc/commitdiff
macosx: finally implement a Reveal-in-Finder functionality
authorFelix Paul Kühne <fkuehne@videolan.org>
Sun, 14 Sep 2008 16:55:52 +0000 (18:55 +0200)
committerFelix Paul Kühne <fkuehne@videolan.org>
Sun, 14 Sep 2008 16:58:27 +0000 (18:58 +0200)
NEWS
extras/package/macosx/Resources/English.lproj/MainMenu.nib/classes.nib
extras/package/macosx/Resources/English.lproj/MainMenu.nib/info.nib
extras/package/macosx/Resources/English.lproj/MainMenu.nib/keyedobjects.nib
modules/gui/macosx/playlist.h
modules/gui/macosx/playlist.m

diff --git a/NEWS b/NEWS
index 915ae8d0230c2ce3096e8eafea45fbff5d4a2cb5..287509fc2252972e76f260e95f29ad80e3adbadd 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-Changes between 0.9.1 and 1.0.0-git:
+Changes between 0.9.2 and 1.0.0-git:
 ------------------------------------
 
 Inputs:
@@ -15,12 +15,14 @@ Stream output:
  * Multiple bridge-in instances are now possible.
  * bridge-in can be used to configure a placeholder stream.
 
+
 Changes between 0.9.1 and 0.9.2
 -------------------------------
 
  * Restored the old behavior of --sout-keep. It is now de-activated by default.
  * Multiple bugfixes
 
+
 Changes between 0.8.6i and 0.9.1:
 ---------------------------------
 
index ac13cc4800060693c852a8bd0e5c2a02a56cbe22..1a9660b09de5d917900446e5bdac933423638566 100644 (file)
                 playItem = id;
                 preparseItem = id;
                 recursiveExpandNode = id;
+                revealItemInFinder = id;
                 savePlaylist = id;
                 searchItem = id;
                 selectAll = id;
                 "o_mi_play" = id;
                 "o_mi_preparse" = id;
                 "o_mi_recursive_expand" = id;
+                "o_mi_revealInFinder" = id;
                 "o_mi_save_playlist" = id;
                 "o_mi_selectall" = id;
                 "o_mi_services" = id;
                 "o_mi_sort_author" = id;
                 "o_mi_sort_name" = id;
+                "o_mm_mi_revealInFinder" = id;
                 "o_mm_mi_services" = id;
                 "o_mm_mu_services" = id;
                 "o_mu_services" = id;
index 31b837cc624d252db9b205bd25e6c3ccd837fec9..82cbf13c0b6737c0cf13037c8bab2d6cafdd59d8 100644 (file)
@@ -3,9 +3,11 @@
 <plist version="1.0">
 <dict>
        <key>IBDocumentLocation</key>
-       <string>69 71 356 240 0 0 1280 778 </string>
+       <string>166 352 356 240 0 0 1280 778 </string>
        <key>IBEditorPositions</key>
        <dict>
+               <key>29</key>
+               <string>478 529 438 44 0 0 1280 778 </string>
                <key>3568</key>
                <string>476 535 328 85 0 0 1280 778 </string>
                <key>915</key>
        <integer>4</integer>
        <key>IBOpenObjects</key>
        <array>
-               <integer>3706</integer>
+               <integer>3568</integer>
                <integer>21</integer>
+               <integer>3706</integer>
+               <integer>29</integer>
                <integer>915</integer>
-               <integer>3568</integer>
        </array>
        <key>IBSystem Version</key>
        <string>9E17</string>
index a0a78c6d6fd440bec465a287545fe700a89d0ccc..96946d279ffe56dec60facb7e3e2be21eec64120 100644 (file)
Binary files a/extras/package/macosx/Resources/English.lproj/MainMenu.nib/keyedobjects.nib and b/extras/package/macosx/Resources/English.lproj/MainMenu.nib/keyedobjects.nib differ
index 698bb6bc7604f67a1f53c5cbbda4e82f625b9a04..acf040b93fb942a442aa894515e59309626de70a 100644 (file)
@@ -80,6 +80,8 @@
     IBOutlet id o_mi_delete;
     IBOutlet id o_mi_info;
     IBOutlet id o_mi_preparse;
+    IBOutlet id o_mi_revealInFinder;
+    IBOutlet id o_mm_mi_revealInFinder;
     IBOutlet id o_mi_selectall;
     IBOutlet id o_mi_sort_name;
     IBOutlet id o_mi_sort_author;
 
 - (IBAction)servicesChange:(id)sender;
 - (IBAction)playItem:(id)sender;
+- (IBAction)revealItemInFinder:(id)sender;
 - (IBAction)preparseItem:(id)sender;
 - (IBAction)savePlaylist:(id)sender;
 - (IBAction)deleteItem:(id)sender;
index afa1f721464a6ad5eb3ce9a50379f3295a923f93..f0888638b270eb6734654bcd09329cc46b26d947 100644 (file)
     [o_mi_selectall setTitle: _NS("Select All")];
     [o_mi_info setTitle: _NS("Information...")];
     [o_mi_preparse setTitle: _NS("Fetch Meta Data")];
+    [o_mi_revealInFinder setTitle: _NS("Reveal in Finder")];
+    [o_mm_mi_revealInFinder setTitle: _NS("Reveal in Finder")];
+    [[o_mm_mi_revealInFinder menu] setAutoenablesItems: NO];
     [o_mi_sort_name setTitle: _NS("Sort Node by Name")];
     [o_mi_sort_author setTitle: _NS("Sort Node by Author")];
     [o_mi_services setTitle: _NS("Services discovery")];
     {
         /* update our info-panel to reflect the new item */
         [[[VLCMain sharedInstance] getInfo] updatePanelWithItem:p_item->p_input];
+        
+        /* update the state of our Reveal-in-Finder menu items */
+        NSMutableString *o_mrl;
+        char *psz_uri = input_item_GetURI( p_item->p_input );
+        if( psz_uri )
+        {
+            o_mrl = [NSMutableString stringWithUTF8String: psz_uri];
+        
+            /* perform some checks whether it is a file and if it is local at all... */
+            NSRange prefix_range = [o_mrl rangeOfString: @"file:"];
+            if( prefix_range.location != NSNotFound )
+                [o_mrl deleteCharactersInRange: prefix_range];
+            
+            if( [o_mrl characterAtIndex:0] == '/' )
+            {
+                [o_mi_revealInFinder setEnabled: YES];
+                [o_mm_mi_revealInFinder setEnabled: YES];
+                return;
+            }
+        }
+        [o_mi_revealInFinder setEnabled: NO];
+        [o_mm_mi_revealInFinder setEnabled: NO];
     }
 }
 
     vlc_object_release( p_playlist );
 }
 
+- (IBAction)revealItemInFinder:(id)sender
+{
+    playlist_item_t * p_item = [[o_outline_view itemAtRow:[o_outline_view selectedRow]] pointerValue];
+    NSMutableString * o_mrl = nil;
+
+    if(! p_item || !p_item->p_input )
+        return;
+    
+    char *psz_uri = input_item_GetURI( p_item->p_input );
+    if( psz_uri )
+        o_mrl = [NSMutableString stringWithUTF8String: psz_uri];
+
+    /* perform some checks whether it is a file and if it is local at all... */
+    NSRange prefix_range = [o_mrl rangeOfString: @"file:"];
+    if( prefix_range.location != NSNotFound )
+        [o_mrl deleteCharactersInRange: prefix_range];
+    
+    if( [o_mrl characterAtIndex:0] == '/' )
+        [[NSWorkspace sharedWorkspace] selectFile: o_mrl inFileViewerRootedAtPath: o_mrl];
+}    
+
 /* When called retrieves the selected outlineview row and plays that node or item */
 - (IBAction)preparseItem:(id)sender
 {