mirror of
https://github.com/kiwix/kiwix-desktop.git
synced 2025-09-21 02:51:26 -04:00
Add real-time library monitoring
Adds a QFileSystemWatcher to watch over monitor directory. Everytime directoryChange is emitted, it calls asyncLoadMonitorDir
This commit is contained in:
parent
e0337d0caf
commit
5e9aa63b45
@ -101,9 +101,13 @@ void KiwixApp::init()
|
||||
this->openZimFile(message);
|
||||
}
|
||||
});
|
||||
connect(&m_watcher, &QFileSystemWatcher::directoryChanged, this, [=](QString monitorDir) {
|
||||
m_library.asyncLoadMonitorDir(monitorDir);
|
||||
});
|
||||
QString monitorDir = m_settingsManager.getMonitorDir();
|
||||
if (monitorDir != "") {
|
||||
m_library.setMonitorDirZims(m_library.getLibraryZimsFromDir(monitorDir));
|
||||
m_watcher.addPath(monitorDir);
|
||||
m_library.asyncLoadMonitorDir(monitorDir);
|
||||
}
|
||||
}
|
||||
@ -281,7 +285,11 @@ bool KiwixApp::isCurrentArticleBookmarked()
|
||||
void KiwixApp::setMonitorDir(const QString &dir) {
|
||||
m_settingsManager.setMonitorDir(dir);
|
||||
m_library.setMonitorDirZims(QStringList());
|
||||
for (auto path : m_watcher.directories()) {
|
||||
m_watcher.removePath(path);
|
||||
}
|
||||
if (dir != "") {
|
||||
m_watcher.addPath(dir);
|
||||
m_library.asyncLoadMonitorDir(dir);
|
||||
}
|
||||
}
|
||||
|
@ -108,6 +108,7 @@ private:
|
||||
kiwix::UpdatableNameMapper m_nameMapper;
|
||||
kiwix::Server m_server;
|
||||
Translation m_translation;
|
||||
QFileSystemWatcher m_watcher;
|
||||
|
||||
QAction* mpa_actions[MAX_ACTION];
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user