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]