Philipp Hörist pushed to branch gajim_1.3 at gajim / gajim
Commits:
3 changed files:
Changes:
| ... | ... | @@ -105,3 +105,6 @@ def set_finished(self): |
| 105 | 105 |
|
| 106 | 106 |
def update_progress(self):
|
| 107 | 107 |
self.notify('progress')
|
| 108 |
+ |
|
| 109 |
+ def cancel(self):
|
|
| 110 |
+ self.notify('cancel')
|
| ... | ... | @@ -58,8 +58,11 @@ def __init__(self, transfer): |
| 58 | 58 |
self._ui.connect_signals(self)
|
| 59 | 59 |
|
| 60 | 60 |
def _on_transfer_state_change(self, transfer, _signal_name, state):
|
| 61 |
+ if self._destroyed:
|
|
| 62 |
+ return
|
|
| 63 |
+ |
|
| 61 | 64 |
if state.is_error:
|
| 62 |
- ErrorDialog(_('Upload Failed'),
|
|
| 65 |
+ ErrorDialog(_('Error'),
|
|
| 63 | 66 |
transfer.error_text,
|
| 64 | 67 |
transient_for=app.interface.roster.window)
|
| 65 | 68 |
self.destroy()
|
| ... | ... | @@ -80,12 +83,12 @@ def _on_cancel_button_clicked(self, _widget): |
| 80 | 83 |
self.destroy()
|
| 81 | 84 |
|
| 82 | 85 |
def _on_destroy(self, *args):
|
| 86 |
+ self._destroyed = True
|
|
| 87 |
+ |
|
| 83 | 88 |
if self._transfer.state.is_active:
|
| 84 |
- client = app.get_client(self._transfer.account)
|
|
| 85 |
- client.get_module('HTTPUpload').cancel_transfer(self._transfer)
|
|
| 89 |
+ self._transfer.cancel()
|
|
| 86 | 90 |
|
| 87 | 91 |
self._transfer = None
|
| 88 |
- self._destroyed = True
|
|
| 89 | 92 |
if self._pulse is not None:
|
| 90 | 93 |
GLib.source_remove(self._pulse)
|
| 91 | 94 |
|
| ... | ... | @@ -878,6 +878,7 @@ def _send_httpupload(self, chat_control, path): |
| 878 | 878 |
None, dialog_name='open-file-error2', args=error))
|
| 879 | 879 |
return
|
| 880 | 880 |
|
| 881 |
+ transfer.connect('cancel', self._on_cancel_upload)
|
|
| 881 | 882 |
transfer.connect('state-changed',
|
| 882 | 883 |
self._on_http_upload_state_changed)
|
| 883 | 884 |
FileTransferProgress(transfer)
|
| ... | ... | @@ -901,6 +902,11 @@ def _on_http_upload_state_changed(transfer, _signal_name, state): |
| 901 | 902 |
client = app.get_client(transfer.account)
|
| 902 | 903 |
client.send_message(message)
|
| 903 | 904 |
|
| 905 |
+ @staticmethod
|
|
| 906 |
+ def _on_cancel_upload(transfer, _signal_name):
|
|
| 907 |
+ client = app.get_client(transfer.account)
|
|
| 908 |
+ client.get_module('HTTPUpload').cancel_transfer(transfer)
|
|
| 909 |
+ |
|
| 904 | 910 |
@staticmethod
|
| 905 | 911 |
def handle_event_metacontacts(obj):
|
| 906 | 912 |
app.contacts.define_metacontacts(obj.conn.name, obj.meta_list)
|