[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