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() ) {
|
if ( DownloadManager::downloadingFunctionalityAvailable() ) {
|
||||||
startDownloadUpdaterThread();
|
startDownloadUpdaterThread();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
connect(&m_watcher, &QFileSystemWatcher::directoryChanged,
|
||||||
|
this, &ContentManager::asyncUpdateLibraryFromDir);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ContentManager::updateModel()
|
void ContentManager::updateModel()
|
||||||
|
@ -70,6 +70,7 @@ public: // functions
|
|||||||
QStringList getCategories() const { return m_categories; }
|
QStringList getCategories() const { return m_categories; }
|
||||||
LanguageList getLanguages() const { return m_languages; }
|
LanguageList getLanguages() const { return m_languages; }
|
||||||
|
|
||||||
|
void setMonitoredDirectories(QStringSet dirList);
|
||||||
void setMonitorDirZims(QString monitorDir, QStringSet zimList);
|
void setMonitorDirZims(QString monitorDir, QStringSet zimList);
|
||||||
void asyncUpdateLibraryFromDir(QString dir);
|
void asyncUpdateLibraryFromDir(QString dir);
|
||||||
|
|
||||||
@ -150,6 +151,7 @@ private: // data
|
|||||||
ContentManagerModel *managerModel;
|
ContentManagerModel *managerModel;
|
||||||
QMutex remoteLibraryLocker;
|
QMutex remoteLibraryLocker;
|
||||||
|
|
||||||
|
QFileSystemWatcher m_watcher;
|
||||||
QMutex m_updateFromDirMutex;
|
QMutex m_updateFromDirMutex;
|
||||||
QMap<QString, QStringSet> m_knownZimsInDir;
|
QMap<QString, QStringSet> m_knownZimsInDir;
|
||||||
};
|
};
|
||||||
|
@ -104,9 +104,6 @@ void KiwixApp::init()
|
|||||||
this->openZimFile(message);
|
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. */
|
/* Restore Tabs before directory monitoring to ensure we know what tabs user had. */
|
||||||
restoreTabs();
|
restoreTabs();
|
||||||
@ -119,20 +116,20 @@ void KiwixApp::setupDirectoryMonitoring()
|
|||||||
QString monitorDir = m_settingsManager.getMonitorDir();
|
QString monitorDir = m_settingsManager.getMonitorDir();
|
||||||
QString downloadDir = m_settingsManager.getDownloadDir();
|
QString downloadDir = m_settingsManager.getDownloadDir();
|
||||||
auto dirList = QSet<QString>({monitorDir, downloadDir});
|
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()) {
|
for (auto path : m_watcher.directories()) {
|
||||||
m_watcher.removePath(path);
|
m_watcher.removePath(path);
|
||||||
}
|
}
|
||||||
for (auto dir : dirList) {
|
for (auto dir : dirList) {
|
||||||
if (dir != "") {
|
if (dir != "") {
|
||||||
const auto zimsInDir = m_library.getLibraryZimsFromDir(dir);
|
const auto zimsInDir = mp_library->getLibraryZimsFromDir(dir);
|
||||||
mp_manager->setMonitorDirZims(dir, zimsInDir);
|
setMonitorDirZims(dir, zimsInDir);
|
||||||
m_watcher.addPath(dir);
|
m_watcher.addPath(dir);
|
||||||
mp_manager->asyncUpdateLibraryFromDir(dir);
|
asyncUpdateLibraryFromDir(dir);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -122,13 +122,11 @@ private:
|
|||||||
std::shared_ptr<kiwix::UpdatableNameMapper> mp_nameMapper;
|
std::shared_ptr<kiwix::UpdatableNameMapper> mp_nameMapper;
|
||||||
kiwix::Server m_server;
|
kiwix::Server m_server;
|
||||||
Translation m_translation;
|
Translation m_translation;
|
||||||
QFileSystemWatcher m_watcher;
|
|
||||||
QSettings* mp_session;
|
QSettings* mp_session;
|
||||||
|
|
||||||
QAction* mpa_actions[MAX_ACTION];
|
QAction* mpa_actions[MAX_ACTION];
|
||||||
|
|
||||||
void setupDirectoryMonitoring();
|
void setupDirectoryMonitoring();
|
||||||
void setMonitoredDirectories(QSet<QString> dirList);
|
|
||||||
QString findLibraryDirectory();
|
QString findLibraryDirectory();
|
||||||
void restoreTabs();
|
void restoreTabs();
|
||||||
void loadAndInstallTranslations(QTranslator& translator, const QString& filename, const QString& directory);
|
void loadAndInstallTranslations(QTranslator& translator, const QString& filename, const QString& directory);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user