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)
|
ContentManager::ContentManager(Library* library, kiwix::Downloader* downloader, QObject *parent)
|
||||||
: QObject(parent),
|
: QObject(parent),
|
||||||
DownloadManager(downloader),
|
DownloadManager(library, downloader),
|
||||||
mp_library(library),
|
mp_library(library),
|
||||||
mp_remoteLibrary(kiwix::Library::create()),
|
mp_remoteLibrary(kiwix::Library::create()),
|
||||||
m_remoteLibraryManager()
|
m_remoteLibraryManager()
|
||||||
@ -528,24 +528,6 @@ void ContentManager::openBookPreview(const QString &id)
|
|||||||
} catch (...) {}
|
} 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)
|
void ContentManager::downloadStarted(const kiwix::Book& book, const std::string& downloadId)
|
||||||
{
|
{
|
||||||
kiwix::Book bookCopy(book);
|
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)
|
void ContentManager::updateDownload(QString bookId, const DownloadInfo& downloadInfo)
|
||||||
{
|
{
|
||||||
const auto downloadState = m_downloads.value(bookId);
|
const auto downloadState = m_downloads.value(bookId);
|
||||||
|
@ -130,7 +130,6 @@ private: // functions
|
|||||||
void downloadStarted(const kiwix::Book& book, const std::string& downloadId);
|
void downloadStarted(const kiwix::Book& book, const std::string& downloadId);
|
||||||
void downloadDisappeared(QString bookId);
|
void downloadDisappeared(QString bookId);
|
||||||
void downloadCompleted(QString bookId, QString path);
|
void downloadCompleted(QString bookId, QString path);
|
||||||
DownloadInfo getDownloadInfo(QString bookId) const;
|
|
||||||
void restoreDownloads();
|
void restoreDownloads();
|
||||||
|
|
||||||
private: // data
|
private: // data
|
||||||
|
@ -37,6 +37,40 @@ void DownloadState::update(const DownloadInfo& downloadInfos)
|
|||||||
// DowloadManager
|
// DowloadManager
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
DownloadManager::DownloadManager(kiwix::Downloader *downloader)
|
DownloadManager::DownloadManager(const Library* lib, kiwix::Downloader *downloader)
|
||||||
: mp_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 <kiwix/downloader.h>
|
||||||
|
|
||||||
|
#include "library.h"
|
||||||
|
|
||||||
typedef QMap<QString, QVariant> DownloadInfo;
|
typedef QMap<QString, QVariant> DownloadInfo;
|
||||||
|
|
||||||
class DownloadState
|
class DownloadState
|
||||||
@ -63,9 +65,12 @@ public: // types
|
|||||||
};
|
};
|
||||||
|
|
||||||
public: // functions
|
public: // functions
|
||||||
explicit DownloadManager(kiwix::Downloader *downloader);
|
DownloadManager(const Library* lib, kiwix::Downloader *downloader);
|
||||||
|
|
||||||
|
DownloadInfo getDownloadInfo(QString bookId) const;
|
||||||
|
|
||||||
protected: // data
|
protected: // data
|
||||||
|
const Library* const mp_library;
|
||||||
kiwix::Downloader* const mp_downloader;
|
kiwix::Downloader* const mp_downloader;
|
||||||
Downloads m_downloads;
|
Downloads m_downloads;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user