[vlc-commits] [Git][videolan/vlc][master] macosx: Ensure Favorites and Groups libraries also have full-height appearance within window

Felix Paul Kühne (@fkuehne) gitlab at videolan.org
Sun Dec 14 12:58:55 UTC 2025



Felix Paul Kühne pushed to branch master at VideoLAN / VLC


Commits:
29796183 by Claudio Cambra at 2025-12-14T13:34:51+01:00
macosx: Ensure Favorites and Groups libraries also have full-height appearance within window

Signed-off-by: Claudio Cambra <developer at claudiocambra.com>

- - - - -


4 changed files:

- modules/gui/macosx/library/favorites-library/VLCLibraryFavoritesViewController.h
- modules/gui/macosx/library/favorites-library/VLCLibraryFavoritesViewController.m
- modules/gui/macosx/library/playlist-library/VLCLibraryPlaylistViewController.h
- modules/gui/macosx/library/playlist-library/VLCLibraryPlaylistViewController.m


Changes:

=====================================
modules/gui/macosx/library/favorites-library/VLCLibraryFavoritesViewController.h
=====================================
@@ -34,6 +34,7 @@ NS_ASSUME_NONNULL_BEGIN
 
 @interface VLCLibraryFavoritesViewController : VLCLibraryAbstractMediaLibrarySegmentViewController<VLCLibraryItemPresentingCapable>
 
+ at property (readonly, strong) NSView *favoritesLibraryView;
 @property (readonly, strong) NSSplitView *favoritesLibrarySplitView;
 @property (readonly, strong) NSScrollView *favoritesLibraryCollectionViewScrollView;
 @property (readonly, strong) VLCLibraryCollectionView *favoritesLibraryCollectionView;


=====================================
modules/gui/macosx/library/favorites-library/VLCLibraryFavoritesViewController.m
=====================================
@@ -22,6 +22,7 @@
 
 #import "VLCLibraryFavoritesViewController.h"
 
+#import "extensions/NSView+VLCAdditions.h"
 #import "extensions/NSString+Helpers.h"
 #import "library/VLCLibraryCollectionView.h"
 #import "library/VLCLibraryCollectionViewDelegate.h"
@@ -75,6 +76,7 @@
         [self setupFavoritesDataSource];
         [self setupFavoritesPlaceholderView];
         [self setupFavoritesLibraryViews];
+        [self setupFavoritesLibraryContainerView];
         [self setupNotifications];
     }
     
