[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