| ... |
... |
@@ -37,7 +37,6 @@ from gajim.gtk.util import scale_with_ratio |
|
37
|
37
|
log = logging.getLogger('gajim.gtk.avatar')
|
|
38
|
38
|
|
|
39
|
39
|
|
|
40
|
|
-@lru_cache(maxsize=1024)
|
|
41
|
40
|
def generate_avatar(letters, color, size, scale):
|
|
42
|
41
|
# Get color for nickname with XEP-0392
|
|
43
|
42
|
color_r, color_g, color_b = color
|
| ... |
... |
@@ -139,7 +138,9 @@ class AvatarStorage(metaclass=Singleton): |
|
139
|
138
|
else:
|
|
140
|
139
|
color_string = contact.jid
|
|
141
|
140
|
|
|
142
|
|
- surface = self._generate_default_avatar(name, color_string, size, scale)
|
|
|
141
|
+ letter = self._generate_letter(name)
|
|
|
142
|
+ surface = self._generate_default_avatar(
|
|
|
143
|
+ letter, color_string, size, scale)
|
|
143
|
144
|
self._cache[jid][(size, scale)] = surface
|
|
144
|
145
|
return surface
|
|
145
|
146
|
|
| ... |
... |
@@ -159,7 +160,8 @@ class AvatarStorage(metaclass=Singleton): |
|
159
|
160
|
|
|
160
|
161
|
con = app.connections[account]
|
|
161
|
162
|
name = get_groupchat_name(con, jid)
|
|
162
|
|
- surface = self._generate_default_avatar(name, jid, size, scale)
|
|
|
163
|
+ letter = self._generate_letter(name)
|
|
|
164
|
+ surface = self._generate_default_avatar(letter, jid, size, scale)
|
|
163
|
165
|
self._cache[jid][(size, scale)] = surface
|
|
164
|
166
|
return surface
|
|
165
|
167
|
|
| ... |
... |
@@ -265,8 +267,9 @@ class AvatarStorage(metaclass=Singleton): |
|
265
|
267
|
return letter.capitalize()
|
|
266
|
268
|
return name[0].capitalize()
|
|
267
|
269
|
|
|
268
|
|
- def _generate_default_avatar(self, name, color_string, size, scale):
|
|
269
|
|
- letter = self._generate_letter(name)
|
|
|
270
|
+ @staticmethod
|
|
|
271
|
+ @lru_cache(maxsize=2048)
|
|
|
272
|
+ def _generate_default_avatar(letter, color_string, size, scale):
|
|
270
|
273
|
color = text_to_color(color_string)
|
|
271
|
274
|
surface = generate_avatar(letter, color, size, scale)
|
|
272
|
275
|
surface = clip_circle(surface)
|