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;
+@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;
+@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.


_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to