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 <[email protected]>
- - - - -
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>
+@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>
+@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_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits