[vlc-commits] macosx/image view: allow setting images with URLs and placeholders
Felix Paul Kühne
git at videolan.org
Sun Jun 30 14:22:41 CEST 2019
vlc | branch: master | Felix Paul Kühne <felix at feepk.net> | Sun Jun 30 14:14:26 2019 +0200| [a094528a49d9bd7e515a81d9b89fb3845eb71995] | committer: Felix Paul Kühne
macosx/image view: allow setting images with URLs and placeholders
This downloads and allocates the image on a background thread without blocking the UI.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a094528a49d9bd7e515a81d9b89fb3845eb71995
---
modules/gui/macosx/views/VLCImageView.h | 2 ++
modules/gui/macosx/views/VLCImageView.m | 11 +++++++++++
2 files changed, 13 insertions(+)
diff --git a/modules/gui/macosx/views/VLCImageView.h b/modules/gui/macosx/views/VLCImageView.h
index 46e73f95c1..4008d299da 100644
--- a/modules/gui/macosx/views/VLCImageView.h
+++ b/modules/gui/macosx/views/VLCImageView.h
@@ -42,4 +42,6 @@ typedef NS_ENUM(NSInteger, VLCImageViewContentGravity) {
@property (readwrite, retain, nonatomic, nullable) NSImage *image;
@property (readwrite) VLCImageViewContentGravity contentGravity;
+- (void)setImageURL:(NSURL * _Nonnull)url placeholderImage:(NSImage * _Nullable)image;
+
@end
diff --git a/modules/gui/macosx/views/VLCImageView.m b/modules/gui/macosx/views/VLCImageView.m
index c0015df9d5..bd4184cbfd 100644
--- a/modules/gui/macosx/views/VLCImageView.m
+++ b/modules/gui/macosx/views/VLCImageView.m
@@ -121,4 +121,15 @@
[self setupBorderColor];
}
+- (void)setImageURL:(NSURL * _Nonnull)artworkURL placeholderImage:(NSImage * _Nullable)image
+{
+ [self setImage:image];
+ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
+ NSImage *downloadedImage = [[NSImage alloc] initWithContentsOfURL:artworkURL];
+ dispatch_async(dispatch_get_main_queue(), ^{
+ [self setImage:downloadedImage];
+ });
+ });
+}
+
@end
More information about the vlc-commits
mailing list