Daniel Brötzmann pushed to branch master at gajim / gajim
Commits:
8e969eaa by wurstsalat at 2025-08-23T11:57:32+02:00
fix: File transfers: Fix cancelling file transfers
Fixes #12442
- - - - -
3 changed files:
- gajim/gtk/conversation/rows/base.py
- gajim/gtk/conversation/rows/file_transfer.py
- gajim/gtk/conversation/view.py
Changes:
=====================================
gajim/gtk/conversation/rows/base.py
=====================================
@@ -4,6 +4,7 @@
from __future__ import annotations
+from gi.repository import GObject
from gi.repository import Gtk
from gi.repository import Pango
@@ -15,6 +16,11 @@
class BaseRow(Gtk.ListBoxRow, SignalManager):
+
+ __gsignals__ = {
+ "remove": (GObject.SignalFlags.RUN_LAST, None, ()),
+ }
+
def __init__(self, account: str, widget: str | None = None) -> None:
Gtk.ListBoxRow.__init__(self, selectable=False)
SignalManager.__init__(self)
=====================================
gajim/gtk/conversation/rows/file_transfer.py
=====================================
@@ -2,8 +2,6 @@
#
# SPDX-License-Identifier: GPL-3.0-only
-from typing import cast
-
import time
from gi.repository import GLib
@@ -77,7 +75,7 @@ def _on_cancel_clicked(self, _button: Gtk.Button) -> None:
if self._transfer.state.is_active:
self._transfer.cancel()
- cast(Gtk.ListBox, self.get_parent()).remove(self)
+ self.emit("remove")
def _on_transfer_state_change(
self, transfer: HTTPFileTransfer, _signal_name: str, state: FTState
@@ -87,10 +85,11 @@ def _on_transfer_state_change(
if state.is_error:
InformationAlertDialog(_("Error"), transfer.error_text)
- cast(Gtk.ListBox, self.get_parent()).remove(self)
+ self.emit("remove")
+ return
if state.is_finished or state.is_cancelled:
- cast(Gtk.ListBox, self.get_parent()).remove(self)
+ self.emit("remove")
return
description = transfer.get_state_description()
=====================================
gajim/gtk/conversation/view.py
=====================================
@@ -466,6 +466,7 @@ def add_info_message(self, text: str, timestamp: datetime |
None = None) -> None
def add_file_transfer(self, transfer: HTTPFileTransfer) -> None:
transfer_row = FileTransferRow(self.contact.account, transfer)
+ transfer_row.connect("remove", self._on_remove_row)
self._insert_message(transfer_row)
def add_jingle_file_transfer(
@@ -603,6 +604,9 @@ def _update_descendants(self, message: MessageRow) -> None:
row.set_merged(merge)
return
+ def _on_remove_row(self, row: BaseRow) -> None:
+ self._list_box.remove(row)
+
def _on_message_row_state_flags_changed(
self, row: MessageRow, previous_flags: Gtk.StateFlags
) -> None:
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/8e969eaa10b6cf6f07095613213080f513d88cc8
--
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/commit/8e969eaa10b6cf6f07095613213080f513d88cc8
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]