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


Commits:
d434c262 by wurstsalat at 2024-10-09T20:57:31+02:00
fix: MessageActionsBox: Fix reading file URIs from clipboard

- - - - -
714f7f33 by wurstsalat at 2024-10-09T21:06:15+02:00
refactor: GajimAppWindow: Add convenience methods

- - - - -


2 changed files:

- gajim/gtk/message_actions_box.py
- gajim/gtk/widgets.py


Changes:

=====================================
gajim/gtk/message_actions_box.py
=====================================
@@ -847,14 +847,12 @@ def _on_paste_clipboard(self, textview: 
MessageInputTextView) -> None:
         if 'text/uri-list' in mime_types:
             # Prevent TextView from pasting the URIs as text:
             textview.stop_emission_by_name('paste-clipboard')
-            # TODO GTK4
-            # gtypes = formats.get_gtypes()
-            # clipboard.read_value_async(
-            #     gtypes[0],
-            #     0,
-            #     None,
-            #     self._on_clipboard_read_value_finished
-            # )
+            clipboard.read_value_async(
+                Gdk.FileList,
+                0,
+                None,
+                self._on_clipboard_read_value_finished
+            )
             return
 
         if 'image/png' in mime_types:
@@ -867,11 +865,12 @@ def _on_clipboard_read_value_finished(
         clipboard: Gdk.Clipboard,
         result: Gio.AsyncResult,
     ) -> None:
-        uris = clipboard.read_value_finish(result)
-        if uris is None:
+        file_list = clipboard.read_value_finish(result)
+        if file_list is None or not isinstance(file_list, Gdk.FileList):
             log.info('No URIs pasted')
             return
 
+        uris = [file.get_uri() for file in file_list.get_files()]
         app.window.activate_action('win.send-file', GLib.Variant('as', uris))
 
     def _on_clipboard_read_texture_finished(


=====================================
gajim/gtk/widgets.py
=====================================
@@ -5,7 +5,6 @@
 from __future__ import annotations
 
 from typing import cast
-from typing import Any
 from typing import Literal
 
 import logging
@@ -36,6 +35,7 @@ def __init__(
         default_width: int = 0,
         default_height: int = 0,
         transient_for: Gtk.Window | None = None,
+        modal: bool = False,
         add_window_padding: bool = True,
     ) -> None:
 
@@ -47,6 +47,7 @@ def __init__(
             default_width=default_width,
             default_height=default_height,
             transient_for=transient_for,
+            modal=modal,
         )
         SignalManager.__init__(self)
 
@@ -66,7 +67,9 @@ def __init__(
         )
         self.window.add_controller(self.__default_controller)
 
-        self._connect_after(self.__default_controller, 'key-pressed', 
self.__on_key_pressed)
+        self._connect_after(
+            self.__default_controller, 'key-pressed', self.__on_key_pressed
+        )
         self._connect_after(self.window, 'close-request', 
self.__on_close_request)
 
     def present(self) -> None:
@@ -75,6 +78,15 @@ def present(self) -> None:
     def show(self) -> None:
         self.window.show()
 
+    def close(self) -> None:
+        self.window.close()
+
+    def get_scale_factor(self) -> int:
+        return self.window.get_scale_factor()
+
+    def set_default_widget(self, widget: Gtk.Widget | None) -> None:
+        self.window.set_default_widget(widget)
+
     def set_child(self, child: Gtk.Widget | None = None) -> None:
         box = cast(Gtk.Box, self.window.get_child())
         current_child = box.get_first_child()
@@ -94,7 +106,7 @@ def __on_key_pressed(
         _event_controller_key: Gtk.EventControllerKey,
         keyval: int,
         keycode: int,
-        state: Gdk.ModifierType
+        state: Gdk.ModifierType,
     ) -> bool:
 
         if keyval == Gdk.KEY_Escape:



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/compare/51405fe80540e5d0333f16ad6effbfb1186f7498...714f7f33647cc34148cba9643f6131fbe2484624

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/compare/51405fe80540e5d0333f16ad6effbfb1186f7498...714f7f33647cc34148cba9643f6131fbe2484624
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