aboutsummaryrefslogtreecommitdiff
path: root/src/picture_cache.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/picture_cache.py')
-rw-r--r--src/picture_cache.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/picture_cache.py b/src/picture_cache.py
new file mode 100644
index 0000000..8da136b
--- /dev/null
+++ b/src/picture_cache.py
@@ -0,0 +1,25 @@
+import gi
+gi.require_version("Gtk", "4.0")
+from gi.repository import Gtk
+import logging
+
+logger = logging.getLogger(__name__)
+
+class PictureCache:
+
+ def __init__(self):
+ self._cache = {}
+
+ def get(self, path):
+ if path in self._cache:
+ logger.debug('Loading from cache: %s', path)
+ return self._cache[path]
+ else:
+ picture = Gtk.Picture.new_for_filename(path)
+ logger.debug('Adding in cache: %s', path)
+ self._cache[path] = picture
+ return picture
+
+ def invalidate(self, path):
+ logger.debug('Invalidating: %s', path)
+ del self._cache[path]