mirror of https://code.videolan.org/videolan/vlc
macosx: Move renderers update for toolbar item handling to toolbar delegate
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
This commit is contained in:
parent
0558902cd2
commit
7dbfe6bc1e
|
@ -63,8 +63,6 @@
|
|||
#import "media-source/VLCMediaSourceBaseDataSource.h"
|
||||
#import "media-source/VLCLibraryMediaSourceViewController.h"
|
||||
|
||||
#import "menus/renderers/VLCRendererMenuController.h"
|
||||
|
||||
#import "views/VLCBottomBarView.h"
|
||||
#import "views/VLCCustomWindowButton.h"
|
||||
#import "views/VLCDragDropView.h"
|
||||
|
@ -185,15 +183,7 @@ static void addShadow(NSImageView *__unsafe_unretained imageView)
|
|||
selector:@selector(playerStateChanged:)
|
||||
name:VLCPlayerStateChanged
|
||||
object:nil];
|
||||
[notificationCenter addObserver:self
|
||||
selector:@selector(renderersChanged:)
|
||||
name:VLCRendererAddedNotification
|
||||
object:nil];
|
||||
[notificationCenter addObserver:self
|
||||
selector:@selector(renderersChanged:)
|
||||
name:VLCRendererRemovedNotification
|
||||
object:nil];
|
||||
|
||||
|
||||
_libraryHomeViewController = [[VLCLibraryHomeViewController alloc] initWithLibraryWindow:self];
|
||||
_libraryVideoViewController = [[VLCLibraryVideoViewController alloc] initWithLibraryWindow:self];
|
||||
_libraryAudioViewController = [[VLCLibraryAudioViewController alloc] initWithLibraryWindow:self];
|
||||
|
@ -725,25 +715,4 @@ static void addShadow(NSImageView *__unsafe_unretained imageView)
|
|||
}
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark respond to renderers
|
||||
|
||||
- (void)renderersChanged:(NSNotification *)notification
|
||||
{
|
||||
const NSUInteger rendererCount =
|
||||
VLCMain.sharedInstance.mainMenu.rendererMenuController.rendererItems.count;
|
||||
const BOOL rendererToolbarItemVisible =
|
||||
[self.toolbar.items containsObject:self.toolbarDelegate.renderersToolbarItem];
|
||||
|
||||
if (rendererCount > 0 && !rendererToolbarItemVisible) {
|
||||
[self.toolbarDelegate insertToolbarItem:self.toolbarDelegate.renderersToolbarItem
|
||||
inFrontOf:@[self.toolbarDelegate.sortOrderToolbarItem,
|
||||
self.toolbarDelegate.libraryViewModeToolbarItem,
|
||||
self.toolbarDelegate.forwardsToolbarItem,
|
||||
self.toolbarDelegate.backwardsToolbarItem]];
|
||||
} else if (rendererCount == 0 && rendererToolbarItemVisible) {
|
||||
[self.toolbarDelegate hideToolbarItem:self.toolbarDelegate.renderersToolbarItem];
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -54,6 +54,16 @@ NSString * const VLCLibraryWindowTrackingSeparatorToolbarItemIdentifier = @"VLCL
|
|||
[self.toolbar.items objectAtIndex:trackingSeparatorItemIndex];
|
||||
}
|
||||
|
||||
NSNotificationCenter * const notificationCenter = NSNotificationCenter.defaultCenter;
|
||||
[notificationCenter addObserver:self
|
||||
selector:@selector(renderersChanged:)
|
||||
name:VLCRendererAddedNotification
|
||||
object:nil];
|
||||
[notificationCenter addObserver:self
|
||||
selector:@selector(renderersChanged:)
|
||||
name:VLCRendererRemovedNotification
|
||||
object:nil];
|
||||
|
||||
// Hide renderers toolbar item at first. Start discoveries and wait for notifications about
|
||||
// renderers being added or removed to keep hidden or show depending on outcome
|
||||
[self hideToolbarItem:self.renderersToolbarItem];
|
||||
|
@ -82,6 +92,24 @@ NSString * const VLCLibraryWindowTrackingSeparatorToolbarItemIdentifier = @"VLCL
|
|||
return nil;
|
||||
}
|
||||
|
||||
- (void)renderersChanged:(NSNotification *)notification
|
||||
{
|
||||
const NSUInteger rendererCount =
|
||||
VLCMain.sharedInstance.mainMenu.rendererMenuController.rendererItems.count;
|
||||
const BOOL rendererToolbarItemVisible =
|
||||
[self.toolbar.items containsObject:self.renderersToolbarItem];
|
||||
|
||||
if (rendererCount > 0 && !rendererToolbarItemVisible) {
|
||||
[self insertToolbarItem:self.renderersToolbarItem
|
||||
inFrontOf:@[self.sortOrderToolbarItem,
|
||||
self.libraryViewModeToolbarItem,
|
||||
self.forwardsToolbarItem,
|
||||
self.backwardsToolbarItem]];
|
||||
} else if (rendererCount == 0 && rendererToolbarItemVisible) {
|
||||
[self hideToolbarItem:self.renderersToolbarItem];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)hideToolbarItem:(NSToolbarItem *)toolbarItem
|
||||
{
|
||||
const NSInteger toolbarItemIndex = [self.toolbar.items indexOfObject:toolbarItem];
|
||||
|
|
Loading…
Reference in New Issue