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

Reply via email to