From 3e1c3cd989180d2085ce5af7f4db2b156d5df578 Mon Sep 17 00:00:00 2001 From: me_desk Date: Fri, 4 Jul 2014 01:03:36 +0000 Subject: implemented file transfer cancellation git-svn-id: svn://localhost/project_picapica/trunk@315 fb96df88-216d-11de-830c-f3023f12d8ac --- pica-client/filetransfercontroller.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'pica-client/filetransfercontroller.cpp') diff --git a/pica-client/filetransfercontroller.cpp b/pica-client/filetransfercontroller.cpp index ca1fa44..62d0285 100644 --- a/pica-client/filetransfercontroller.cpp +++ b/pica-client/filetransfercontroller.cpp @@ -96,6 +96,7 @@ void FileTransferController::file_resumed_incoming(QByteArray peer_id) void FileTransferController::file_cancelled_incoming(QByteArray peer_id) { ftdialogs_in[peer_id]->cancelledByPeer(); + ftdialogs_in.remove(peer_id); } void FileTransferController::file_ioerror_incoming(QByteArray peer_id) @@ -111,11 +112,13 @@ void FileTransferController::file_paused_outgoing(QByteArray peer_id) void FileTransferController::file_resumed_outgoing(QByteArray peer_id) { ftdialogs_out[peer_id]->resumedByPeer(); + } void FileTransferController::file_cancelled_outgoing(QByteArray peer_id) { ftdialogs_out[peer_id]->cancelledByPeer(); + ftdialogs_out.remove(peer_id); } void FileTransferController::file_ioerror_outgoing(QByteArray peer_id) @@ -147,14 +150,27 @@ void FileTransferController::file_denied_by_me(QByteArray peer_id) { skynet->DenyFile(peer_id); - delete ftdialogs_in[peer_id]; + //delete ftdialogs_in[peer_id]; ftdialogs_in.remove(peer_id); } void FileTransferController::file_cancelled_by_me(QByteArray peer_id, FileTransferDialog *from) { + bool sending = true; + + if (from->getTransferDirection() == FileTransferDialog::RECEIVING) + { + ftdialogs_in.remove(peer_id); + + sending = false; + } + else + { + ftdialogs_out.remove(peer_id); + } + skynet->CancelFile(peer_id, sending); } void FileTransferController::file_paused_by_me(QByteArray peer_id, FileTransferDialog *from) -- cgit v1.2.1