Philipp Hörist pushed to branch gajim_1.3 at gajim / gajim
Commits: 2ed39767 by lovetox at 2021-01-08T23:32:44+01:00 FileTransfer: Add cancel signal
- - - - - 5540f00c by lovetox at 2021-01-08T23:33:42+01:00 FileTransferProgress: Use cancel action
- - - - -
3 changed files:
- gajim/common/filetransfer.py - gajim/gtk/filetransfer_progress.py - gajim/gui_interface.py
Changes:
===================================== gajim/common/filetransfer.py ===================================== @@ -105,3 +105,6 @@ def set_finished(self):
def update_progress(self): self.notify('progress') + + def cancel(self): + self.notify('cancel')
===================================== gajim/gtk/filetransfer_progress.py ===================================== @@ -58,8 +58,11 @@ def __init__(self, transfer): self._ui.connect_signals(self)
def _on_transfer_state_change(self, transfer, _signal_name, state): + if self._destroyed: + return + if state.is_error: - ErrorDialog(_('Upload Failed'), + ErrorDialog(_('Error'), transfer.error_text, transient_for=app.interface.roster.window) self.destroy() @@ -80,12 +83,12 @@ def _on_cancel_button_clicked(self, _widget): self.destroy()
def _on_destroy(self, *args): + self._destroyed = True + if self._transfer.state.is_active: - client = app.get_client(self._transfer.account) - client.get_module('HTTPUpload').cancel_transfer(self._transfer) + self._transfer.cancel()
self._transfer = None - self._destroyed = True if self._pulse is not None: GLib.source_remove(self._pulse)
===================================== gajim/gui_interface.py ===================================== @@ -878,6 +878,7 @@ def _send_httpupload(self, chat_control, path): None, dialog_name='open-file-error2', args=error)) return
+ transfer.connect('cancel', self._on_cancel_upload) transfer.connect('state-changed', self._on_http_upload_state_changed) FileTransferProgress(transfer) @@ -901,6 +902,11 @@ def _on_http_upload_state_changed(transfer, _signal_name, state): client = app.get_client(transfer.account) client.send_message(message)
+ @staticmethod + def _on_cancel_upload(transfer, _signal_name): + client = app.get_client(transfer.account) + client.get_module('HTTPUpload').cancel_transfer(transfer) + @staticmethod def handle_event_metacontacts(obj): app.contacts.define_metacontacts(obj.conn.name, obj.meta_list)
View it on GitLab: https://dev.gajim.org/gajim/gajim/-/compare/4d6eef1ad280765cff9a89e827ad6284...