diff --git a/src/contentmanager.cpp b/src/contentmanager.cpp index 1068656..c9c921f 100644 --- a/src/contentmanager.cpp +++ b/src/contentmanager.cpp @@ -149,7 +149,7 @@ ContentManager::ContentManager(Library* library, kiwix::Downloader* downloader) connect(this, &DownloadManager::downloadDisappeared, this, &ContentManager::downloadDisappeared); - if ( mp_downloader ) { + if ( DownloadManager::downloadingFunctionalityAvailable() ) { startDownloadUpdaterThread(); } } @@ -605,7 +605,7 @@ std::string ContentManager::startDownload(const kiwix::Book& book) void ContentManager::downloadBook(const QString &id) { - if (!mp_downloader) + if ( ! DownloadManager::downloadingFunctionalityAvailable() ) throwDownloadUnavailableError(); const auto& book = getRemoteOrLocalBook(id); diff --git a/src/downloadmanagement.cpp b/src/downloadmanagement.cpp index 32112c9..63ae5bd 100644 --- a/src/downloadmanagement.cpp +++ b/src/downloadmanagement.cpp @@ -56,6 +56,11 @@ DownloadManager::~DownloadManager() } } +bool DownloadManager::downloadingFunctionalityAvailable() const +{ + return mp_downloader != nullptr; +} + void DownloadManager::startDownloadUpdaterThread() { // so that DownloadInfo can be copied across threads diff --git a/src/downloadmanagement.h b/src/downloadmanagement.h index 5ff95d7..f273df3 100644 --- a/src/downloadmanagement.h +++ b/src/downloadmanagement.h @@ -72,6 +72,8 @@ public: // functions DownloadManager(const Library* lib, kiwix::Downloader *downloader); virtual ~DownloadManager(); + bool downloadingFunctionalityAvailable() const; + void startDownloadUpdaterThread(); DownloadInfo getDownloadInfo(QString bookId) const; @@ -94,11 +96,9 @@ signals: void downloadUpdated(QString bookId, const DownloadInfo& ); void downloadDisappeared(QString bookId); -protected: // data +private: // data const Library* const mp_library; kiwix::Downloader* const mp_downloader; - -private: Downloads m_downloads; QThread* mp_downloadUpdaterThread = nullptr; };