[vlc-commits] [Git][videolan/vlc][master] 4 commits: macosx: Ensure the detail label is hidden in main video view controls bar if...
Felix Paul Kühne (@fkuehne)
gitlab at videolan.org
Tue Jun 18 07:07:46 UTC 2024
Felix Paul Kühne pushed to branch master at VideoLAN / VLC
Commits:
9d563e19 by Claudio Cambra at 2024-06-18T06:47:25+00:00
macosx: Ensure the detail label is hidden in main video view controls bar if not playing a media library media item
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
50cf7695 by Claudio Cambra at 2024-06-18T06:47:25+00:00
macosx: Separate notification handler and detail label update
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
f0335464 by Claudio Cambra at 2024-06-18T06:47:25+00:00
macosx: Separate notification handler and float on top button update
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
ee838b3c by Claudio Cambra at 2024-06-18T06:47:25+00:00
macosx: Override update method in main video view controls bar to update relevant components
Signed-off-by: Claudio Cambra <developer at claudiocambra.com>
- - - - -
1 changed file:
- modules/gui/macosx/windows/controlsbar/VLCMainVideoViewControlsBar.m
Changes:
=====================================
modules/gui/macosx/windows/controlsbar/VLCMainVideoViewControlsBar.m
=====================================
@@ -68,20 +68,50 @@
NSNotificationCenter * const notificationCenter = NSNotificationCenter.defaultCenter;
[notificationCenter addObserver:self
- selector:@selector(updateDetailLabel:)
+ selector:@selector(currentMediaItemChanged:)
name:VLCPlayerCurrentMediaItemChanged
object:nil];
[notificationCenter addObserver:self
- selector:@selector(updateFloatOnTopButton:)
+ selector:@selector(floatOnTopChanged:)
name:VLCWindowFloatOnTopChangedNotificationName
object:nil];
+
+ [self update];
+}
+
+- (void)update
+{
+ [super update];
+ [self updateDetailLabel];
+ [self updateFloatOnTopButton];
+}
+
+- (void)currentMediaItemChanged:(NSNotification *)notification
+{
+ [self updateDetailLabel];
+}
+
+- (void)floatOnTopChanged:(NSNotification *)notification
+{
+ VLCVideoWindowCommon * const videoWindow = (VLCVideoWindowCommon *)notification.object;
+ NSAssert(videoWindow != nil, @"Received video window should not be nil!");
+ VLCVideoWindowCommon * const selfVideoWindow =
+ (VLCVideoWindowCommon *)self.floatOnTopButton.window;
+
+ if (videoWindow != selfVideoWindow) {
+ return;
+ }
+
+ [self updateFloatOnTopButton];
}
-- (void)updateDetailLabel:(NSNotification *)notification
+- (void)updateDetailLabel
{
+ VLCMediaLibraryMediaItem * const mediaItem =
+ [VLCMediaLibraryMediaItem mediaItemForURL:_playerController.URLOfCurrentMediaItem];
- VLCMediaLibraryMediaItem * const mediaItem = [VLCMediaLibraryMediaItem mediaItemForURL:_playerController.URLOfCurrentMediaItem];
if (!mediaItem) {
+ self.detailLabel.hidden = YES;
return;
}
@@ -90,6 +120,29 @@
_detailLabel.stringValue = mediaItem.primaryDetailString;
}
+- (void)updateFloatOnTopButton
+{
+ VLCVideoWindowCommon * const videoWindow = (VLCVideoWindowCommon *)self.floatOnTopButton.window;
+ if (videoWindow == nil) {
+ return;
+ }
+
+ VLCVoutView * const voutView = videoWindow.videoViewController.voutView;
+ NSAssert(voutView != nil, @"Vout view should not be nil!");
+ vout_thread_t * const voutThread = voutView.voutThread;
+
+ if (voutThread == NULL) {
+ return;
+ }
+
+ const bool floatOnTopEnabled = var_GetBool(voutThread, "video-on-top");
+
+ if (@available(macOS 10.14, *)) {
+ self.floatOnTopButton.contentTintColor =
+ floatOnTopEnabled ? NSColor.controlAccentColor : NSColor.controlTextColor;
+ }
+}
+
- (IBAction)openBookmarks:(id)sender
{
[VLCMain.sharedInstance.bookmarks toggleWindow:sender];
@@ -125,19 +178,4 @@
vout_Release(p_vout);
}
-- (void)updateFloatOnTopButton:(NSNotification *)notification
-{
- VLCVideoWindowCommon * const videoWindow = (VLCVideoWindowCommon *)notification.object;
- NSAssert(videoWindow != nil, @"Received video window should not be nil!");
- NSDictionary<NSString *, NSNumber *> * const userInfo = notification.userInfo;
- NSAssert(userInfo != nil, @"Received user info should not be nil!");
- NSNumber * const enabledNumberWrapper = userInfo[VLCWindowFloatOnTopEnabledNotificationKey];
- NSAssert(enabledNumberWrapper != nil, @"Received user info enabled wrapper should not be nil!");
-
- if (@available(macOS 10.14, *)) {
- self.floatOnTopButton.contentTintColor =
- enabledNumberWrapper.boolValue ? NSColor.controlAccentColor : NSColor.controlTextColor;
- }
-}
-
@end
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/02c3a9e7fcc709ca84d993a9192ef0773d9b1e30...ee838b3c6a4e31565763ec6c7b9aa6b737beb629
--
This project does not include diff previews in email notifications.
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/02c3a9e7fcc709ca84d993a9192ef0773d9b1e30...ee838b3c6a4e31565763ec6c7b9aa6b737beb629
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