diff options
author | wurstsalat <mailtrash@posteo.de> | 2023-05-29 15:18:16 +0300 |
---|---|---|
committer | Philipp Hörist <philipp@hoerist.com> | 2023-06-07 15:54:35 +0300 |
commit | 8d6181cb82f2f449bf7e54f56c7527af6ebbf42e (patch) | |
tree | 4f8ccd4d770e862dbac03d58dfc5d64bb6d60690 | |
parent | 2f6211c045e06f7f60e11539d5ba09a5af1cf08c (diff) |
imprv: Preview: Always show preview widget
Fixes #11427
-rw-r--r-- | gajim/common/preview.py | 16 | ||||
-rw-r--r-- | gajim/gtk/conversation/rows/message.py | 8 | ||||
-rw-r--r-- | gajim/gtk/preview.py | 18 |
3 files changed, 30 insertions, 12 deletions
diff --git a/gajim/common/preview.py b/gajim/common/preview.py index 6d73ab2fe..9b3b65db2 100644 --- a/gajim/common/preview.py +++ b/gajim/common/preview.py @@ -306,7 +306,12 @@ class PreviewManager: 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 @@ class PreviewManager: 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 @@ class PreviewManager: 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 @@ class PreviewManager: 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, diff --git a/gajim/gtk/conversation/rows/message.py b/gajim/gtk/conversation/rows/message.py index 6544ba422..614405993 100644 --- a/gajim/gtk/conversation/rows/message.py +++ b/gajim/gtk/conversation/rows/message.py @@ -106,13 +106,7 @@ class MessageRow(BaseRow): 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): diff --git a/gajim/gtk/preview.py b/gajim/gtk/preview.py index 87a34c883..affae81b9 100644 --- a/gajim/gtk/preview.py +++ b/gajim/gtk/preview.py @@ -142,7 +142,9 @@ class PreviewWidget(Gtk.Box): 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 @@ class PreviewWidget(Gtk.Box): 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 @@ class PreviewWidget(Gtk.Box): 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() |