bool QBluetoothTransferReplyBluez::start() { QFile *file = qobject_cast<QFile *>(m_source); if(!file){ m_tempfile = new QTemporaryFile(this ); m_tempfile->open(); qCDebug(QT_BT_BLUEZ) << "Not a QFile, making a copy" << m_tempfile->fileName(); if (!m_source->isReadable()) { m_errorStr = QBluetoothTransferReply::tr("QIODevice cannot be read. " "Make sure it is open for reading."); m_error = QBluetoothTransferReply::IODeviceNotReadableError; m_finished = true; m_running = false; emit QBluetoothTransferReply::error(m_error); emit finished(this); return false; } QFutureWatcher<bool> *watcher = new QFutureWatcher<bool>(); QObject::connect(watcher, SIGNAL(finished()), this, SLOT(copyDone())); QFuture<bool> results = QtConcurrent::run(QBluetoothTransferReplyBluez::copyToTempFile, m_tempfile, m_source); watcher->setFuture(results); } else { if (!file->exists()) { m_errorStr = QBluetoothTransferReply::tr("Source file does not exist"); m_error = QBluetoothTransferReply::FileNotFoundError; m_finished = true; m_running = false; emit QBluetoothTransferReply::error(m_error); emit finished(this); return false; } if (request().address().isNull()) { m_errorStr = QBluetoothTransferReply::tr("Invalid target address"); m_error = QBluetoothTransferReply::HostNotFoundError; m_finished = true; m_running = false; emit QBluetoothTransferReply::error(m_error); emit finished(this); return false; } m_size = file->size(); startOPP(file->fileName()); } return true; }
bool QBluetoothTransferReplyBluez::start() { m_running = true; // qDebug() << "Got a:" << source->metaObject()->className(); QFile *file = qobject_cast<QFile *>(source); if(!file){ tempfile = new QTemporaryFile(this ); tempfile->open(); // qDebug() << "Not a QFile, making a copy" << tempfile->fileName(); QFutureWatcher<bool> *watcher = new QFutureWatcher<bool>(); QObject::connect(watcher, SIGNAL(finished()), this, SLOT(copyDone())); QFuture<bool> results = QtConcurrent::run(QBluetoothTransferReplyBluez::copyToTempFile, tempfile, source); watcher->setFuture(results); } else { m_size = file->size(); startOPP(file->fileName()); } return true; }
if(!file){ tempfile = new QTemporaryFile(this ); tempfile->open(); qCDebug(QT_BT_BLUEZ) << "Not a QFile, making a copy" << tempfile->fileName(); if (!source->isReadable()) { m_errorStr = QBluetoothTransferReply::tr("QIODevice cannot be read." "Make sure it is open for reading."); m_error = QBluetoothTransferReply::IODeviceNotReadableError; m_finished = true; m_running = false; QMetaObject::invokeMethod(this, "finished", Qt::QueuedConnection, Q_ARG(QBluetoothTransferReply*, this)); return false; } QFutureWatcher<bool> *watcher = new QFutureWatcher<bool>(); QObject::connect(watcher, SIGNAL(finished()), this, SLOT(copyDone())); QFuture<bool> results = QtConcurrent::run(QBluetoothTransferReplyBluez::copyToTempFile, tempfile, source); watcher->setFuture(results); } else { if (!file->exists()) { m_errorStr = QBluetoothTransferReply::tr("Source file does not exist"); m_error = QBluetoothTransferReply::FileNotFoundError; m_finished = true; m_running = false; QMetaObject::invokeMethod(this, "finished", Qt::QueuedConnection, Q_ARG(QBluetoothTransferReply*, this)); return false; } if (request().address().isNull()) { m_errorStr = QBluetoothTransferReply::tr("Invalid target address");