diff options
| author | me_desk <me_desk@fb96df88-216d-11de-830c-f3023f12d8ac> | 2014-08-06 23:32:53 +0000 |
|---|---|---|
| committer | me_desk <me_desk@fb96df88-216d-11de-830c-f3023f12d8ac> | 2014-08-06 23:32:53 +0000 |
| commit | 249a43afa87a8fca8979cd9d0ec9ac6522205d2b (patch) | |
| tree | f741991624e3c77d86c8b51e353228c8b5375833 /pica-client/filetransfercontroller.cpp | |
| parent | 3e1c3cd989180d2085ce5af7f4db2b156d5df578 (diff) | |
| download | pica-pica-249a43afa87a8fca8979cd9d0ec9ac6522205d2b.tar.gz pica-pica-249a43afa87a8fca8979cd9d0ec9ac6522205d2b.zip | |
handling peer disconnect and remote io error during filetransfer
git-svn-id: svn://localhost/project_picapica/trunk@316 fb96df88-216d-11de-830c-f3023f12d8ac
Diffstat (limited to 'pica-client/filetransfercontroller.cpp')
| -rw-r--r-- | pica-client/filetransfercontroller.cpp | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/pica-client/filetransfercontroller.cpp b/pica-client/filetransfercontroller.cpp index 62d0285..9f07a38 100644 --- a/pica-client/filetransfercontroller.cpp +++ b/pica-client/filetransfercontroller.cpp @@ -18,6 +18,23 @@ FileTransferController::FileTransferController(QObject *parent) : connect(skynet, SIGNAL(OutgoingFileRequestAccepted(QByteArray)), this, SLOT(file_accepted_by_peer(QByteArray))); connect(skynet, SIGNAL(OutgoingFileRequestDenied(QByteArray)), this, SLOT(file_denied_by_peer(QByteArray))); + + connect(skynet, SIGNAL(ChannelClosed(QByteArray)), this, SLOT(file_peer_disconnected(QByteArray))); +} + +void FileTransferController::file_peer_disconnected(QByteArray peer_id) +{ + if (ftdialogs_in.contains(peer_id)) + { + ftdialogs_in[peer_id]->peerDisconnected(); + ftdialogs_in.remove(peer_id); + } + + if (ftdialogs_out.contains(peer_id)) + { + ftdialogs_out[peer_id]->peerDisconnected(); + ftdialogs_out.remove(peer_id); + } } void FileTransferController::file_finished_incoming(QByteArray peer_id) @@ -101,7 +118,8 @@ void FileTransferController::file_cancelled_incoming(QByteArray peer_id) void FileTransferController::file_ioerror_incoming(QByteArray peer_id) { - + ftdialogs_in[peer_id]->ioError(); + ftdialogs_in.remove(peer_id); } void FileTransferController::file_paused_outgoing(QByteArray peer_id) @@ -123,7 +141,8 @@ void FileTransferController::file_cancelled_outgoing(QByteArray peer_id) void FileTransferController::file_ioerror_outgoing(QByteArray peer_id) { - + ftdialogs_out[peer_id]->ioError(); + ftdialogs_out.remove(peer_id); } void FileTransferController::file_accepted_by_me(QByteArray peer_id) |
