Philipp Hörist pushed to branch master at gajim / gajim


Commits:
8d6181cb by wurstsalat at 2023-06-07T12:54:35+00:00
imprv: Preview: Always show preview widget

Fixes #11427

- - - - -


3 changed files:

- gajim/common/preview.py
- gajim/gtk/conversation/rows/message.py
- gajim/gtk/preview.py


Changes:

=====================================
gajim/common/preview.py
=====================================
@@ -306,7 +306,12 @@ def _accept_uri(urlparts: ParseResult,
 
     def is_previewable(self,
                        text: str,
-                       additional_data: AdditionalDataDict) -> bool:
+                       additional_data: AdditionalDataDict | None
+                       ) -> bool:
+
+        if additional_data is None:
+            return False
+
         if not IRI_RX.fullmatch(text):
             # urlparse removes whitespace (and who knows what else) from URLs,
             # so can't be used for validation.
@@ -336,6 +341,7 @@ def create_preview(self,
                        from_us: bool,
                        context: str | None = None
                        ) -> None:
+
         if uri.startswith('geo:'):
             preview = Preview(uri, None, None, None, 96, widget)
             preview.update_widget()
@@ -345,6 +351,10 @@ def create_preview(self,
         preview = self._process_web_uri(uri, widget, from_us, context)
         self._previews[preview.id] = preview
 
+        if not app.settings.get('enable_file_preview'):
+            preview.update_widget()
+            return
+
         if not preview.orig_exists:
             if context is not None and not from_us:
                 allow_in_public = app.settings.get('preview_anonymous_muc')
@@ -555,6 +565,10 @@ def _on_finished(self, request: HTTPRequest) -> None:
                          self._on_orig_write_finished,
                          preview)
 
+        if not app.settings.get('enable_file_preview'):
+            preview.update_widget()
+            return
+
         if preview.is_previewable:
             if preview.create_thumbnail(data):
                 write_file_async(preview.thumb_path,


=====================================
gajim/gtk/conversation/rows/message.py
=====================================
@@ -106,13 +106,7 @@ def __init__(self,
         else:
             from_us = kind == 'outgoing'
 
-        is_previewable = False
-        preview_enabled = app.settings.get('enable_file_preview')
-        if additional_data is not None and preview_enabled:
-            is_previewable = app.preview_manager.is_previewable(
-                text, additional_data)
-
-        if is_previewable:
+        if app.preview_manager.is_previewable(text, additional_data):
             muc_context = None
             if isinstance(self._contact,
                           GroupchatContact | GroupchatParticipant):


=====================================
gajim/gtk/preview.py
=====================================
@@ -142,7 +142,9 @@ def update(self, preview: Preview, data: GdkPixbufType | 
None) -> None:
             self._ui.preview_box.set_size_request(160, -1)
             return
 
-        if preview.is_previewable and preview.orig_exists:
+        preview_enabled = app.settings.get('enable_file_preview')
+
+        if preview_enabled and preview.is_previewable and preview.orig_exists:
             self._ui.icon_event_box.hide()
             self._ui.image_button.show()
             self._ui.save_as_button.show()
@@ -170,11 +172,16 @@ def update(self, preview: Preview, data: GdkPixbufType | 
None) -> None:
             self._ui.info_message.show()
 
         if preview.orig_exists:
+            if preview_enabled:
+                self._ui.link_button.hide()
+
             self._ui.download_button.hide()
             self._ui.open_folder_button.show()
             self._ui.save_as_button.show()
-            self._ui.link_button.hide()
-            if (preview.orig_path is not None and preview.is_audio and
+
+            if (preview_enabled and
+                    preview.orig_path is not None and
+                    preview.is_audio and
                     app.is_installed('GST') and
                     contains_audio_streams(preview.orig_path)):
                 self._ui.image_button.hide()
@@ -183,7 +190,10 @@ def update(self, preview: Preview, data: GdkPixbufType | 
None) -> None:
                 self._ui.right_box.reorder_child(audio_widget, 1)
         else:
             if preview.file_size == 0:
-                self._ui.download_button.hide()
+                if preview_enabled:
+                    self._ui.download_button.hide()
+                else:
+                    self._ui.download_button.show()
                 self._ui.link_button.show()
             else:
                 self._ui.download_button.show()



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/8d6181cb82f2f449bf7e54f56c7527af6ebbf42e

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


_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to