Philipp Hörist pushed to branch master at gajim / gajim
Commits:
bd7658d4 by Philipp Hörist at 2025-10-20T20:40:36+02:00
cfix: Preview: Trigger download on icon click
- - - - -
3 changed files:
- gajim/common/enum.py
- gajim/data/gui/preview/preview.ui
- gajim/gtk/preview/preview.py
Changes:
=====================================
gajim/common/enum.py
=====================================
@@ -20,6 +20,7 @@ class FTState(IntEnum):
class PreviewState(IntEnum):
+ INIT = 0
DOWNLOADING = 1
OFFER_DOWNLOAD = 2
DOWNLOADED = 3
=====================================
gajim/data/gui/preview/preview.ui
=====================================
@@ -24,8 +24,6 @@
<property name="focusable">1</property>
<property name="valign">center</property>
<property name="tooltip-text"
translatable="yes">Open</property>
- <property name="action-name">app.open-file</property>
- <property name="action-target">''</property>
<child>
<object class="GtkImage" id="_mime_image">
<property
name="icon-name">lucide-file-symbolic</property>
=====================================
gajim/gtk/preview/preview.py
=====================================
@@ -117,11 +117,13 @@ def __init__(
self._preview_id_short = self._preview_id[:10]
self._info_message = None
self._http_obj = None
+ self._state = PreviewState.INIT
self._connect(
self._cancel_download_button, "clicked",
self._on_cancel_download_clicked
)
self._connect(self._download_button, "clicked",
self._on_download_clicked)
+ self._connect(self._icon_button, "clicked", self._on_icon_clicked)
pointer_cursor = Gdk.Cursor.new_from_name("pointer")
self._icon_button.set_cursor(pointer_cursor)
@@ -256,9 +258,6 @@ def _set_widget_state(self, state: PreviewState) -> None:
elif state == PreviewState.DOWNLOADED:
self._file_control_buttons.set_path(self._orig_path)
- self._icon_button.set_action_target_value(
- GLib.Variant("s", str(self._orig_path))
- )
def _on_display_error(self, _widget: Any) -> None:
self._stack.set_visible_child_name("preview")
@@ -267,6 +266,15 @@ def _on_download_clicked(self, button: Gtk.Button) -> None:
button.set_sensitive(False)
self._download_content()
+ def _on_icon_clicked(self, button: Gtk.Button) -> None:
+ if self._state == PreviewState.OFFER_DOWNLOAD:
+ self._download_button.emit("clicked")
+
+ elif self._state == PreviewState.DISPLAY:
+ app.app.activate_action(
+ "open-file", GLib.Variant("s", str(self._orig_path))
+ )
+
def _on_cancel_download_clicked(self, button: Gtk.Button) -> None:
button.set_sensitive(False)
assert self._http_obj is not None
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/bd7658d48676882e7b9cfb6815bfb1bc8c63268e
--
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/bd7658d48676882e7b9cfb6815bfb1bc8c63268e
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]