[vlc-commits] macosx/library: merge both audio tabs visually into one

Felix Paul Kühne git at videolan.org
Tue Aug 13 11:48:31 CEST 2019


vlc | branch: master | Felix Paul Kühne <felix at feepk.net> | Tue Aug 13 11:45:26 2019 +0200| [deb01aa272b5122eedae7539a24763ebea183ba1] | committer: Felix Paul Kühne

macosx/library: merge both audio tabs visually into one

This allows layout switches between grid and list view

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=deb01aa272b5122eedae7539a24763ebea183ba1
---

 modules/gui/macosx/library/VLCLibraryWindow.m      | 92 +++++++++++-----------
 .../media-source/VLCMediaSourceBaseDataSource.h    |  1 +
 .../media-source/VLCMediaSourceBaseDataSource.m    |  7 ++
 3 files changed, 55 insertions(+), 45 deletions(-)

diff --git a/modules/gui/macosx/library/VLCLibraryWindow.m b/modules/gui/macosx/library/VLCLibraryWindow.m
index f57d701413..264ec7ce19 100644
--- a/modules/gui/macosx/library/VLCLibraryWindow.m
+++ b/modules/gui/macosx/library/VLCLibraryWindow.m
@@ -174,14 +174,13 @@ static int ShowController(vlc_object_t *p_this, const char *psz_variable,
     _fspanel = [[VLCFSPanelController alloc] init];
     [_fspanel showWindow:self];
 
-    _segmentedTitleControl.segmentCount = 5;
+    _segmentedTitleControl.segmentCount = 4;
     [_segmentedTitleControl setTarget:self];
     [_segmentedTitleControl setAction:@selector(segmentedControlAction:)];
     [_segmentedTitleControl setLabel:_NS("Video") forSegment:0];
     [_segmentedTitleControl setLabel:_NS("Music") forSegment:1];
-    [_segmentedTitleControl setLabel:_NS("Music") forSegment:2];
-    [_segmentedTitleControl setLabel:_NS("Local Network") forSegment:3];
-    [_segmentedTitleControl setLabel:_NS("Internet") forSegment:4];
+    [_segmentedTitleControl setLabel:_NS("Local Network") forSegment:2];
+    [_segmentedTitleControl setLabel:_NS("Internet") forSegment:3];
     [_segmentedTitleControl sizeToFit];
     [_segmentedTitleControl setSelectedSegment:0];
 
@@ -386,48 +385,50 @@ static int ShowController(vlc_object_t *p_this, const char *psz_variable,
             break;
 
         case 1:
-            if (_mediaSourceView.superview != nil) {
-                [_mediaSourceView removeFromSuperview];
-            }
-            if (_videoLibraryStackView.superview != nil) {
-                [_videoLibraryStackView removeFromSuperview];
-            }
-            if (_tiledAudioView.superview != nil) {
-                [_tiledAudioView removeFromSuperview];
-            }
-            if (_audioLibrarySplitView.superview == nil) {
-                _audioLibrarySplitView.translatesAutoresizingMaskIntoConstraints = NO;
-                [_libraryTargetView addSubview:_audioLibrarySplitView];
-                NSDictionary *dict = NSDictionaryOfVariableBindings(_audioLibrarySplitView);
-                [_libraryTargetView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_audioLibrarySplitView(>=572.)]|" options:0 metrics:0 views:dict]];
-                [_libraryTargetView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[_audioLibrarySplitView(>=444.)]|" options:0 metrics:0 views:dict]];
-            }
-            [_libraryAudioDataSource reloadAppearance];
-            [_audioCollectionSelectionTableView reloadData];
-            _librarySortButton.hidden = NO;
-            _audioSegmentedControl.hidden = NO;
-            break;
-
-        case 2:
-            if (_mediaSourceView.superview != nil) {
-                [_mediaSourceView removeFromSuperview];
-            }
-            if (_videoLibraryStackView.superview != nil) {
-                [_videoLibraryStackView removeFromSuperview];
-            }
-            if (_audioLibrarySplitView.superview != nil) {
-                [_audioLibrarySplitView removeFromSuperview];
-            }
-            if (_tiledAudioView.superview == nil) {
-                _tiledAudioView.translatesAutoresizingMaskIntoConstraints = NO;
-                [_libraryTargetView addSubview:_tiledAudioView];
-                NSDictionary *dict = NSDictionaryOfVariableBindings(_tiledAudioView);
-                [_libraryTargetView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_tiledAudioView(>=572.)]|" options:0 metrics:0 views:dict]];
-                [_libraryTargetView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[_tiledAudioView(>=444.)]|" options:0 metrics:0 views:dict]];
+            if (self.gridVsListSegmentedControl.selectedSegment == 0) {
+                if (_mediaSourceView.superview != nil) {
+                    [_mediaSourceView removeFromSuperview];
+                }
+                if (_videoLibraryStackView.superview != nil) {
+                    [_videoLibraryStackView removeFromSuperview];
+                }
+                if (_audioLibrarySplitView.superview != nil) {
+                    [_audioLibrarySplitView removeFromSuperview];
+                }
+                if (_tiledAudioView.superview == nil) {
+                    _tiledAudioView.translatesAutoresizingMaskIntoConstraints = NO;
+                    [_libraryTargetView addSubview:_tiledAudioView];
+                    NSDictionary *dict = NSDictionaryOfVariableBindings(_tiledAudioView);
+                    [_libraryTargetView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_tiledAudioView(>=572.)]|" options:0 metrics:0 views:dict]];
+                    [_libraryTargetView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[_tiledAudioView(>=444.)]|" options:0 metrics:0 views:dict]];
+                }
+                [_tiledAudioViewController reloadAppearance];
+                _librarySortButton.hidden = NO;
+                _audioSegmentedControl.hidden = NO;
+            } else {
+                if (_mediaSourceView.superview != nil) {
+                    [_mediaSourceView removeFromSuperview];
+                }
+                if (_videoLibraryStackView.superview != nil) {
+                    [_videoLibraryStackView removeFromSuperview];
+                }
+                if (_tiledAudioView.superview != nil) {
+                    [_tiledAudioView removeFromSuperview];
+                }
+                if (_audioLibrarySplitView.superview == nil) {
+                    _audioLibrarySplitView.translatesAutoresizingMaskIntoConstraints = NO;
+                    [_libraryTargetView addSubview:_audioLibrarySplitView];
+                    NSDictionary *dict = NSDictionaryOfVariableBindings(_audioLibrarySplitView);
+                    [_libraryTargetView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_audioLibrarySplitView(>=572.)]|" options:0 metrics:0 views:dict]];
+                    [_libraryTargetView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[_audioLibrarySplitView(>=444.)]|" options:0 metrics:0 views:dict]];
+                }
+                [_libraryAudioDataSource reloadAppearance];
+                [_audioCollectionSelectionTableView reloadData];
+                _librarySortButton.hidden = NO;
+                _audioSegmentedControl.hidden = NO;
             }
-            [_tiledAudioViewController reloadAppearance];
-            _librarySortButton.hidden = NO;
-            _audioSegmentedControl.hidden = NO;
+            self.gridVsListSegmentedControl.target = self;
+            self.gridVsListSegmentedControl.action = @selector(segmentedControlAction:);
             break;
 
         default:
@@ -450,6 +451,7 @@ static int ShowController(vlc_object_t *p_this, const char *psz_variable,
             _mediaSourceDataSource.mediaSourceMode = _segmentedTitleControl.selectedSegment == 3 ? VLCMediaSourceModeLAN : VLCMediaSourceModeInternet;
             _librarySortButton.hidden = YES;
             _audioSegmentedControl.hidden = YES;
+            [_mediaSourceDataSource reloadViews];
             break;
     }
 }
diff --git a/modules/gui/macosx/media-source/VLCMediaSourceBaseDataSource.h b/modules/gui/macosx/media-source/VLCMediaSourceBaseDataSource.h
index df6f4044a3..d1e3ce21f4 100644
--- a/modules/gui/macosx/media-source/VLCMediaSourceBaseDataSource.h
+++ b/modules/gui/macosx/media-source/VLCMediaSourceBaseDataSource.h
@@ -40,6 +40,7 @@ NS_ASSUME_NONNULL_BEGIN
 @property (readwrite, nonatomic) VLCMediaSourceMode mediaSourceMode;
 
 - (void)setupViews;
+- (void)reloadViews;
 
 @end
 
diff --git a/modules/gui/macosx/media-source/VLCMediaSourceBaseDataSource.m b/modules/gui/macosx/media-source/VLCMediaSourceBaseDataSource.m
index 83cf79a7a4..ff7d1ebe08 100644
--- a/modules/gui/macosx/media-source/VLCMediaSourceBaseDataSource.m
+++ b/modules/gui/macosx/media-source/VLCMediaSourceBaseDataSource.m
@@ -97,6 +97,13 @@ NSString *VLCMediaSourceTableViewCellIdentifier = @"VLCMediaSourceTableViewCellI
     _gridViewMode = YES;
 }
 
+- (void)reloadViews
+{
+    self.gridVsListSegmentedControl.action = @selector(switchGripOrListMode:);
+    self.gridVsListSegmentedControl.target = self;
+    self.gridVsListSegmentedControl.selectedSegment = _gridViewMode ? 0 : 1;
+}
+
 - (void)loadMediaSources
 {
     self.pathControl.URL = nil;



More information about the vlc-commits mailing list