summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2015-06-20 16:26:26 (GMT)
committerKevin Smith <kevin.smith@isode.com>2015-07-08 07:08:50 (GMT)
commit0e6beadc1b4427e8ab5109e52872f99a5f85c3d8 (patch)
treec395e5d9eac735d0e0a596969e17cca589a36edb
parent5c55a79de95c11cecc0c98b57dfa1ff81ec7fb95 (diff)
downloadswift-0e6beadc1b4427e8ab5109e52872f99a5f85c3d8.zip
swift-0e6beadc1b4427e8ab5109e52872f99a5f85c3d8.tar.bz2
React to file transfer cancellation before the transfer started
Connect FileTransfer::onStateChanged signal earler to slot in FileTransferController, so the slot will be called for state changes that occur before a transfer started. Test-Information: Tested with two Swift instances and cancelling the sender side and receiver side. Without this patch the receiver side UI does not change if the receiver side cancels the transfer. Change-Id: I1d4d3e1ac78689a16120bfa9ccdec30ab1191ee3
-rw-r--r--Swift/Controllers/FileTransfer/FileTransferController.cpp28
1 files changed, 18 insertions, 10 deletions
diff --git a/Swift/Controllers/FileTransfer/FileTransferController.cpp b/Swift/Controllers/FileTransfer/FileTransferController.cpp
index 0160a7a..076d3c0 100644
--- a/Swift/Controllers/FileTransfer/FileTransferController.cpp
+++ b/Swift/Controllers/FileTransfer/FileTransferController.cpp
@@ -4,18 +4,26 @@
* See Documentation/Licenses/BSD-simplified.txt for more information.
*/
-#include "FileTransferController.h"
-#include "Swiften/FileTransfer/OutgoingJingleFileTransfer.h"
-#include "Swiften/FileTransfer/FileTransferManager.h"
-#include <Swiften/FileTransfer/FileReadBytestream.h>
-#include <Swiften/Base/boost_bsignals.h>
+/*
+ * Copyright (c) 2015 Isode Limited.
+ * All rights reserved.
+ * See the COPYING file for more information.
+ */
+
+#include <Swift/Controllers/FileTransfer/FileTransferController.h>
+
#include <boost/bind.hpp>
#include <boost/filesystem.hpp>
-#include "Swift/Controllers/UIInterfaces/ChatWindow.h"
+#include <boost/smart_ptr/make_shared.hpp>
+
+#include <Swiften/FileTransfer/FileTransferManager.h>
+#include <Swiften/FileTransfer/OutgoingJingleFileTransfer.h>
#include <Swiften/Base/Log.h>
-#include <Swift/Controllers/Intl.h>
+#include <Swiften/Base/boost_bsignals.h>
+#include <Swiften/FileTransfer/FileReadBytestream.h>
-#include <boost/smart_ptr/make_shared.hpp>
+#include <Swift/Controllers/UIInterfaces/ChatWindow.h>
+#include <Swift/Controllers/Intl.h>
namespace Swift {
@@ -26,11 +34,12 @@ FileTransferController::FileTransferController(const JID& receipient, const std:
FileTransferController::FileTransferController(IncomingFileTransfer::ref transfer) :
sending(false), otherParty(transfer->getSender()), filename(transfer->getFileName()), transfer(transfer), ftManager(0), ftProgressInfo(0), chatWindow(0), currentState(FileTransfer::State::WaitingForStart) {
-
+ transfer->onStateChanged.connect(boost::bind(&FileTransferController::handleFileTransferStateChange, this, _1));
}
FileTransferController::~FileTransferController() {
delete ftProgressInfo;
+ transfer->onStateChanged.disconnect(boost::bind(&FileTransferController::handleFileTransferStateChange, this, _1));
}
const JID &FileTransferController::getOtherParty() const {
@@ -95,7 +104,6 @@ void FileTransferController::accept(std::string& file) {
ftProgressInfo = new FileTransferProgressInfo(transfer->getFileSizeInBytes());
ftProgressInfo->onProgressPercentage.connect(boost::bind(&FileTransferController::handleProgressPercentageChange, this, _1));
- transfer->onStateChanged.connect(boost::bind(&FileTransferController::handleFileTransferStateChange, this, _1));
transfer->onProcessedBytes.connect(boost::bind(&FileTransferProgressInfo::setBytesProcessed, ftProgressInfo, _1));
incomingTransfer->accept(fileWriteStream);
} else {