@@ -88,6 +90,7 @@
 
 - (void)setupProperties
 {
+    _favoritesLibraryView = [[NSView alloc] init];
     _favoritesLibrarySplitView = [[NSSplitView alloc] init];
     _favoritesLibraryCollectionViewScrollView = [[NSScrollView alloc] init];
     _favoritesLibraryCollectionView = [[VLCLibraryCollectionView alloc] init];
@@ -217,6 +220,7 @@
 
 - (void)setupFavoritesLibraryViews
 {
+    self.favoritesLibraryView.translatesAutoresizingMaskIntoConstraints = NO;
     self.favoritesLibraryGroupsTableViewScrollView.translatesAutoresizingMaskIntoConstraints = NO;
     self.favoritesLibraryGroupSelectionTableViewScrollView.translatesAutoresizingMaskIntoConstraints = NO;
     self.favoritesLibrarySplitView.translatesAutoresizingMaskIntoConstraints = NO;
@@ -247,6 +251,18 @@
     [self.favoritesLibrarySplitView addArrangedSubview:self.favoritesLibraryGroupSelectionTableViewScrollView];
 }
 
+- (void)setupFavoritesLibraryContainerView
+{
+    self.favoritesLibraryCollectionViewScrollView.translatesAutoresizingMaskIntoConstraints = NO;
+    self.favoritesLibrarySplitView.translatesAutoresizingMaskIntoConstraints = NO;
+
+    [self.favoritesLibraryView addSubview:self.favoritesLibraryCollectionViewScrollView];
+    [self.favoritesLibraryView addSubview:self.favoritesLibrarySplitView];
+
+    [self.favoritesLibraryCollectionViewScrollView applyConstraintsToFillSuperview];
+    [self.favoritesLibrarySplitView applyConstraintsToFillSuperview];
+}
+
 - (void)setupFavoritesPlaceholderView
 {
     _internalPlaceholderImageViewSizeConstraints = @[
@@ -344,10 +360,13 @@
 
 - (void)presentFavoritesLibraryView:(VLCLibraryViewModeSegment)viewModeSegment
 {
+    [self.libraryWindow displayLibraryView:self.favoritesLibraryView];
     if (viewModeSegment == VLCLibraryGridViewModeSegment) {
-        [self.libraryWindow displayLibraryView:self.favoritesLibraryCollectionViewScrollView];
+        self.favoritesLibrarySplitView.hidden = YES;
+        self.favoritesLibraryCollectionViewScrollView.hidden = NO;
     } else if (viewModeSegment == VLCLibraryListViewModeSegment) {
-        [self.libraryWindow displayLibraryView:self.favoritesLibrarySplitView];
+        self.favoritesLibrarySplitView.hidden = NO;
+        self.favoritesLibraryCollectionViewScrollView.hidden = YES;
         [_splitViewDelegate resetDefaultSplitForSplitView:self.favoritesLibrarySplitView];
     } else {
         NSAssert(false, @"View mode must be grid or list mode");


=====================================
modules/gui/macosx/library/playlist-library/VLCLibraryPlaylistViewController.h
=====================================
@@ -38,6 +38,7 @@ NS_ASSUME_NONNULL_BEGIN
 
 @interface VLCLibraryPlaylistViewController : VLCLibraryAbstractMediaLibrarySegmentViewController<NSSplitViewDelegate>
 
+ at property (readonly) NSView *libraryView;
 @property (readonly) NSSplitView *listViewSplitView;
 @property (readonly) NSScrollView *masterTableViewScrollView;
 @property (readonly) VLCLibraryTableView *masterTableView;


=====================================
modules/gui/macosx/library/playlist-library/VLCLibraryPlaylistViewController.m
=====================================
@@ -22,6 +22,7 @@
 
 #import "VLCLibraryPlaylistViewController.h"
 
+#import "extensions/NSView+VLCAdditions.h"
 #import "extensions/NSString+Helpers.h"
 
 #import "library/VLCLibraryCollectionView.h"
@@ -66,6 +67,7 @@
 
         [self setupPlaylistCollectionView];
         [self setupPlaylistTableView];
+        [self setupPlaylistLibraryContainerView];
         [self setupPlaylistPlaceholderView];
 
         NSNotificationCenter * const notificationCenter = NSNotificationCenter.defaultCenter;
@@ -106,6 +108,7 @@
 
 - (void)setupPlaylistCollectionView
 {
+    _libraryView = [[NSView alloc] init];
     _collectionViewScrollView = 
         [[NSScrollView alloc] initWithFrame:self.libraryWindow.libraryTargetView.frame];
     _collectionViewDelegate = [[VLCLibraryCollectionViewDelegate alloc] init];
@@ -257,18 +260,30 @@
 
 - (void)presentPlaylistLibraryView
 {
+    [self.libraryWindow displayLibraryView:self.libraryView];
     const VLCLibraryViewModeSegment viewModeSegment =
         VLCLibraryWindowPersistentPreferences.sharedInstance.playlistLibraryViewMode;
-    NSView *viewToPresent = nil;
 
     if (viewModeSegment == VLCLibraryGridViewModeSegment) {
-        viewToPresent = self.collectionViewScrollView;
+        self.listViewSplitView.hidden = YES;
+        self.collectionViewScrollView.hidden = NO;
     } else {
-        viewToPresent = self.listViewSplitView;
+        self.listViewSplitView.hidden = NO;
+        self.collectionViewScrollView.hidden = YES;
         [self.splitViewDelegate resetDefaultSplitForSplitView:self.listViewSplitView];
     }
-    NSParameterAssert(viewToPresent != nil);
-    [self.libraryWindow displayLibraryView:viewToPresent];
+}
+
+- (void)setupPlaylistLibraryContainerView
+{
+    self.collectionViewScrollView.translatesAutoresizingMaskIntoConstraints = NO;
+    self.listViewSplitView.translatesAutoresizingMaskIntoConstraints = NO;
+
+    [self.libraryView addSubview:self.collectionViewScrollView];
+    [self.libraryView addSubview:self.listViewSplitView];
+
+    [self.collectionViewScrollView applyConstraintsToFillSuperview];
+    [self.listViewSplitView applyConstraintsToFillSuperview];
 }
 
 - (void)updatePresentedView



View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/29796183b1b814583272459d0d900dc2dad413e9

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/29796183b1b814583272459d0d900dc2dad413e9
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