summaryrefslogtreecommitdiffstats
path: root/pica-client/filetransfercontroller.cpp
diff options
context:
space:
mode:
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)