mirror of https://code.videolan.org/videolan/vlc
macosx: Handle specific hiding/showing of given toolbar items directly within toolbar delegate
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
This commit is contained in:
parent
85e8f0db0a
commit
b6bb469424
|
@ -324,43 +324,28 @@ static void addShadow(NSImageView *__unsafe_unretained imageView)
|
|||
- (void)showHomeLibrary
|
||||
{
|
||||
// Only collection view mode
|
||||
[self.toolbarDelegate setForwardsBackwardsToolbarItemsVisible:NO];
|
||||
[self.toolbarDelegate setSortOrderToolbarItemVisible:YES];
|
||||
[self.toolbarDelegate setLibrarySearchToolbarItemVisible:YES];
|
||||
[self.toolbarDelegate setViewModeToolbarItemVisible:NO];
|
||||
|
||||
[self.toolbarDelegate layoutForSegment:VLCLibraryHomeSegment];
|
||||
[_libraryHomeViewController presentHomeView];
|
||||
}
|
||||
|
||||
- (void)showVideoLibrary
|
||||
{
|
||||
[self.toolbarDelegate setForwardsBackwardsToolbarItemsVisible:NO];
|
||||
[self.toolbarDelegate setSortOrderToolbarItemVisible:YES];
|
||||
[self.toolbarDelegate setLibrarySearchToolbarItemVisible:YES];
|
||||
[self.toolbarDelegate setViewModeToolbarItemVisible:YES];
|
||||
|
||||
[self.toolbarDelegate layoutForSegment:VLCLibraryVideoSegment];
|
||||
[_libraryVideoViewController presentVideoView];
|
||||
}
|
||||
|
||||
- (void)showAudioLibrary
|
||||
{
|
||||
[self.toolbarDelegate setForwardsBackwardsToolbarItemsVisible:NO];
|
||||
[self.toolbarDelegate setSortOrderToolbarItemVisible:YES];
|
||||
[self.toolbarDelegate setLibrarySearchToolbarItemVisible:YES];
|
||||
[self.toolbarDelegate setViewModeToolbarItemVisible:YES];
|
||||
|
||||
[self.toolbarDelegate layoutForSegment:VLCLibraryMusicSegment];
|
||||
self.libraryAudioViewController.currentSegmentType = self.librarySegmentType;
|
||||
}
|
||||
|
||||
- (void)showMediaSourceLibrary
|
||||
{
|
||||
[self.navigationStack clear];
|
||||
[self.toolbarDelegate setForwardsBackwardsToolbarItemsVisible:YES];
|
||||
[self.toolbarDelegate setSortOrderToolbarItemVisible:NO];
|
||||
[self.toolbarDelegate setLibrarySearchToolbarItemVisible:NO];
|
||||
[self.toolbarDelegate setViewModeToolbarItemVisible:YES];
|
||||
|
||||
const VLCLibrarySegmentType segmentType = self.librarySegmentType;
|
||||
[self.toolbarDelegate layoutForSegment:segmentType];
|
||||
if (segmentType == VLCLibraryBrowseSegment) {
|
||||
[_libraryMediaSourceViewController presentBrowseView];
|
||||
} else if (segmentType == VLCLibraryStreamsSegment) {
|
||||
|
|
|
@ -22,6 +22,8 @@
|
|||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
#import "library/VLCLibrarySegment.h"
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@class VLCLibraryWindow;
|
||||
|
@ -46,12 +48,7 @@ extern NSString * const VLCLibraryWindowTrackingSeparatorToolbarItemIdentifier;
|
|||
|
||||
- (IBAction)rendererControlAction:(id)sender;
|
||||
|
||||
- (void)setForwardsBackwardsToolbarItemsVisible:(BOOL)visible;
|
||||
- (void)setSortOrderToolbarItemVisible:(BOOL)visible;
|
||||
- (void)setSortOrderToolbarItemVisible:(BOOL)visible;
|
||||
- (void)setLibrarySearchToolbarItemVisible:(BOOL)visible;
|
||||
- (void)setViewModeToolbarItemVisible:(BOOL)visible;
|
||||
- (void)updatePlayqueueToggleState;
|
||||
- (void)layoutForSegment:(VLCLibrarySegmentType)segment;
|
||||
|
||||
@end
|
||||
|
||||
|
|
|
@ -136,6 +136,47 @@ NSString * const VLCLibraryWindowTrackingSeparatorToolbarItemIdentifier = @"VLCL
|
|||
NSControlStateValueOff : NSControlStateValueOn;
|
||||
}
|
||||
|
||||
#pragma mark - convenience method for configuration of toolbar items layout
|
||||
|
||||
- (void)layoutForSegment:(VLCLibrarySegmentType)segment
|
||||
{
|
||||
switch(segment) {
|
||||
case VLCLibraryLowSentinelSegment:
|
||||
vlc_assert_unreachable();
|
||||
case VLCLibraryHomeSegment:
|
||||
[self setForwardsBackwardsToolbarItemsVisible:NO];
|
||||
[self setSortOrderToolbarItemVisible:NO];
|
||||
[self setLibrarySearchToolbarItemVisible:NO];
|
||||
[self setViewModeToolbarItemVisible:NO];
|
||||
break;
|
||||
case VLCLibraryVideoSegment:
|
||||
[self setForwardsBackwardsToolbarItemsVisible:NO];
|
||||
[self setSortOrderToolbarItemVisible:YES];
|
||||
[self setLibrarySearchToolbarItemVisible:YES];
|
||||
[self setViewModeToolbarItemVisible:YES];
|
||||
break;
|
||||
case VLCLibraryMusicSegment:
|
||||
case VLCLibraryArtistsMusicSubSegment:
|
||||
case VLCLibraryAlbumsMusicSubSegment:
|
||||
case VLCLibrarySongsMusicSubSegment:
|
||||
case VLCLibraryGenresMusicSubSegment:
|
||||
[self setForwardsBackwardsToolbarItemsVisible:NO];
|
||||
[self setSortOrderToolbarItemVisible:YES];
|
||||
[self setLibrarySearchToolbarItemVisible:YES];
|
||||
[self setViewModeToolbarItemVisible:YES];
|
||||
break;
|
||||
case VLCLibraryBrowseSegment:
|
||||
case VLCLibraryStreamsSegment:
|
||||
[self setForwardsBackwardsToolbarItemsVisible:YES];
|
||||
[self setSortOrderToolbarItemVisible:NO];
|
||||
[self setLibrarySearchToolbarItemVisible:NO];
|
||||
[self setViewModeToolbarItemVisible:YES];
|
||||
break;
|
||||
case VLCLibraryHighSentinelSegment:
|
||||
vlc_assert_unreachable();
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - item visibility handling
|
||||
|
||||
- (void)hideToolbarItem:(NSToolbarItem *)toolbarItem
|
||||
|
|
Loading…
Reference in New Issue