mirror of
https://github.com/kiwix/kiwix-desktop.git
synced 2025-09-22 11:37:56 -04:00
Fully transferred directory monitoring to ContentManager
ContentManager::setMonitoredDirectories() stays in kiwixapp.cpp to make the diff easier to understand.
This commit is contained in:
parent
615c21db50
commit
b33fc63c93
@ -118,6 +118,9 @@ ContentManager::ContentManager(Library* library)
|
||||
if ( DownloadManager::downloadingFunctionalityAvailable() ) {
|
||||
startDownloadUpdaterThread();
|
||||
}
|
||||
|
||||
connect(&m_watcher, &QFileSystemWatcher::directoryChanged,
|
||||
this, &ContentManager::asyncUpdateLibraryFromDir);
|
||||
}
|
||||
|
||||
void ContentManager::updateModel()
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user