Daniel Brötzmann pushed to branch master at gajim / gajim
Commits: 44eab3c1 by wurstsalat at 2022-11-25T19:00:31+01:00 refactor: AvatarStorage: Access some methods directly
- - - - -
6 changed files:
- gajim/common/modules/discovery.py - gajim/common/modules/user_avatar.py - gajim/common/modules/vcard_avatars.py - gajim/gtk/avatar.py - gajim/gtk/workspace_dialog.py - gajim/gui_interface.py
Changes:
===================================== gajim/common/modules/discovery.py ===================================== @@ -232,8 +232,8 @@ def disco_muc(self, if result.vcard is not None: avatar, avatar_sha = result.vcard.get_avatar() if avatar is not None: - if not app.interface.avatar_exists(avatar_sha): - app.interface.save_avatar(avatar) + if not app.app.avatar_storage.avatar_exists(avatar_sha): + app.app.avatar_storage.save_avatar(avatar)
app.storage.cache.set_muc(result.info.jid, 'avatar', avatar_sha) app.app.avatar_storage.invalidate_cache(result.info.jid)
===================================== gajim/common/modules/user_avatar.py ===================================== @@ -66,11 +66,12 @@ def _avatar_metadata_received(self,
sha = contact.avatar_sha if sha is not None: - if sha in metadata.avatar_shas and app.interface.avatar_exists(sha): + if (sha in metadata.avatar_shas and + app.app.avatar_storage.avatar_exists(sha)): self._log.info('Avatar already known: %s %s', jid, sha) return
- if app.interface.avatar_exists(metadata.default): + if app.app.avatar_storage.avatar_exists(metadata.default): self._log.info('Avatar found in cache, update: %s %s', jid, metadata.default) contact.update_avatar(metadata.default) @@ -109,5 +110,5 @@ def _request_avatar_data(self, return
self._log.info('Received Avatar: %s %s', contact.jid, avatar.sha) - app.interface.save_avatar(avatar.data) + app.app.avatar_storage.save_avatar(avatar.data) contact.update_avatar(avatar.sha)
===================================== gajim/common/modules/vcard_avatars.py ===================================== @@ -95,7 +95,7 @@ def _request_vcard(self, return
self._log.info('Received: %s %s', contact.jid, avatar_sha) - app.interface.save_avatar(avatar) + app.app.avatar_storage.save_avatar(avatar)
if isinstance(contact, BareContact): app.storage.cache.set_contact(contact.jid, 'avatar', avatar_sha) @@ -173,7 +173,7 @@ def _process_update(self, self._log.info('Avatar already known: %s %s', jid, avatar_sha) return
- if app.interface.avatar_exists(avatar_sha): + if app.app.avatar_storage.avatar_exists(avatar_sha): # Check if the avatar is already in storage self._log.info('Found avatar in storage') if groupchat: @@ -214,7 +214,7 @@ def _muc_update_received(self, properties: PresenceProperties) -> None:
else: self._log.info('Update: %s %s', nick, properties.avatar_sha) - if not app.interface.avatar_exists(properties.avatar_sha): + if not app.app.avatar_storage.avatar_exists(properties.avatar_sha): if properties.avatar_sha not in self._requested_shas: app.log('avatar').info('Request: %s', nick) self._requested_shas.append(properties.avatar_sha)
===================================== gajim/gtk/avatar.py ===================================== @@ -530,6 +530,9 @@ def get_avatar_path(filename: str) -> Optional[Path]: return None return path
+ def avatar_exists(self, filename: str) -> bool: + return self.get_avatar_path(filename) is not None + def surface_from_filename(self, filename: str, size: int,
===================================== gajim/gtk/workspace_dialog.py ===================================== @@ -154,7 +154,7 @@ def _on_save(self, _button: Gtk.Button) -> None: if use_image: data = self._get_avatar_data() if data is not None: - self._avatar_sha = app.interface.save_avatar(data) + self._avatar_sha = app.app.avatar_storage.save_avatar(data)
if self._workspace_id is not None: app.settings.set_workspace_setting(
===================================== gajim/gui_interface.py ===================================== @@ -34,7 +34,6 @@ from __future__ import annotations
from typing import Any -from typing import Optional
import sys import time @@ -214,12 +213,6 @@ def process_connections(self) -> bool: raise return True # renew timeout (loop for ever)
- def save_avatar(self, data: bytes) -> Optional[str]: - return app.app.avatar_storage.save_avatar(data) - - def avatar_exists(self, filename: str) -> bool: - return app.app.avatar_storage.get_avatar_path(filename) is not None - def run(self, _application: Gtk.Application) -> None: # get instances for windows/dialogs that will show_all()/hide() self.instances['file_transfers'] = FileTransfersWindow()
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/commit/44eab3c10f1ac7ac6685bbe47d35f02f5...