diff --git a/src/user.cpp b/src/user.cpp index 2cf74cbd1c38a2c1369d0d4459380c015613f2fb..5e66268a86637479893112434895036cbf677237 100644 --- a/src/user.cpp +++ b/src/user.cpp @@ -309,4 +309,19 @@ void User::handleDisconnected(const std::string &error) { } } +void User::handleFTStateChanged(Swift::FileTransfer::State state, const std::string &buddyName, const std::string &fileName, unsigned long size, unsigned long id) { + if (state.state == Swift::FileTransfer::State::Transferring) { + onFTAccepted(buddyName, fileName, size, id); + } +} + +void User::sendFile(const Swift::JID& from, boost::shared_ptr byteStream, const Swift::StreamInitiationFileInfo &info, unsigned long id) { + boost::shared_ptr ft = m_userManager->getOutgoingFileTransferManager()->createOutgoingFileTransfer(from, m_jid, byteStream, info); + if (ft) { + m_filetransfers.push_back(ft); + ft->onStateChange.connect(boost::bind(&User::handleFTStateChanged, this, _1, Buddy::JIDToLegacyName(from), info.getName(), info.getSize(), id)); + ft->start(); + } +} + }