[vlc-commits] [Git][videolan/vlc][master] 3 commits: macosx: Add mainVideoModeEnabled property to split view controller
Felix Paul Kühne (@fkuehne)
gitlab at videolan.org
Mon Mar 17 05:17:20 UTC 2025
Felix Paul Kühne pushed to branch master at VideoLAN / VLC
Commits:
b161125a by Claudio Cambra at 2025-03-17T05:04:04+00:00
macosx: Add mainVideoModeEnabled property to split view controller
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
056b8aa7 by Claudio Cambra at 2025-03-17T05:04:04+00:00
macosx: Ensure there is no way to show the nav sidebar when main video mode is enabled
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
14f4de60 by Claudio Cambra at 2025-03-17T05:04:04+00:00
macosx: After forcefully collapsing sidebar, return to its previous collapsed state
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
3 changed files:
- modules/gui/macosx/library/VLCLibraryWindow.m
- modules/gui/macosx/library/VLCLibraryWindowSplitViewController.h
- modules/gui/macosx/library/VLCLibraryWindowSplitViewController.m
Changes:
=====================================
modules/gui/macosx/library/VLCLibraryWindow.m
=====================================
@@ -537,7 +537,7 @@ static void addShadow(NSImageView *__unsafe_unretained imageView)
[self hideControlsBarImmediately];
[self.videoViewController showControls];
- self.splitViewController.multifunctionSidebarViewController.mainVideoModeEnabled = YES;
+ self.splitViewController.mainVideoModeEnabled = YES;
if ([self.librarySegmentViewController isKindOfClass:VLCLibraryAbstractMediaLibrarySegmentViewController.class]) {
[(VLCLibraryAbstractMediaLibrarySegmentViewController *)self.librarySegmentViewController disconnect];
@@ -555,7 +555,8 @@ static void addShadow(NSImageView *__unsafe_unretained imageView)
[self disableVideoTitleBarMode];
[self showControlsBarImmediately];
[self updateArtworkButtonEnabledState];
- self.splitViewController.multifunctionSidebarViewController.mainVideoModeEnabled = NO;
+
+ self.splitViewController.mainVideoModeEnabled = NO;
if (self.presentLoadingOverlayOnVideoPlaybackHide) {
[self showLoadingOverlay];
=====================================
modules/gui/macosx/library/VLCLibraryWindowSplitViewController.h
=====================================
@@ -46,6 +46,8 @@ typedef NS_ENUM(NSUInteger, VLCLibraryWindowSplitViewDividerIndex) {
@property (readonly) NSSplitViewItem *libraryTargetViewItem;
@property (readonly) NSSplitViewItem *multifunctionSidebarItem;
+ at property (readwrite, nonatomic) BOOL mainVideoModeEnabled;
+
- (IBAction)toggleNavigationSidebar:(id)sender;
- (IBAction)toggleMultifunctionSidebar:(id)sender;
=====================================
modules/gui/macosx/library/VLCLibraryWindowSplitViewController.m
=====================================
@@ -31,6 +31,12 @@
#import "windows/video/VLCMainVideoViewController.h"
+ at interface VLCLibraryWindowSplitViewController ()
+
+ at property (readwrite) BOOL priorNavSidebarCollapsedState;
+
+ at end
+
@implementation VLCLibraryWindowSplitViewController
- (void)viewDidLoad
@@ -89,6 +95,9 @@
- (IBAction)toggleNavigationSidebar:(id)sender
{
+ if (self.mainVideoModeEnabled) {
+ return;
+ }
const BOOL navigationSidebarCollapsed = self.navSidebarItem.isCollapsed;
self.navSidebarItem.animator.collapsed = !navigationSidebarCollapsed;
}
@@ -104,4 +113,24 @@
self.libraryWindow.videoViewController.playQueueButton.state = controlState;
}
+- (void)setMainVideoModeEnabled:(BOOL)mainVideoModeEnabled
+{
+ if (self.mainVideoModeEnabled == mainVideoModeEnabled) {
+ return;
+ } else if (mainVideoModeEnabled) {
+ self.priorNavSidebarCollapsedState = self.navSidebarItem.isCollapsed;
+ self.navSidebarItem.collapsed = YES;
+ } else {
+ self.navSidebarItem.collapsed = self.priorNavSidebarCollapsedState;
+ }
+
+ _mainVideoModeEnabled = mainVideoModeEnabled;
+ self.multifunctionSidebarViewController.mainVideoModeEnabled = mainVideoModeEnabled;
+}
+
+- (BOOL)splitView:(NSSplitView *)splitView canCollapseSubview:(NSView *)subview
+{
+ return subview != self.navSidebarViewController.view || !self.mainVideoModeEnabled;
+}
+
@end
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/1ba97cbec5fb3fff28653bfff17c81a6357343c6...14f4de6067a238fff58f45b999b8c432d57eb01b
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/1ba97cbec5fb3fff28653bfff17c81a6357343c6...14f4de6067a238fff58f45b999b8c432d57eb01b
You're receiving this email because of your account on code.videolan.org.
VideoLAN code repository instance
More information about the vlc-commits
mailing list