| ... |
... |
@@ -52,8 +52,8 @@ |
|
52
|
52
|
log = logging.getLogger('gajim.gui.avatar')
|
|
53
|
53
|
|
|
54
|
54
|
|
|
55
|
|
-AvatarCacheT = dict[JID, dict[tuple[int, int, Optional[str]],
|
|
56
|
|
- cairo.ImageSurface]]
|
|
|
55
|
+AvatarCacheT = dict[Union[JID, str], dict[tuple[int, int, Optional[str]],
|
|
|
56
|
+ cairo.ImageSurface]]
|
|
57
|
57
|
|
|
58
|
58
|
|
|
59
|
59
|
def generate_avatar(letters: str,
|
| ... |
... |
@@ -340,7 +340,7 @@ class AvatarStorage(metaclass=Singleton): |
|
340
|
340
|
def __init__(self):
|
|
341
|
341
|
self._cache: AvatarCacheT = defaultdict(dict)
|
|
342
|
342
|
|
|
343
|
|
- def invalidate_cache(self, jid: JID) -> None:
|
|
|
343
|
+ def invalidate_cache(self, jid: Union[JID, str]) -> None:
|
|
344
|
344
|
self._cache.pop(jid, None)
|
|
345
|
345
|
|
|
346
|
346
|
def get_pixbuf(self,
|
| ... |
... |
@@ -412,11 +412,11 @@ def get_muc_surface(self, |
|
412
|
412
|
|
|
413
|
413
|
if transport_icon is not None:
|
|
414
|
414
|
surface = load_icon_surface(transport_icon, size, scale)
|
|
415
|
|
- self._cache[jid][(size, scale)] = surface
|
|
|
415
|
+ self._cache[jid][(size, scale, None)] = surface
|
|
416
|
416
|
return surface
|
|
417
|
417
|
|
|
418
|
418
|
if not default:
|
|
419
|
|
- surface = self._cache[jid].get((size, scale))
|
|
|
419
|
+ surface = self._cache[jid].get((size, scale, None))
|
|
420
|
420
|
if surface is not None:
|
|
421
|
421
|
return surface
|
|
422
|
422
|
|
| ... |
... |
@@ -425,7 +425,7 @@ def get_muc_surface(self, |
|
425
|
425
|
surface = self.surface_from_filename(avatar_sha, size, scale)
|
|
426
|
426
|
if surface is not None:
|
|
427
|
427
|
surface = clip(surface, style)
|
|
428
|
|
- self._cache[jid][(size, scale)] = surface
|
|
|
428
|
+ self._cache[jid][(size, scale, None)] = surface
|
|
429
|
429
|
return surface
|
|
430
|
430
|
|
|
431
|
431
|
# avatar_sha set, but image is missing
|
| ... |
... |
@@ -436,7 +436,7 @@ def get_muc_surface(self, |
|
436
|
436
|
name = get_groupchat_name(con, jid)
|
|
437
|
437
|
letter = self._generate_letter(name)
|
|
438
|
438
|
surface = generate_default_avatar(letter, str(jid), size, scale, style)
|
|
439
|
|
- self._cache[jid][(size, scale)] = surface
|
|
|
439
|
+ self._cache[jid][(size, scale, None)] = surface
|
|
440
|
440
|
return surface
|
|
441
|
441
|
|
|
442
|
442
|
def get_workspace_surface(self,
|
| ... |
... |
@@ -444,7 +444,7 @@ def get_workspace_surface(self, |
|
444
|
444
|
size: int,
|
|
445
|
445
|
scale: int) -> Optional[cairo.ImageSurface]:
|
|
446
|
446
|
|
|
447
|
|
- surface = self._cache[workspace_id].get((size, scale))
|
|
|
447
|
+ surface = self._cache[workspace_id].get((size, scale, None))
|
|
448
|
448
|
if surface is not None:
|
|
449
|
449
|
return surface
|
|
450
|
450
|
|
| ... |
... |
@@ -465,7 +465,7 @@ def get_workspace_surface(self, |
|
465
|
465
|
letter = name[:1].upper()
|
|
466
|
466
|
surface = make_workspace_avatar(
|
|
467
|
467
|
letter, rgba_to_float(rgba), size, scale)
|
|
468
|
|
- self._cache[workspace_id][(size, scale)] = surface
|
|
|
468
|
+ self._cache[workspace_id][(size, scale, None)] = surface
|
|
469
|
469
|
return surface
|
|
470
|
470
|
|
|
471
|
471
|
@staticmethod
|