Philipp Hörist pushed to branch gajim_1.3 at gajim / gajim

Commits:

3 changed files:

Changes:

  • gajim/common/filetransfer.py
    ... ... @@ -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')

  • gajim/gtk/filetransfer_progress.py
    ... ... @@ -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
     
    

  • gajim/gui_interface.py
    ... ... @@ -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)