mirror of
https://github.com/kiwix/kiwix-desktop.git
synced 2025-09-24 04:32:15 -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);
|
this->openZimFile(message);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
connect(&m_watcher, &QFileSystemWatcher::directoryChanged, this, [=](QString monitorDir) {
|
||||||
|
m_library.asyncLoadMonitorDir(monitorDir);
|
||||||
|
});
|
||||||
QString monitorDir = m_settingsManager.getMonitorDir();
|
QString monitorDir = m_settingsManager.getMonitorDir();
|
||||||
if (monitorDir != "") {
|
if (monitorDir != "") {
|
||||||
m_library.setMonitorDirZims(m_library.getLibraryZimsFromDir(monitorDir));
|
m_library.setMonitorDirZims(m_library.getLibraryZimsFromDir(monitorDir));
|
||||||
|
m_watcher.addPath(monitorDir);
|
||||||
m_library.asyncLoadMonitorDir(monitorDir);
|
m_library.asyncLoadMonitorDir(monitorDir);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -281,7 +285,11 @@ bool KiwixApp::isCurrentArticleBookmarked()
|
|||||||
void KiwixApp::setMonitorDir(const QString &dir) {
|
void KiwixApp::setMonitorDir(const QString &dir) {
|
||||||
m_settingsManager.setMonitorDir(dir);
|
m_settingsManager.setMonitorDir(dir);
|
||||||
m_library.setMonitorDirZims(QStringList());
|
m_library.setMonitorDirZims(QStringList());
|
||||||
|
for (auto path : m_watcher.directories()) {
|
||||||
|
m_watcher.removePath(path);
|
||||||
|
}
|
||||||
if (dir != "") {
|
if (dir != "") {
|
||||||
|
m_watcher.addPath(dir);
|
||||||
m_library.asyncLoadMonitorDir(dir);
|
m_library.asyncLoadMonitorDir(dir);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -108,6 +108,7 @@ private:
|
|||||||
kiwix::UpdatableNameMapper m_nameMapper;
|
kiwix::UpdatableNameMapper m_nameMapper;
|
||||||
kiwix::Server m_server;
|
kiwix::Server m_server;
|
||||||
Translation m_translation;
|
Translation m_translation;
|
||||||
|
QFileSystemWatcher m_watcher;
|
||||||
|
|
||||||
QAction* mpa_actions[MAX_ACTION];
|
QAction* mpa_actions[MAX_ACTION];
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user