mirror of
https://github.com/kiwix/kiwix-desktop.git
synced 2025-09-22 03:26:05 -04:00
{Content->Download}Manager::getDownloadInfo()
This commit is contained in:
parent
bfad2291c8
commit
ff48029f01
@ -95,7 +95,7 @@ void openFileLocation(QString path, QWidget *parent = nullptr)
|
||||
|
||||
ContentManager::ContentManager(Library* library, kiwix::Downloader* downloader, QObject *parent)
|
||||
: QObject(parent),
|
||||
DownloadManager(downloader),
|
||||
DownloadManager(library, downloader),
|
||||
mp_library(library),
|
||||
mp_remoteLibrary(kiwix::Library::create()),
|
||||
m_remoteLibraryManager()
|
||||
@ -528,24 +528,6 @@ void ContentManager::openBookPreview(const QString &id)
|
||||
} catch (...) {}
|
||||
}
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
QString downloadStatus2QString(kiwix::Download::StatusResult status)
|
||||
{
|
||||
switch(status){
|
||||
case kiwix::Download::K_ACTIVE: return "active";
|
||||
case kiwix::Download::K_WAITING: return "waiting";
|
||||
case kiwix::Download::K_PAUSED: return "paused";
|
||||
case kiwix::Download::K_ERROR: return "error";
|
||||
case kiwix::Download::K_COMPLETE: return "completed";
|
||||
case kiwix::Download::K_REMOVED: return "removed";
|
||||
default: return "unknown";
|
||||
}
|
||||
}
|
||||
|
||||
} // unnamed namespace
|
||||
|
||||
void ContentManager::downloadStarted(const kiwix::Book& book, const std::string& downloadId)
|
||||
{
|
||||
kiwix::Book bookCopy(book);
|
||||
@ -590,21 +572,6 @@ void ContentManager::downloadCompleted(QString bookId, QString path)
|
||||
}
|
||||
}
|
||||
|
||||
DownloadInfo ContentManager::getDownloadInfo(QString bookId) const
|
||||
{
|
||||
auto& b = mp_library->getBookById(bookId);
|
||||
const auto d = mp_downloader->getDownload(b.getDownloadId());
|
||||
d->updateStatus(true);
|
||||
|
||||
return {
|
||||
{ "status" , downloadStatus2QString(d->getStatus()) },
|
||||
{ "completedLength" , QString::number(d->getCompletedLength()) },
|
||||
{ "totalLength" , QString::number(d->getTotalLength()) },
|
||||
{ "downloadSpeed" , QString::number(d->getDownloadSpeed()) },
|
||||
{ "path" , QString::fromStdString(d->getPath()) }
|
||||
};
|
||||
}
|
||||
|
||||
void ContentManager::updateDownload(QString bookId, const DownloadInfo& downloadInfo)
|
||||
{
|
||||
const auto downloadState = m_downloads.value(bookId);
|
||||
|
@ -130,7 +130,6 @@ private: // functions
|
||||
void downloadStarted(const kiwix::Book& book, const std::string& downloadId);
|
||||
void downloadDisappeared(QString bookId);
|
||||
void downloadCompleted(QString bookId, QString path);
|
||||
DownloadInfo getDownloadInfo(QString bookId) const;
|
||||
void restoreDownloads();
|
||||
|
||||
private: // data
|
||||
|
@ -37,6 +37,40 @@ void DownloadState::update(const DownloadInfo& downloadInfos)
|
||||
// DowloadManager
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
DownloadManager::DownloadManager(kiwix::Downloader *downloader)
|
||||
: mp_downloader(downloader)
|
||||
DownloadManager::DownloadManager(const Library* lib, kiwix::Downloader *downloader)
|
||||
: mp_library(lib)
|
||||
, mp_downloader(downloader)
|
||||
{}
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
QString downloadStatus2QString(kiwix::Download::StatusResult status)
|
||||
{
|
||||
switch(status){
|
||||
case kiwix::Download::K_ACTIVE: return "active";
|
||||
case kiwix::Download::K_WAITING: return "waiting";
|
||||
case kiwix::Download::K_PAUSED: return "paused";
|
||||
case kiwix::Download::K_ERROR: return "error";
|
||||
case kiwix::Download::K_COMPLETE: return "completed";
|
||||
case kiwix::Download::K_REMOVED: return "removed";
|
||||
default: return "unknown";
|
||||
}
|
||||
}
|
||||
|
||||
} // unnamed namespace
|
||||
|
||||
DownloadInfo DownloadManager::getDownloadInfo(QString bookId) const
|
||||
{
|
||||
auto& b = mp_library->getBookById(bookId);
|
||||
const auto d = mp_downloader->getDownload(b.getDownloadId());
|
||||
d->updateStatus(true);
|
||||
|
||||
return {
|
||||
{ "status" , downloadStatus2QString(d->getStatus()) },
|
||||
{ "completedLength" , QString::number(d->getCompletedLength()) },
|
||||
{ "totalLength" , QString::number(d->getTotalLength()) },
|
||||
{ "downloadSpeed" , QString::number(d->getDownloadSpeed()) },
|
||||
{ "path" , QString::fromStdString(d->getPath()) }
|
||||
};
|
||||
}
|
||||
|
@ -11,6 +11,8 @@
|
||||
|
||||
#include <kiwix/downloader.h>
|
||||
|
||||
#include "library.h"
|
||||
|
||||
typedef QMap<QString, QVariant> DownloadInfo;
|
||||
|
||||
class DownloadState
|
||||
@ -63,9 +65,12 @@ public: // types
|
||||
};
|
||||
|
||||
public: // functions
|
||||
explicit DownloadManager(kiwix::Downloader *downloader);
|
||||
DownloadManager(const Library* lib, kiwix::Downloader *downloader);
|
||||
|
||||
DownloadInfo getDownloadInfo(QString bookId) const;
|
||||
|
||||
protected: // data
|
||||
const Library* const mp_library;
|
||||
kiwix::Downloader* const mp_downloader;
|
||||
Downloads m_downloads;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user