[vlc-commits] [Git][videolan/vlc][master] 12 commits: macosx: Remove the VLC cone title from the sidebar
Felix Paul Kühne (@fkuehne)
gitlab at videolan.org
Mon Nov 11 12:28:40 UTC 2024
Felix Paul Kühne pushed to branch master at VideoLAN / VLC
Commits:
0d680f2d by Claudio Cambra at 2024-11-11T12:11:02+00:00
macosx: Remove the VLC cone title from the sidebar
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
0bfb1eee by Claudio Cambra at 2024-11-11T12:11:02+00:00
macosx: Reposition groups segment in library sidebar
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
f group repos
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
55ff79fb by Claudio Cambra at 2024-11-11T12:11:02+00:00
macosx: Place home segment above library header
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
432e5681 by Claudio Cambra at 2024-11-11T12:11:02+00:00
macosx: Add an "explore" header for browse and streams
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
fcb448c9 by Claudio Cambra at 2024-11-11T12:11:02+00:00
macosx: Ensure icons for headers are accent coloured
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
108c2cd2 by Claudio Cambra at 2024-11-11T12:11:02+00:00
macosx: Use fill icon for explore header
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
2d525106 by Claudio Cambra at 2024-11-11T12:11:02+00:00
macosx: Add a vlc icon to the toolbar in the library window
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
94a58174 by Claudio Cambra at 2024-11-11T12:11:02+00:00
macosx: Add outlet for vlc icon toolbar
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
eb57c2f9 by Claudio Cambra at 2024-11-11T12:11:02+00:00
macosx: Ensure VLC icon toolbar item is visible
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
15c75c18 by Claudio Cambra at 2024-11-11T12:11:02+00:00
macosx: Manually init image for VLC icon in toolbar
Ensures the image matches the app icon while also fixing sizing issues
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
e3823cce by Claudio Cambra at 2024-11-11T12:11:02+00:00
macosx: Ensure navbar visibility toggle is always visible in library window
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
cd890bb1 by Claudio Cambra at 2024-11-11T12:11:02+00:00
macosx: Remove images from outline view group items
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
10 changed files:
- modules/gui/macosx/UI/VLCLibraryWindow.xib
- modules/gui/macosx/UI/VLCLibraryWindowNavigationSidebarView.xib
- modules/gui/macosx/library/VLCLibrarySegment.h
- modules/gui/macosx/library/VLCLibrarySegment.m
- modules/gui/macosx/library/VLCLibraryUIUnits.h
- modules/gui/macosx/library/VLCLibraryUIUnits.m
- modules/gui/macosx/library/VLCLibraryWindowNavigationSidebarViewController.m
- modules/gui/macosx/library/VLCLibraryWindowSplitViewController.m
- modules/gui/macosx/library/VLCLibraryWindowToolbarDelegate.h
- modules/gui/macosx/library/VLCLibraryWindowToolbarDelegate.m
Changes:
=====================================
modules/gui/macosx/UI/VLCLibraryWindow.xib
=====================================
@@ -472,8 +472,22 @@
</connections>
</button>
</toolbarItem>
+ <toolbarItem implicitItemIdentifier="068A0B88-812C-44BE-8997-704367CF5226" label="VLC" paletteLabel="VLC" image="VLC" title="VLC" id="XND-sc-TDa">
+ <nil key="toolTip"/>
+ <size key="minSize" width="28" height="28"/>
+ <size key="maxSize" width="28" height="28"/>
+ <imageView key="view" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="KR4-pI-siG">
+ <rect key="frame" x="1" y="14" width="28" height="28"/>
+ <constraints>
+ <constraint firstAttribute="width" constant="28" id="Vst-mC-big"/>
+ <constraint firstAttribute="width" secondItem="KR4-pI-siG" secondAttribute="height" multiplier="1:1" id="Y7q-Mz-W5J"/>
+ </constraints>
+ <imageCell key="cell" controlSize="small" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="VLC" id="AiE-o7-B5v"/>
+ </imageView>
+ </toolbarItem>
</allowedToolbarItems>
<defaultToolbarItems>
+ <toolbarItem reference="XND-sc-TDa"/>
<toolbarItem reference="5oK-0W-JJh"/>
<toolbarItem reference="6Ie-eu-GDn"/>
<toolbarItem reference="g2e-7o-Qet"/>
@@ -1530,6 +1544,7 @@
<outlet property="toggleNavSidebarToolbarItem" destination="5oK-0W-JJh" id="xoK-Zo-nwh"/>
<outlet property="togglePlaylistToolbarItem" destination="Lf2-ec-tHh" id="PX9-gs-T5Z"/>
<outlet property="toolbar" destination="pr3-TD-J2z" id="0bl-3Z-WiA"/>
+ <outlet property="vlcIconToolbarItem" destination="XND-sc-TDa" id="bFb-Nx-LRb"/>
</connections>
</customObject>
<viewController id="Kkr-kI-gpb" customClass="VLCLibraryWindowSplitViewController">
=====================================
modules/gui/macosx/UI/VLCLibraryWindowNavigationSidebarView.xib
=====================================
@@ -39,7 +39,7 @@
</textFieldCell>
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
<prototypeCellViews>
- <tableCellView identifier="HeaderCell" id="kOq-UZ-niu">
+ <tableCellView identifier="VLCLibrarySegmentHeaderCellIdentifier" id="kOq-UZ-niu">
<rect key="frame" x="11" y="0.0" width="29" height="0.0"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
=====================================
modules/gui/macosx/library/VLCLibrarySegment.h
=====================================
@@ -29,9 +29,8 @@ extern NSString * const VLCLibraryBookmarkedLocationsChanged;
typedef NS_ENUM(NSInteger, VLCLibrarySegmentType) {
VLCLibraryLowSentinelSegment = -1,
- VLCLibraryVLCTitleSegment,
- VLCLibraryHeaderSegment,
VLCLibraryHomeSegment,
+ VLCLibraryHeaderSegment,
VLCLibraryVideoSegment,
VLCLibraryShowsVideoSubSegment,
VLCLibraryMusicSegment,
@@ -42,11 +41,12 @@ typedef NS_ENUM(NSInteger, VLCLibrarySegmentType) {
VLCLibraryPlaylistsSegment,
VLCLibraryPlaylistsMusicOnlyPlaylistsSubSegment,
VLCLibraryPlaylistsVideoOnlyPlaylistsSubSegment,
+ VLCLibraryGroupsSegment,
+ VLCLibraryGroupsGroupSubSegment,
+ VLCLibraryExploreHeaderSegment,
VLCLibraryBrowseSegment,
VLCLibraryBrowseBookmarkedLocationSubSegment,
VLCLibraryStreamsSegment,
- VLCLibraryGroupsSegment,
- VLCLibraryGroupsGroupSubSegment,
VLCLibraryHighSentinelSegment,
};
=====================================
modules/gui/macosx/library/VLCLibrarySegment.m
=====================================
@@ -42,15 +42,15 @@ NSString * const VLCLibraryBookmarkedLocationsChanged = @"VLCLibraryBookmarkedLo
+ (NSArray<VLCLibrarySegment *> *)librarySegments
{
return @[
- [VLCLibrarySegment segmentWithSegmentType:VLCLibraryVLCTitleSegment],
- [VLCLibrarySegment segmentWithSegmentType:VLCLibraryHeaderSegment],
[VLCLibrarySegment segmentWithSegmentType:VLCLibraryHomeSegment],
+ [VLCLibrarySegment segmentWithSegmentType:VLCLibraryHeaderSegment],
[VLCLibrarySegment segmentWithSegmentType:VLCLibraryVideoSegment],
[VLCLibrarySegment segmentWithSegmentType:VLCLibraryMusicSegment],
[VLCLibrarySegment segmentWithSegmentType:VLCLibraryPlaylistsSegment],
+ [VLCLibrarySegment segmentWithSegmentType:VLCLibraryGroupsSegment],
+ [VLCLibrarySegment segmentWithSegmentType:VLCLibraryExploreHeaderSegment],
[VLCLibrarySegment segmentWithSegmentType:VLCLibraryBrowseSegment],
[VLCLibrarySegment segmentWithSegmentType:VLCLibraryStreamsSegment],
- [VLCLibrarySegment segmentWithSegmentType:VLCLibraryGroupsSegment]
];
}
@@ -181,8 +181,6 @@ NSString * const VLCLibraryBookmarkedLocationsChanged = @"VLCLibraryBookmarkedLo
- (NSString *)displayStringForType:(VLCLibrarySegmentType)segmentType
{
switch (segmentType) {
- case VLCLibraryVLCTitleSegment:
- return _NS("VLC");
case VLCLibraryHeaderSegment:
return _NS("Library");
case VLCLibraryHomeSegment:
@@ -207,16 +205,18 @@ NSString * const VLCLibraryBookmarkedLocationsChanged = @"VLCLibraryBookmarkedLo
return _NS("Music playlists");
case VLCLibraryPlaylistsVideoOnlyPlaylistsSubSegment:
return _NS("Video playlists");
+ case VLCLibraryGroupsSegment:
+ return _NS("Groups");
+ case VLCLibraryGroupsGroupSubSegment:
+ NSAssert(NO, @"displayStringForType should not be called for this segment type");
+ case VLCLibraryExploreHeaderSegment:
+ return _NS("Explore");
case VLCLibraryBrowseSegment:
return _NS("Browse");
case VLCLibraryBrowseBookmarkedLocationSubSegment:
NSAssert(NO, @"displayStringForType should not be called for this segment type");
case VLCLibraryStreamsSegment:
return _NS("Streams");
- case VLCLibraryGroupsSegment:
- return _NS("Groups");
- case VLCLibraryGroupsGroupSubSegment:
- NSAssert(NO, @"displayStringForType should not be called for this segment type");
case VLCLibraryLowSentinelSegment:
case VLCLibraryHighSentinelSegment:
NSAssert(NO, @"Invalid segment value");
@@ -227,8 +227,6 @@ NSString * const VLCLibraryBookmarkedLocationsChanged = @"VLCLibraryBookmarkedLo
- (NSImage *)oldIconImageForType:(VLCLibrarySegmentType)segmentType
{
switch (segmentType) {
- case VLCLibraryVLCTitleSegment:
- return NSApp.applicationIconImage;
case VLCLibraryHeaderSegment:
return nil;
case VLCLibraryHomeSegment:
@@ -248,14 +246,16 @@ NSString * const VLCLibraryBookmarkedLocationsChanged = @"VLCLibraryBookmarkedLo
return [NSImage imageNamed:@"sidebar-music"];
case VLCLibraryPlaylistsVideoOnlyPlaylistsSubSegment:
return [NSImage imageNamed:@"sidebar-movie"];
+ case VLCLibraryGroupsSegment:
+ case VLCLibraryGroupsGroupSubSegment:
+ return [NSImage imageNamed:@"NSTouchBarTagIcon"];
+ case VLCLibraryExploreHeaderSegment:
+ return nil;
case VLCLibraryBrowseSegment:
case VLCLibraryBrowseBookmarkedLocationSubSegment:
return [NSImage imageNamed:@"NSFolder"];
case VLCLibraryStreamsSegment:
- return [NSImage imageNamed:@"NSActionTemplate"];
- case VLCLibraryGroupsSegment:
- case VLCLibraryGroupsGroupSubSegment:
- return [NSImage imageNamed:@"NSTouchBarTagIcon"];
+ return [NSImage imageNamed:@"NSActionTemplate"];
case VLCLibraryLowSentinelSegment:
case VLCLibraryHighSentinelSegment:
NSAssert(NO, @"Invalid segment value");
@@ -269,8 +269,6 @@ NSString * const VLCLibraryBookmarkedLocationsChanged = @"VLCLibraryBookmarkedLo
{
if (@available(macOS 11.0, *)) {
switch (segmentType) {
- case VLCLibraryVLCTitleSegment:
- return NSApp.applicationIconImage;
case VLCLibraryHeaderSegment:
return [NSImage imageWithSystemSymbolName:@"books.vertical.fill"
accessibilityDescription:@"Library icon"];
@@ -307,6 +305,15 @@ NSString * const VLCLibraryBookmarkedLocationsChanged = @"VLCLibraryBookmarkedLo
case VLCLibraryPlaylistsVideoOnlyPlaylistsSubSegment:
return [NSImage imageWithSystemSymbolName:@"list.and.film"
accessibilityDescription:@"Video playlists icon"];
+ case VLCLibraryGroupsSegment:
+ return [NSImage imageWithSystemSymbolName:@"rectangle.3.group"
+ accessibilityDescription:@"Groups icon"];
+ case VLCLibraryGroupsGroupSubSegment:
+ return [NSImage imageWithSystemSymbolName:@"play.rectangle"
+ accessibilityDescription:@"Group icon"];
+ case VLCLibraryExploreHeaderSegment:
+ return [NSImage imageWithSystemSymbolName:@"sailboat.fill"
+ accessibilityDescription:@"Explore icon"];
case VLCLibraryBrowseSegment:
return [NSImage imageWithSystemSymbolName:@"folder"
accessibilityDescription:@"Browse icon"];
@@ -316,12 +323,6 @@ NSString * const VLCLibraryBookmarkedLocationsChanged = @"VLCLibraryBookmarkedLo
case VLCLibraryStreamsSegment:
return [NSImage imageWithSystemSymbolName:@"antenna.radiowaves.left.and.right"
accessibilityDescription:@"Streams icon"];
- case VLCLibraryGroupsSegment:
- return [NSImage imageWithSystemSymbolName:@"rectangle.3.group"
- accessibilityDescription:@"Groups icon"];
- case VLCLibraryGroupsGroupSubSegment:
- return [NSImage imageWithSystemSymbolName:@"play.rectangle"
- accessibilityDescription:@"Group icon"];
case VLCLibraryLowSentinelSegment:
case VLCLibraryHighSentinelSegment:
NSAssert(NO, @"Invalid segment value");
=====================================
modules/gui/macosx/library/VLCLibraryUIUnits.h
=====================================
@@ -68,6 +68,7 @@ NS_ASSUME_NONNULL_BEGIN
@property (class, readonly) const CGFloat librarySplitViewSelectionViewDefaultWidth;
@property (class, readonly) const CGFloat librarySplitViewMainViewMinimumWidth;
+ at property (class, readonly) const CGFloat libraryWindowNavSidebarMinWidth;
@property (class, readonly) const CGFloat libraryWindowNavSidebarMaxWidth;
@property (class, readonly) const CGFloat libraryWindowPlaylistSidebarMaxWidth;
=====================================
modules/gui/macosx/library/VLCLibraryUIUnits.m
=====================================
@@ -221,6 +221,11 @@
return 48.;
}
++ (const CGFloat)libraryWindowNavSidebarMinWidth
+{
+ return 180.;
+}
+
+ (const CGFloat)libraryWindowNavSidebarMaxWidth
{
return 300.;
=====================================
modules/gui/macosx/library/VLCLibraryWindowNavigationSidebarViewController.m
=====================================
@@ -29,6 +29,8 @@
#import "library/VLCLibraryWindow.h"
#import "library/VLCLibraryWindowNavigationSidebarOutlineView.h"
+#import "extensions/NSColor+VLCAdditions.h"
+
// This needs to match whatever identifier has been set in the library window XIB
static NSString * const VLCLibrarySegmentCellIdentifier = @"VLCLibrarySegmentCellIdentifier";
@@ -157,7 +159,7 @@ static NSString * const VLCLibrarySegmentCellIdentifier = @"VLCLibrarySegmentCel
segmentType < VLCLibraryHighSentinelSegment,
@"Invalid segment type value provided");
- if (segmentType == VLCLibraryVLCTitleSegment || segmentType == VLCLibraryHeaderSegment) {
+ if (segmentType == VLCLibraryHeaderSegment || segmentType == VLCLibraryExploreHeaderSegment) {
return;
}
@@ -183,10 +185,18 @@ static NSString * const VLCLibrarySegmentCellIdentifier = @"VLCLibrarySegmentCel
{
NSAssert(outlineView == _outlineView, @"VLCLibraryWindowNavigationSidebarController should only be a delegate for the libraryWindow nav sidebar outline view!");
- NSTableCellView * const cellView = [outlineView makeViewWithIdentifier:@"VLCLibrarySegmentCellIdentifier" owner:self];
+ const BOOL isHeader = [self outlineView:outlineView isGroupItem:item];
+ NSTableCellView * const cellView = isHeader
+ ? [outlineView makeViewWithIdentifier:@"VLCLibrarySegmentHeaderCellIdentifier" owner:self]
+ : [outlineView makeViewWithIdentifier:@"VLCLibrarySegmentCellIdentifier" owner:self];
NSAssert(cellView != nil, @"Provided cell view for navigation outline view should be valid!");
[cellView.textField bind:NSValueBinding toObject:cellView withKeyPath:@"objectValue.displayString" options:nil];
[cellView.imageView bind:NSImageBinding toObject:cellView withKeyPath:@"objectValue.displayImage" options:nil];
+
+ if (@available(macOS 10.14, *)) {
+ cellView.imageView.contentTintColor = NSColor.VLCAccentColor;
+ }
+
return cellView;
}
@@ -198,8 +208,7 @@ static NSString * const VLCLibrarySegmentCellIdentifier = @"VLCLibrarySegmentCel
NSTreeNode * const node = [self.outlineView itemAtRow:proposedSelectionIndexes.firstIndex];
VLCLibrarySegment * const segment = (VLCLibrarySegment *)node.representedObject;
- if (segment.segmentType == VLCLibraryVLCTitleSegment ||
- segment.segmentType == VLCLibraryHeaderSegment) {
+ if (segment.segmentType == VLCLibraryHeaderSegment || segment.segmentType == VLCLibraryExploreHeaderSegment) {
return NSIndexSet.indexSet;
} else if (segment.segmentType == VLCLibraryMusicSegment) {
[self.outlineView expandItem:[self nodeForSegmentType:VLCLibraryMusicSegment]];
@@ -240,7 +249,7 @@ static NSString * const VLCLibrarySegmentCellIdentifier = @"VLCLibrarySegmentCel
{
NSTreeNode * const treeNode = (NSTreeNode *)item;
VLCLibrarySegment * const segment = (VLCLibrarySegment *)treeNode.representedObject;
- return segment.segmentType == VLCLibraryHeaderSegment;
+ return segment.segmentType == VLCLibraryHeaderSegment || segment.segmentType == VLCLibraryExploreHeaderSegment;
}
@end
=====================================
modules/gui/macosx/library/VLCLibraryWindowSplitViewController.m
=====================================
@@ -61,6 +61,7 @@
}
_navSidebarItem.preferredThicknessFraction = 0.2;
+ _navSidebarItem.minimumThickness = VLCLibraryUIUnits.libraryWindowNavSidebarMinWidth;
_navSidebarItem.maximumThickness = VLCLibraryUIUnits.libraryWindowNavSidebarMaxWidth;
self.multifunctionSidebarItem.preferredThicknessFraction = 0.2;
=====================================
modules/gui/macosx/library/VLCLibraryWindowToolbarDelegate.h
=====================================
@@ -37,6 +37,7 @@ extern NSString * const VLCLibraryWindowTrackingSeparatorToolbarItemIdentifier;
@property (readonly, strong) NSToolbarItem *trackingSeparatorToolbarItem;
+ at property (readwrite, weak) IBOutlet NSToolbarItem *vlcIconToolbarItem;
@property (readwrite, weak) IBOutlet NSToolbarItem *toggleNavSidebarToolbarItem;
@property (readwrite, weak) IBOutlet NSToolbarItem *backwardsToolbarItem;
@property (readwrite, weak) IBOutlet NSToolbarItem *forwardsToolbarItem;
=====================================
modules/gui/macosx/library/VLCLibraryWindowToolbarDelegate.m
=====================================
@@ -73,6 +73,13 @@ NSString * const VLCLibraryWindowTrackingSeparatorToolbarItemIdentifier =
self.sortOrderToolbarItem.toolTip = _NS("Select Sorting Mode");
self.togglePlaylistToolbarItem.toolTip = _NS("Toggle Playqueue");
+ self.vlcIconToolbarItem.minSize = NSMakeSize(18, 18);
+ self.vlcIconToolbarItem.maxSize = NSMakeSize(18, 18);
+
+ NSImageView * const vlcIconImageView = [[NSImageView alloc] initWithFrame:NSZeroRect];
+ vlcIconImageView.image = NSApp.applicationIconImage;
+ self.vlcIconToolbarItem.view = vlcIconImageView;;
+
// Hide renderers toolbar item at first. Start discoveries and wait for notifications about
// renderers being added or removed to keep hidden or show depending on outcome
[self hideToolbarItem:self.renderersToolbarItem];
@@ -144,8 +151,8 @@ NSString * const VLCLibraryWindowTrackingSeparatorToolbarItemIdentifier =
{
switch(segment) {
case VLCLibraryLowSentinelSegment:
- case VLCLibraryVLCTitleSegment:
case VLCLibraryHeaderSegment:
+ case VLCLibraryExploreHeaderSegment:
vlc_assert_unreachable();
case VLCLibraryHomeSegment:
[self setForwardsBackwardsToolbarItemsVisible:NO];
@@ -240,12 +247,14 @@ NSString * const VLCLibraryWindowTrackingSeparatorToolbarItemIdentifier =
[self insertToolbarItem:self.backwardsToolbarItem
inFrontOf:@[self.trackingSeparatorToolbarItem,
- self.toggleNavSidebarToolbarItem]];
+ self.toggleNavSidebarToolbarItem,
+ self.vlcIconToolbarItem]];
[self insertToolbarItem:self.forwardsToolbarItem
inFrontOf:@[self.backwardsToolbarItem,
self.trackingSeparatorToolbarItem,
- self.toggleNavSidebarToolbarItem]];
+ self.toggleNavSidebarToolbarItem,
+ self.vlcIconToolbarItem]];
}
- (void)setSortOrderToolbarItemVisible:(BOOL)visible
@@ -260,7 +269,8 @@ NSString * const VLCLibraryWindowTrackingSeparatorToolbarItemIdentifier =
self.forwardsToolbarItem,
self.backwardsToolbarItem,
self.trackingSeparatorToolbarItem,
- self.toggleNavSidebarToolbarItem]];
+ self.toggleNavSidebarToolbarItem,
+ self.vlcIconToolbarItem]];
}
- (void)setLibrarySearchToolbarItemVisible:(BOOL)visible
@@ -295,7 +305,8 @@ NSString * const VLCLibraryWindowTrackingSeparatorToolbarItemIdentifier =
inFrontOf:@[self.forwardsToolbarItem,
self.backwardsToolbarItem,
self.trackingSeparatorToolbarItem,
- self.toggleNavSidebarToolbarItem]];
+ self.toggleNavSidebarToolbarItem,
+ self.vlcIconToolbarItem]];
}
@end
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/f7c0d24733350e4c43a2dcb84e3106d9e2be9e7b...cd890bb11fafe9dde2fea783e7e5d7ef846264e4
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/f7c0d24733350e4c43a2dcb84e3106d9e2be9e7b...cd890bb11fafe9dde2fea783e7e5d7ef846264e4
You're receiving this email because of your account on code.videolan.org.
VideoLAN code repository instance
More information about the vlc-commits
mailing list