[vlc-commits] [Git][videolan/vlc][master] macosx: fix placeholder label shown when collection view has items
Felix Paul Kühne (@fkuehne)
gitlab at videolan.org
Sun May 3 12:07:18 UTC 2026
Felix Paul Kühne pushed to branch master at VideoLAN / VLC
Commits:
4360268a by Serhii Bykov at 2026-05-03T13:43:03+02:00
macosx: fix placeholder label shown when collection view has items
- - - - -
4 changed files:
- modules/gui/macosx/library/media-source/VLCLibraryMediaSourceViewController.m
- modules/gui/macosx/library/media-source/VLCMediaSourceBaseDataSource.h
- modules/gui/macosx/library/media-source/VLCMediaSourceBaseDataSource.m
- modules/gui/macosx/library/media-source/VLCMediaSourceDataSource.h
Changes:
=====================================
modules/gui/macosx/library/media-source/VLCLibraryMediaSourceViewController.m
=====================================
@@ -203,7 +203,7 @@
- (void)updatePlaceholderLabel:(NSNotification *)notification
{
- self.browsePlaceholderLabel.hidden = self.mediaSourceTableView.numberOfRows > 0;
+ self.browsePlaceholderLabel.hidden = self.baseDataSource.hasDisplayedItems;
}
- (NSView *)pathControlContainerView
=====================================
modules/gui/macosx/library/media-source/VLCMediaSourceBaseDataSource.h
=====================================
@@ -52,6 +52,7 @@ extern NSString * const VLCMediaSourceBaseDataSourceNodeChanged;
@property (readwrite, weak) NSView *pathControlContainerView;
@property (readwrite, nonatomic) VLCMediaSourceMode mediaSourceMode;
@property (readwrite, nonatomic) VLCMediaSourceDataSource *childDataSource;
+ at property (readonly, nonatomic) BOOL hasDisplayedItems;
@property (readwrite, weak) VLCLibraryMediaSourceViewNavigationStack *navigationStack;
=====================================
modules/gui/macosx/library/media-source/VLCMediaSourceBaseDataSource.m
=====================================
@@ -201,8 +201,7 @@ NSString * const VLCMediaSourceBaseDataSourceNodeChanged = @"VLCMediaSourceBaseD
_mediaSources = mediaSources;
_lanDeviceSnapshot = self.mediaSourceMode == VLCMediaSourceModeLAN ? [self buildLANDeviceSnapshot] : @[];
- [self.collectionView reloadData];
- [self.tableView reloadData];
+ [self reloadData];
}
- (void)setMediaSourceMode:(VLCMediaSourceMode)mediaSourceMode
@@ -215,6 +214,19 @@ NSString * const VLCMediaSourceBaseDataSourceNodeChanged = @"VLCMediaSourceBaseD
[self returnHome];
}
+- (BOOL)hasDisplayedItems
+{
+ if (_childDataSource != nil) {
+ return _childDataSource.nodeToDisplay.numberOfChildren > 0;
+ }
+
+ if (_mediaSourceMode == VLCMediaSourceModeLAN) {
+ return _lanDeviceSnapshot.count > 0;
+ }
+
+ return _mediaSources.count > 0;
+}
+
#pragma mark - collection view data source
- (NSInteger)numberOfSectionsInCollectionView:(NSCollectionView *)collectionView
=====================================
modules/gui/macosx/library/media-source/VLCMediaSourceDataSource.h
=====================================
@@ -46,6 +46,7 @@ extern NSString * const VLCMediaSourceDataSourceNodeChanged;
@property (readwrite, weak) VLCInputNodePathControl *pathControl;
@property (readwrite, weak) VLCLibraryMediaSourceViewNavigationStack *navigationStack;
@property (readwrite, weak) VLCMediaSourceBaseDataSource *parentBaseDataSource;
+ at property (readonly, nonatomic) BOOL hasDisplayedItems;
- (instancetype)initWithParentBaseDataSource:(VLCMediaSourceBaseDataSource *)parentBaseDataSource;
- (void)setupViews;
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/4360268a8f1f5071d371641056161ef5bddf3c08
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/4360268a8f1f5071d371641056161ef5bddf3c08
You're receiving this email because of your account on code.videolan.org.
More information about the vlc-commits
mailing list