void Updater::transferFinished() { Transfer *transfer = qobject_cast<Transfer*>(sender()); if (transfer) { const QString path = transfer->getTarget(); if ((transfer->getState() == Transfer::FinishedState) && QFile::exists(path)) { if (QFileInfo(path).suffix() == QLatin1String("xml")) { QFile file(SessionsManager::getWritableDataPath(QLatin1String("update.txt"))); if (file.open(QIODevice::ReadWrite | QIODevice::Text)) { QTextStream stream(&file); stream << path; file.close(); } } } else { Console::addMessage(QCoreApplication::translate("main", "Unable to download update: %1\nError: %2").arg(transfer->getSource().url()).arg(transfer->getState()), OtherMessageCategory, ErrorMessageLevel); m_transfersSuccessful = false; } transfer->deleteLater(); } else { m_transfersSuccessful = false; } ++m_transfersCount; if (m_transfersCount == 2) { if (!m_transfersSuccessful) { clearUpdate(); } emit finished(m_transfersSuccessful); deleteLater(); } }
Transfer* TransfersManager::startTransfer(QNetworkReply *reply, const QString &target, Transfer::TransferOptions options) { Transfer *transfer = new Transfer(reply, target, options, m_instance); if (transfer->getState() == Transfer::CancelledState) { transfer->deleteLater(); return NULL; } addTransfer(transfer); return transfer; }
Transfer* TransfersManager::startTransfer(const QUrl &source, const QString &target, Transfer::TransferOptions options) { Transfer *transfer = new Transfer(source, target, options, m_instance); if (transfer->getState() == Transfer::CancelledState) { transfer->deleteLater(); return NULL; } addTransfer(transfer); return transfer; }