[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