summaryrefslogtreecommitdiffstats
path: root/pica-client/filetransfercontroller.cpp
diff options
context:
space:
mode:
authorme_desk <me_desk@fb96df88-216d-11de-830c-f3023f12d8ac>2014-07-04 01:03:36 +0000
committerme_desk <me_desk@fb96df88-216d-11de-830c-f3023f12d8ac>2014-07-04 01:03:36 +0000
commit3e1c3cd989180d2085ce5af7f4db2b156d5df578 (patch)
treeeb3a0d178b9ba41133558fdd416a3e3471c2f4d2 /pica-client/filetransfercontroller.cpp
parentaf3c479447078c889b1bbb7a5e405c6f61620e82 (diff)
downloadpica-pica-3e1c3cd989180d2085ce5af7f4db2b156d5df578.tar.gz
pica-pica-3e1c3cd989180d2085ce5af7f4db2b156d5df578.zip
implemented file transfer cancellation
git-svn-id: svn://localhost/project_picapica/trunk@315 fb96df88-216d-11de-830c-f3023f12d8ac
Diffstat (limited to 'pica-client/filetransfercontroller.cpp')
-rw-r--r--pica-client/filetransfercontroller.cpp18
1 files changed, 17 insertions, 1 deletions
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)