Daniel Brötzmann pushed to branch gtk4 at gajim / gajim


Commits:
a5a812d3 by wurstsalat at 2024-10-15T22:58:24+02:00
cq: Add drag and drop test for files

- - - - -


1 changed file:

- + test/gtk/test_dnd_file.py


Changes:

=====================================
test/gtk/test_dnd_file.py
=====================================
@@ -0,0 +1,56 @@
+# This file is part of Gajim.
+#
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+from gi.repository import Gdk
+from gi.repository import Gtk
+
+from gajim.gtk.widgets import GajimAppWindow
+
+from . import util
+
+
+class DNDFileTest(GajimAppWindow):
+    def __init__(self):
+        GajimAppWindow.__init__(
+            self,
+            name='',
+            title='DNDFileTest',
+            default_width=600,
+            default_height=600,
+        )
+
+        box = Gtk.Box(
+            halign=Gtk.Align.CENTER,
+            valign=Gtk.Align.CENTER,
+            hexpand=True,
+            width_request=300,
+            height_request=300,
+        )
+        box.add_css_class('dnd-area')
+        self.set_child(box)
+
+        drop_target = Gtk.DropTarget.new(Gdk.FileList, Gdk.DragAction.COPY)
+        drop_target.connect('accept', self._on_drop_accept)
+        drop_target.connect('drop', self._on_file_drop)
+        box.add_controller(drop_target)
+
+        label = Gtk.Label(label='Drop files here', hexpand=True)
+        box.append(label)
+
+    def _on_drop_accept(self, _target: Gtk.DropTarget, drop: Gdk.Drop) -> bool:
+        formats = drop.get_formats()
+        return bool(formats.contain_gtype(Gdk.FileList))
+
+    def _on_file_drop(
+        self, _target: Gtk.DropTarget, value: Gdk.FileList, _x: float, _y: 
float
+    ) -> bool:
+        files = value.get_files()
+        print([file.get_basename() for file in files])
+        return True
+
+
+window = DNDFileTest()
+window.show()
+
+util.run_app()



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

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/a5a812d3049a5ec3a8628feb77cade9b3440bb42
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