[pitivi] medialibrary: Proper management of AssetThumbnail's previewer
- From: Alexandru Băluț <alexbalut src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pitivi] medialibrary: Proper management of AssetThumbnail's previewer
- Date: Mon, 23 Sep 2019 11:13:19 +0000 (UTC)
commit 91a1e6a85cb48a0c7113bc19fe4dd1e9cd533b10
Author: Alexandru Băluț <alexandru balut gmail com>
Date: Wed Sep 4 23:37:03 2019 +0200
medialibrary: Proper management of AssetThumbnail's previewer
Now when the previewer finishes the thumbnail generation, we reuse it
instead of creating a new previewer instance. Easier to read code.
pitivi/medialibrary.py | 21 +++++++++++++--------
1 file changed, 13 insertions(+), 8 deletions(-)
---
diff --git a/pitivi/medialibrary.py b/pitivi/medialibrary.py
index 60172e5d..c90a7d9a 100644
--- a/pitivi/medialibrary.py
+++ b/pitivi/medialibrary.py
@@ -169,9 +169,14 @@ class FileChooserExtraWidget(Gtk.Grid, Loggable):
class AssetThumbnail(GObject.Object, Loggable):
- """Provider of decorated thumbnails for an asset."""
+ """Provider of decorated thumbnails for an asset.
+
+ The small_thumb and large_thumb fields hold the thumbs decorated
+ according to the status of the asset.
+ """
__gsignals__ = {
+ # Emitted when small_thumb and large_thumb changed.
"thumb-updated": (GObject.SignalFlags.RUN_LAST, None, ()),
}
@@ -195,10 +200,11 @@ class AssetThumbnail(GObject.Object, Loggable):
Loggable.__init__(self)
self.__asset = asset
self.proxy_manager = proxy_manager
- self.previewer = None
+ self.__previewer = None
self.refresh()
def refresh(self):
+ """Updates the shown icon. To be called when a new icon is available."""
self.src_small, self.src_large = self.__get_thumbnails()
self.decorate()
@@ -237,14 +243,13 @@ class AssetThumbnail(GObject.Object, Loggable):
small_thumb, large_thumb = self.__get_icons("image-x-generic")
else:
# Build or reuse a ThumbnailCache.
- previewer = AssetPreviewer(self.__asset, 90)
- small_thumb = previewer.thumb_cache.get_preview_thumbnail()
+ if not self.__previewer:
+ self.__previewer = AssetPreviewer(self.__asset, 90)
+ self.__previewer.connect("done", self.__done_cb)
+ small_thumb = self.__previewer.thumb_cache.get_preview_thumbnail()
if not small_thumb:
+ # We'll be notified when the thumbnail is available.
small_thumb, large_thumb = self.__get_icons("video-x-generic")
- # Only try once to generate the thumbnail.
- if not self.previewer:
- self.previewer = previewer
- previewer.connect("done", self.__done_cb)
else:
width = small_thumb.props.width
height = small_thumb.props.height
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]