Fully transferred directory monitoring to ContentManager

ContentManager::setMonitoredDirectories() stays in kiwixapp.cpp to make
the diff easier to understand.
This commit is contained in:
Veloman Yunkan 2024-07-30 17:48:09 +04:00 committed by Kelson
parent 615c21db50
commit b33fc63c93
4 changed files with 10 additions and 10 deletions

View File

@ -118,6 +118,9 @@ ContentManager::ContentManager(Library* library)
if ( DownloadManager::downloadingFunctionalityAvailable() ) {
startDownloadUpdaterThread();
}
connect(&m_watcher, &QFileSystemWatcher::directoryChanged,
this, &ContentManager::asyncUpdateLibraryFromDir);
}
void ContentManager::updateModel()

View File

@ -70,6 +70,7 @@ public: // functions
QStringList getCategories() const { return m_categories; }
LanguageList getLanguages() const { return m_languages; }
void setMonitoredDirectories(QStringSet dirList);
void setMonitorDirZims(QString monitorDir, QStringSet zimList);
void asyncUpdateLibraryFromDir(QString dir);
@ -150,6 +151,7 @@ private: // data
ContentManagerModel *managerModel;
QMutex remoteLibraryLocker;
QFileSystemWatcher m_watcher;
QMutex m_updateFromDirMutex;
QMap<QString, QStringSet> m_knownZimsInDir;
};

View File

@ -104,9 +104,6 @@ void KiwixApp::init()
this->openZimFile(message);
}
});
connect(&m_watcher, &QFileSystemWatcher::directoryChanged, this, [=](QString monitorDir) {
mp_manager->asyncUpdateLibraryFromDir(monitorDir);
});
/* Restore Tabs before directory monitoring to ensure we know what tabs user had. */
restoreTabs();
@ -119,20 +116,20 @@ void KiwixApp::setupDirectoryMonitoring()
QString monitorDir = m_settingsManager.getMonitorDir();
QString downloadDir = m_settingsManager.getDownloadDir();
auto dirList = QSet<QString>({monitorDir, downloadDir});
setMonitoredDirectories(dirList);
mp_manager->setMonitoredDirectories(dirList);
}
void KiwixApp::setMonitoredDirectories(QSet<QString> dirList)
void ContentManager::setMonitoredDirectories(QStringSet dirList)
{
for (auto path : m_watcher.directories()) {
m_watcher.removePath(path);
}
for (auto dir : dirList) {
if (dir != "") {
const auto zimsInDir = m_library.getLibraryZimsFromDir(dir);
mp_manager->setMonitorDirZims(dir, zimsInDir);
const auto zimsInDir = mp_library->getLibraryZimsFromDir(dir);
setMonitorDirZims(dir, zimsInDir);
m_watcher.addPath(dir);
mp_manager->asyncUpdateLibraryFromDir(dir);
asyncUpdateLibraryFromDir(dir);
}
}
}

View File

@ -122,13 +122,11 @@ private:
std::shared_ptr<kiwix::UpdatableNameMapper> mp_nameMapper;
kiwix::Server m_server;
Translation m_translation;
QFileSystemWatcher m_watcher;
QSettings* mp_session;
QAction* mpa_actions[MAX_ACTION];
void setupDirectoryMonitoring();
void setMonitoredDirectories(QSet<QString> dirList);
QString findLibraryDirectory();
void restoreTabs();
void loadAndInstallTranslations(QTranslator& translator, const QString& filename, const QString& directory);