diff --git a/src/contentmanager.cpp b/src/contentmanager.cpp index 065a8b1..c00b9f4 100644 --- a/src/contentmanager.cpp +++ b/src/contentmanager.cpp @@ -511,9 +511,23 @@ void ContentManager::downloadBook(const QString &id) kiwix::Book book = getRemoteOrLocalBook(id); const auto downloadPath = getSettingsManager()->getDownloadDir(); - std::string downloadId; try { DownloadManager::checkThatBookCanBeDownloaded(book, downloadPath); + } catch ( const KiwixAppError& err ) { + showErrorBox(err, mp_view); + return; + } + + startDownload(id); +} + +void ContentManager::startDownload(QString id) +{ + kiwix::Book book = getRemoteOrLocalBook(id); + const auto downloadPath = getSettingsManager()->getDownloadDir(); + + std::string downloadId; + try { downloadId = DownloadManager::startDownload(book, downloadPath); } catch ( const KiwixAppError& err ) { showErrorBox(err, mp_view); diff --git a/src/contentmanager.h b/src/contentmanager.h index d214c8d..73b98a5 100644 --- a/src/contentmanager.h +++ b/src/contentmanager.h @@ -118,6 +118,7 @@ private: // functions const kiwix::Book& getRemoteOrLocalBook(const QString &id); QString getRemoteLibraryUrl() const; + void startDownload(QString bookId); void removeDownload(QString bookId); void downloadDisappeared(QString bookId); void downloadCompleted(QString bookId, QString path);