summaryrefslogtreecommitdiffstats
path: root/src/pvs.cpp
diff options
context:
space:
mode:
authorSebastien Braun2010-08-04 17:24:21 +0200
committerSebastien Braun2010-08-04 17:24:21 +0200
commit88dbb997a823ff77f752ac08105d12474345dfcb (patch)
tree19ff443503d1501b4033658d2185ea0e6aca7e53 /src/pvs.cpp
parentForward MCASTFTANNOUNCE and MCASTFTRETRY messages in pvsmgr and pvsmgrtouch. (diff)
downloadpvs-88dbb997a823ff77f752ac08105d12474345dfcb.tar.gz
pvs-88dbb997a823ff77f752ac08105d12474345dfcb.tar.xz
pvs-88dbb997a823ff77f752ac08105d12474345dfcb.zip
Implement GUI for receiving incoming multicast transfers
Diffstat (limited to 'src/pvs.cpp')
-rw-r--r--src/pvs.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/pvs.cpp b/src/pvs.cpp
index 0e5aaf5..852c9f4 100644
--- a/src/pvs.cpp
+++ b/src/pvs.cpp
@@ -716,9 +716,23 @@ void PVS::cancelOutgoingMulticastTransfer(quint64 transferID)
}
}
+void PVS::cancelIncomingMulticastTransfer(qulonglong transferID)
+{
+ PVSIncomingMulticastTransfer* transfer = _incomingTransfers.value(transferID, 0);
+
+ if(transfer)
+ {
+ _incomingTransfers.remove(transferID);
+ delete transfer;
+ }
+}
+
void PVS::onIncomingMulticastTransfer(QString const& sender, qulonglong transferID,
QString const& basename, qulonglong size, ushort port)
{
+ if (_outgoingTransfers.contains(transferID))
+ return;
+
PVSIncomingMulticastTransfer* transfer;
if (_incomingTransfers.value(transferID, 0))
{
@@ -727,7 +741,8 @@ void PVS::onIncomingMulticastTransfer(QString const& sender, qulonglong transfer
}
else
{
- transfer = new PVSIncomingMulticastTransfer(sender, transferID, size, port, _masterMcastConfig, this);
+ QString filename = QFileInfo(QDir::home(), QString("%1.part.%2").arg(basename).arg(transferID, 0, 16)).absoluteFilePath();
+ transfer = new PVSIncomingMulticastTransfer(sender, transferID, size, filename, port, _masterMcastConfig, this);
_incomingTransfers.insert(transferID, transfer);
connect(transfer, SIGNAL(retry(QString const&, qulonglong)), SLOT(onIncomingMulticastTransferRetry(QString const&, qulonglong)));
@@ -738,7 +753,7 @@ void PVS::onIncomingMulticastTransfer(QString const& sender, qulonglong transfer
connect(transfer, SIGNAL(finished(qulonglong)), SLOT(incomingMulticastTransferDelete(qulonglong)));
connect(transfer, SIGNAL(failed(qulonglong, QString const&)), SLOT(incomingMulticastTransferDelete(qulonglong)));
- emit incomingMulticastTransferNew(transferID, sender, basename, size);
+ emit incomingMulticastTransferNew(transferID, sender, filename, size);
QTimer::singleShot(0, transfer, SLOT(start()));
}
}