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]

Reply via email to