[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