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]