Daniel Brötzmann pushed to branch master at gajim / gajim
Commits: 77c8d623 by wurstsalat at 2022-05-14T00:44:30+02:00 fix: Access jingle transport values fallback correctly
- - - - - ae9cbc67 by wurstsalat at 2022-05-14T00:44:30+02:00 fix: Jingle: Use SendFileDialog for DND and paste events
- - - - -
3 changed files:
- gajim/common/jingle_transport.py - gajim/gtk/controls/base.py - gajim/gtk/file_transfer_send.py
Changes:
===================================== gajim/common/jingle_transport.py ===================================== @@ -158,9 +158,9 @@ def parse_transport_stanza(self, transport): 'state': 0, 'target': self.ourjid, 'host': candidate['host'], - 'port': int(candidate.get('port', 1080)), + 'port': int(candidate['port'] or 1080), 'candidate_id': candidate['cid'], - 'type': candidate.get('type', 'direct'), + 'type': candidate['type'] or 'direct', 'priority': candidate['priority'] } candidates.append(cand)
===================================== gajim/gtk/controls/base.py ===================================== @@ -35,6 +35,7 @@ import time import uuid import tempfile +from functools import partial
from gi.repository import Gtk from gi.repository import Gdk @@ -69,6 +70,7 @@ from gajim.gui.dialogs import DialogButton from gajim.gui.dialogs import ErrorDialog from gajim.gui.dialogs import PastePreviewDialog +from gajim.gui.file_transfer_send import SendFileDialog from gajim.gui.message_input import MessageInputTextView from gajim.gui.security_label_selector import SecurityLabelSelector from gajim.gui.util import get_hardware_key_codes @@ -807,10 +809,12 @@ def _start_filetransfer(self, path: str) -> None:
if method == 'httpupload': app.interface.send_httpupload(self, path) - else: - app.interface.instances['file_transfers'].send_file( - self.account, self.contact, path) + send_callback = partial( + app.interface.instances['file_transfers'].send_file, + self.account, + self.contact) + SendFileDialog(self.contact, send_callback, app.window, [path])
def _on_send_file(self, action: Gio.SimpleAction,
===================================== gajim/gtk/file_transfer_send.py ===================================== @@ -21,6 +21,7 @@
from typing import Callable from typing import cast +from typing import Optional
from pathlib import Path
@@ -44,7 +45,8 @@ class SendFileDialog(Gtk.ApplicationWindow): def __init__(self, contact: BareContact, send_callback: Callable[..., bool], - transient_for: Gtk.Window + transient_for: Gtk.Window, + files: Optional[list[str]] = None ) -> None: Gtk.ApplicationWindow.__init__(self) self.set_application(app.app) @@ -75,6 +77,9 @@ def __init__(self, self._ui.resource_box.pack_start( self._resource_selector, True, False, 0)
+ if files is not None: + self.set_files(files) + self.connect('key-press-event', self._on_key_press) self._ui.connect_signals(self) self.show_all() @@ -110,7 +115,7 @@ def _send_files(self, resource_jid: JID) -> None: self.destroy()
def _select_files(self, _button: Gtk.Button) -> None: - FileChooserDialog(self._set_files, + FileChooserDialog(self.set_files, select_multiple=True, transient_for=self, path=app.settings.get('last_send_dir')) @@ -120,7 +125,7 @@ def _remove_files(self, _button: Gtk.Button) -> None: for item in selected: self._ui.listbox.remove(item)
- def _set_files(self, file_names: str) -> None: + def set_files(self, file_names: list[str]) -> None: last_dir = '' for file in file_names: row = FileRow(file) @@ -130,6 +135,7 @@ def _set_files(self, file_names: str) -> None: self._ui.listbox.add(row) self._ui.listbox.show_all() app.settings.set('last_send_dir', str(last_dir)) + self._ui.files_send.set_sensitive(True)
def _get_description(self) -> str: buffer_ = self._ui.description.get_buffer()
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/compare/516119cf63119f142df125f80a81c582...