Daniel Brötzmann pushed to branch master at gajim / gajim
Commits: 0baa4d80 by wurstsalat at 2022-09-27T19:15:53+02:00 cfix: Preview: Don't allow download if in progress - - - - - 3 changed files: - gajim/common/preview.py - gajim/gtk/builder.pyi - gajim/gtk/preview.py Changes: ===================================== gajim/common/preview.py ===================================== @@ -80,6 +80,7 @@ def __init__(self, self.mime_type: str = '' self.file_size: int = 0 self._received_size: int = 0 + self.download_in_progress = False self.info_message: Optional[str] = None @@ -170,6 +171,7 @@ def update_widget(self, data: Optional[GdkPixbufType] = None) -> None: self._widget.update(self, data) def update_progress(self, size: int, message: Soup.Message) -> None: + self.download_in_progress = True self._soup_message = message self._received_size += size if self.file_size == 0 or self._received_size == 0: @@ -392,7 +394,13 @@ def _on_thumb_load_finished(data: Optional[bytes], def download_content(self, preview: Preview, - force: bool = False) -> None: + force: bool = False + ) -> None: + + if preview.download_in_progress: + log.info('Download already in progress') + return + preview.reset_received_size() if preview.account is None: # History Window can be opened without account context @@ -469,7 +477,11 @@ def _on_got_chunk(self, def _on_finished(self, _session: Soup.Session, message: Soup.Message, - preview: Preview) -> None: + preview: Preview + ) -> None: + + preview.download_in_progress = False + if message.status_code != Soup.Status.OK: log.warning('Download failed: %s', preview.request_uri) status_code = Soup.Status.get_phrase(message.status_code) ===================================== gajim/gtk/builder.pyi ===================================== @@ -678,9 +678,9 @@ class PreviewBuilder(Builder): image_button: Gtk.Button link_button: Gtk.LinkButton button_box: Gtk.Box - download_button: Gtk.Button save_as_button: Gtk.Button open_folder_button: Gtk.Button + download_button: Gtk.Button file_name: Gtk.Label file_size: Gtk.Label info_message: Gtk.Label @@ -793,6 +793,8 @@ class ServerInfoBuilder(Builder): dns: Gtk.Label ip_port: Gtk.Label websocket: Gtk.Label + tls_version: Gtk.Label + cipher_suite: Gtk.Label cert_scrolled: Gtk.ScrolledWindow features: Gtk.Box features_listbox: Gtk.ListBox ===================================== gajim/gtk/preview.py ===================================== @@ -62,7 +62,6 @@ def __init__(self, account: str) -> None: self.account = account self._preview: Optional[Preview] = None - self._in_progress = False self._destroyed = False if app.settings.get('use_kib_mib'): @@ -98,8 +97,6 @@ def get_text(self) -> str: @ensure_not_destroyed def update_progress(self, _preview: Preview, progress: float) -> None: - self._in_progress = True - self._ui.download_button.hide() self._ui.progress_box.show() @@ -112,7 +109,6 @@ def update_progress(self, _preview: Preview, progress: float) -> None: def update(self, preview: Preview, data: Optional[GdkPixbufType]) -> None: self._preview = preview - self._in_progress = False self._ui.progress_box.hide() self._ui.info_message.hide() @@ -232,7 +228,7 @@ def _destroy(menu: Gtk.Menu, _pspec: Any) -> None: if self._preview.orig_exists: menu.download.hide() else: - if self._in_progress: + if self._preview.download_in_progress: menu.download.hide() menu.open.hide() menu.save_as.hide() View it on GitLab: https://dev.gajim.org/gajim/gajim/-/commit/0baa4d801382251c9fe61ae5a38ffd5c4ed35c10 -- View it on GitLab: https://dev.gajim.org/gajim/gajim/-/commit/0baa4d801382251c9fe61ae5a38ffd5c4ed35c10 You're receiving this email because of your account on dev.gajim.org.
_______________________________________________ Commits mailing list Commits@gajim.org https://lists.gajim.org/cgi-bin/listinfo/commits