Commit c934307d authored by Felix Paul Kühne's avatar Felix Paul Kühne

* update the info panel when switching the currently played p_item

parent 9cf3ff6b
...@@ -47,6 +47,7 @@ ...@@ -47,6 +47,7 @@
#include "intf.h" #include "intf.h"
#import "wizard.h" #import "wizard.h"
#import "bookmarks.h" #import "bookmarks.h"
#import "playlistinfo.h"
#include "playlist.h" #include "playlist.h"
#include "controls.h" #include "controls.h"
#include "vlc_osd.h" #include "vlc_osd.h"
...@@ -617,6 +618,9 @@ belongs to an Apple hidden private API, and then can "disapear" at any time*/ ...@@ -617,6 +618,9 @@ belongs to an Apple hidden private API, and then can "disapear" at any time*/
[o_outline_view scrollRowToVisible: i_row]; [o_outline_view scrollRowToVisible: i_row];
vlc_object_release(p_playlist); vlc_object_release(p_playlist);
/* update our info-panel to reflect the new item */
[[[VLCMain sharedInstance] getInfo] updatePanel];
} }
/* Check if p_item is a child of p_node recursively. We need to check the item /* Check if p_item is a child of p_node recursively. We need to check the item
......
...@@ -103,6 +103,7 @@ ...@@ -103,6 +103,7 @@
- (IBAction)togglePlaylistInfoPanel:(id)sender; - (IBAction)togglePlaylistInfoPanel:(id)sender;
- (IBAction)toggleInfoPanel:(id)sender; - (IBAction)toggleInfoPanel:(id)sender;
- (void)initPanel:(id)sender; - (void)initPanel:(id)sender;
- (void)updatePanel;
- (IBAction)infoCancel:(id)sender; - (IBAction)infoCancel:(id)sender;
- (IBAction)infoOk:(id)sender; - (IBAction)infoOk:(id)sender;
- (playlist_item_t *)getItem; - (playlist_item_t *)getItem;
......
...@@ -101,7 +101,7 @@ ...@@ -101,7 +101,7 @@
- (void)dealloc - (void)dealloc
{ {
/* make that it is released in any case */ /* make sure that it is released in any case */
if ( o_statUpdateTimer ) if ( o_statUpdateTimer )
[o_statUpdateTimer release]; [o_statUpdateTimer release];
[super dealloc]; [super dealloc];
...@@ -149,6 +149,11 @@ ...@@ -149,6 +149,11 @@
[o_statUpdateTimer fire]; [o_statUpdateTimer fire];
[o_statUpdateTimer retain]; [o_statUpdateTimer retain];
} }
else
{
if( [o_tab_view numberOfTabViewItems] > 2 )
[o_tab_view removeTabViewItem: [o_tab_view tabViewItemAtIndex: 2]];
}
[self initPanel:sender]; [self initPanel:sender];
} }
...@@ -156,6 +161,23 @@ ...@@ -156,6 +161,23 @@
- (void)initPanel:(id)sender - (void)initPanel:(id)sender
{ {
[self updatePanel];
[o_info_window makeKeyAndOrderFront: sender];
}
- (void)updatePanel
{
/* make sure that we got the current item and not an outdated one */
intf_thread_t * p_intf = VLCIntf;
playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST,
FIND_ANYWHERE );
if( p_playlist )
{
p_item = p_playlist->status.p_item;
vlc_object_release( p_playlist );
}
/* check whether our item is valid, because we would crash if not */ /* check whether our item is valid, because we would crash if not */
if(! [self isItemInPlaylist: p_item] ) return; if(! [self isItemInPlaylist: p_item] ) return;
...@@ -204,17 +226,7 @@ ...@@ -204,17 +226,7 @@
[[VLCInfoTreeItem rootItem] refresh]; [[VLCInfoTreeItem rootItem] refresh];
[o_outline_view reloadData]; [o_outline_view reloadData];
BOOL b_stats = config_GetInt(VLCIntf, "stats"); /* updating the stats isn't our job, but is done by the timer if needed */
if(! b_stats )
{
if( [o_tab_view numberOfTabViewItems] > 2 )
[o_tab_view removeTabViewItem: [o_tab_view tabViewItemAtIndex: 2]];
}
else
{
[self updateStatistics: nil];
}
[o_info_window makeKeyAndOrderFront: sender];
} }
- (void)setMeta: (char *)meta forLabel: (id)theItem - (void)setMeta: (char *)meta forLabel: (id)theItem
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment