]> git.sesse.net Git - vlc/blobdiff - modules/gui/macosx/playlistinfo.m
Qt: don't check if a variable is a command. This will show radio buttons for zzom...
[vlc] / modules / gui / macosx / playlistinfo.m
index 858d55c15929a8ace418421bc86fc6106c20d428..0861b7fffe8d9ba323055ef3c6d15c9e15a57ba1 100644 (file)
@@ -64,7 +64,8 @@ static VLCInfo *_o_sharedInstance = nil;
 
 - (void)awakeFromNib
 {
-    [o_info_window setExcludedFromWindowsMenu: TRUE];
+    [o_info_window setExcludedFromWindowsMenu: YES];
+    [o_info_window setFloatingPanel: NO];
 
     [o_info_window setTitle: _NS("Media Information")];
     [o_uri_lbl setStringValue: _NS("Location")];
@@ -114,7 +115,7 @@ static VLCInfo *_o_sharedInstance = nil;
     [o_info_window setInitialFirstResponder: o_uri_txt];
     [o_info_window setDelegate: self];
 
-    /* We may be awoken from nib way after initialiwation
+    /* We may be awoken from nib way after initialisation
      * Update ourselves */
     [self updatePanelWithItem:p_item];
 }
@@ -218,6 +219,7 @@ static VLCInfo *_o_sharedInstance = nil;
     if( _p_item != p_item )
     {
         if( p_item ) vlc_gc_decref( p_item );
+        [o_saveMetaData_btn setEnabled: NO];
         if( _p_item ) vlc_gc_incref( _p_item );
         p_item = _p_item;
     }
@@ -244,10 +246,6 @@ static VLCInfo *_o_sharedInstance = nil;
     }
     else
     {
-        /* fill uri info */
-        char * psz_url = input_item_GetURI( p_item );
-        [o_uri_txt setStringValue: [NSString stringWithUTF8String: psz_url ? psz_url : ""  ]];
-
         if( !input_item_IsPreparsed( p_item ) )
         {
             playlist_t * p_playlist = pl_Yield( VLCIntf );
@@ -255,15 +253,24 @@ static VLCInfo *_o_sharedInstance = nil;
             pl_Release( VLCIntf );
         }
 
+        /* fill uri info */
+        char * psz_url = input_item_GetURI( p_item );
+        [o_uri_txt setStringValue: [NSString stringWithUTF8String: psz_url ? psz_url : ""  ]];
         free( psz_url );
 
+        /* fill title info */
+        char * psz_title = input_item_GetTitle( p_item );
+        if( !psz_title )
+            psz_title = input_item_GetName( p_item );
+        [o_title_txt setStringValue: [NSString stringWithUTF8String: psz_title ? : ""  ]];
+        free( psz_title );
+
     #define SET( foo, bar ) \
         char *psz_##foo = input_item_Get##bar ( p_item ); \
         [self setMeta: psz_##foo forLabel: o_##foo##_txt]; \
         FREENULL( psz_##foo );
 
         /* fill the other fields */
-        SET( title, Title );
         SET( author, Artist );
         SET( collection, Album );
         SET( seqNum, TrackNum );
@@ -281,7 +288,7 @@ static VLCInfo *_o_sharedInstance = nil;
         NSImage *o_image;
         psz_meta = input_item_GetArtURL( p_item );
         if( psz_meta && !strncmp( psz_meta, "file://", 7 ) )
-            o_image = [[NSImage alloc] initWithContentsOfURL: [NSURL URLWithString: [NSString stringWithUTF8String: psz_meta]]];
+            o_image = [[NSImage alloc] initWithContentsOfFile: [NSString stringWithUTF8String: psz_meta+7]];
         else
             o_image = [[NSImage imageNamed: @"noart.png"] retain];
         [o_image_well setImage: o_image];
@@ -414,13 +421,13 @@ static VLCInfo *_o_sharedInstance = nil;
 error:
     pl_Release( VLCIntf );
     NSRunAlertPanel(_NS("Error while saving meta"),
-        _NS("Impossible to save the meta data."),
+        _NS("VLC was unable to save the meta data."),
         _NS("OK"), nil, nil);
 }
 
 - (input_item_t *)item
 {
-    vlc_gc_incref( p_item );
+    if( p_item ) vlc_gc_incref( p_item );
     return p_item;
 }