Daniel Brötzmann pushed to branch master at gajim / gajim


Commits:
59d3d125 by wurstsalat at 2024-03-07T23:38:14+01:00
fix: Preview: Set downloading state early to avoid having multiple downloads 
simultaneously

Fixes #11775

- - - - -


1 changed file:

- gajim/common/preview.py


Changes:

=====================================
gajim/common/preview.py
=====================================
@@ -188,7 +188,6 @@ def update_widget(self, data: GdkPixbufType | None = None) 
-> None:
         self._widget.update(self, data)
 
     def update_progress(self, progress: float, request: HTTPRequest) -> None:
-        self.download_in_progress = True
         self._request = request
         self._widget.update_progress(self, progress)
 
@@ -453,7 +452,9 @@ def download_content(self,
             # History Window can be opened without account context
             # This means we can not apply proxy settings
             return
+
         log.info('Start downloading: %s', preview.request_uri)
+        preview.download_in_progress = True
 
         request = create_http_request(preview.account)
         request.set_user_data(preview)
@@ -465,7 +466,7 @@ def download_content(self,
 
     def _accept_certificate(self,
                             request: HTTPRequest,
-                            certificate: Gio.TlsCertificate,
+                            _certificate: Gio.TlsCertificate,
                             certificate_errors: Gio.TlsCertificateFlags,
                             ) -> bool:
 
@@ -479,6 +480,7 @@ def _accept_certificate(self,
 
         preview = cast(Preview, request.get_user_data())
         preview.info_message = _('TLS verification failed: %s') % phrases[0]
+        preview.download_in_progress = False
         preview.update_widget()
         return False
 
@@ -497,6 +499,7 @@ def _on_content_sniffed(self,
         if content_type not in ALLOWED_MIME_TYPES and not force:
             log.info('Not an allowed content type: %s, %s', content_type, uri)
             request.cancel()
+            preview.download_in_progress = False
             return
 
         if content_length > int(app.settings.get('preview_max_file_size')):
@@ -507,6 +510,7 @@ def _on_content_sniffed(self,
                 preview.info_message = None
             else:
                 request.cancel()
+                preview.download_in_progress = False
                 preview.info_message = _('Automatic preview disabled '
                                          '(file too big)')
 
@@ -625,3 +629,4 @@ def _on_thumb_write_finished(_result: bool,
 
     def cancel_download(self, preview: Preview) -> None:
         preview.request.cancel()
+        preview.download_in_progress = False



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/59d3d12594b530687c636c4d5a8c36f24b2dab17

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/59d3d12594b530687c636c4d5a8c36f24b2dab17
You're receiving this email because of your account on dev.gajim.org.


_______________________________________________
Commits mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to