Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwurstsalat <mailtrash@posteo.de>2023-05-29 15:18:16 +0300
committerPhilipp Hörist <philipp@hoerist.com>2023-06-07 15:54:35 +0300
commit8d6181cb82f2f449bf7e54f56c7527af6ebbf42e (patch)
tree4f8ccd4d770e862dbac03d58dfc5d64bb6d60690
parent2f6211c045e06f7f60e11539d5ba09a5af1cf08c (diff)
imprv: Preview: Always show preview widget
Fixes #11427
-rw-r--r--gajim/common/preview.py16
-rw-r--r--gajim/gtk/conversation/rows/message.py8
-rw-r--r--gajim/gtk/preview.py18
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()