mirror of
https://github.com/kiwix/kiwix-desktop.git
synced 2025-09-22 03:26:05 -04:00
Added state to the tracked monitored files
Semantically, nothing changes at this point but the possibility for an enhancement is now open.
This commit is contained in:
parent
076c19b645
commit
bc05c75448
@ -865,9 +865,14 @@ void ContentManager::setMonitoredDirectories(QStringSet dirList)
|
||||
m_watcher.removePath(path);
|
||||
}
|
||||
m_knownZimsInDir.clear();
|
||||
MonitoredZimFileInfo libraryZimFileInfo;
|
||||
libraryZimFileInfo.status = MonitoredZimFileInfo::ADDED_TO_THE_LIBRARY;
|
||||
for (auto dir : dirList) {
|
||||
if (dir != "") {
|
||||
m_knownZimsInDir[dir] = mp_library->getLibraryZimsFromDir(dir);
|
||||
auto& zimsInDir = m_knownZimsInDir[dir];
|
||||
for ( const auto& fname : mp_library->getLibraryZimsFromDir(dir) ) {
|
||||
zimsInDir.insert(fname, libraryZimFileInfo);
|
||||
}
|
||||
m_watcher.addPath(dir);
|
||||
asyncUpdateLibraryFromDir(dir);
|
||||
}
|
||||
@ -919,6 +924,7 @@ namespace
|
||||
|
||||
// indexed by MonitoredZimFileInfo::ZimFileStatus enum
|
||||
const char* monitoredDirZimFileHandlingMsgs[] = {
|
||||
"",
|
||||
"it is being downloaded by us, ignoring...",
|
||||
"the file was added to the library",
|
||||
"the file could not be added to the library"
|
||||
@ -944,7 +950,7 @@ int ContentManager::handleZimFileInMonitoredDir(QString dir, QString fileName)
|
||||
if ( mp_library->isBeingDownloadedByUs(bookPath) ) {
|
||||
return MonitoredZimFileInfo::BEING_DOWNLOADED_BY_US;
|
||||
} else if ( manager.addBookFromPath(bookPath.toStdString()) ) {
|
||||
m_knownZimsInDir[dir].insert(fileName);
|
||||
m_knownZimsInDir[dir].insert(fileName, MonitoredZimFileInfo());
|
||||
return MonitoredZimFileInfo::ADDED_TO_THE_LIBRARY;
|
||||
} else {
|
||||
return MonitoredZimFileInfo::COULD_NOT_BE_ADDED_TO_THE_LIBRARY;
|
||||
@ -953,7 +959,13 @@ int ContentManager::handleZimFileInMonitoredDir(QString dir, QString fileName)
|
||||
|
||||
ContentManager::QStringSet ContentManager::getLibraryZims(QString dirPath) const
|
||||
{
|
||||
return m_knownZimsInDir[dirPath];
|
||||
QStringSet zimFileNames;
|
||||
const auto& zimsInDir = m_knownZimsInDir[dirPath];
|
||||
for ( auto it = zimsInDir.begin(); it != zimsInDir.end(); ++it ) {
|
||||
if ( it.value().status == MonitoredZimFileInfo::ADDED_TO_THE_LIBRARY )
|
||||
zimFileNames.insert(it.key());
|
||||
}
|
||||
return zimFileNames;
|
||||
}
|
||||
|
||||
void ContentManager::updateLibraryFromDir(QString dirPath)
|
||||
|
@ -122,8 +122,12 @@ private: // types
|
||||
// the attempt to add the file to the library failed
|
||||
COULD_NOT_BE_ADDED_TO_THE_LIBRARY
|
||||
};
|
||||
|
||||
ZimFileStatus status = ADDED_TO_THE_LIBRARY;
|
||||
};
|
||||
|
||||
typedef QMap<QString, MonitoredZimFileInfo> ZimFileName2InfoMap;
|
||||
|
||||
private: // functions
|
||||
QStringList getBookIds();
|
||||
// reallyEraseBook() doesn't ask for confirmation (unlike eraseBook())
|
||||
@ -171,7 +175,7 @@ private: // data
|
||||
|
||||
QFileSystemWatcher m_watcher;
|
||||
QMutex m_updateFromDirMutex;
|
||||
QMap<QString, QStringSet> m_knownZimsInDir;
|
||||
QMap<QString, ZimFileName2InfoMap> m_knownZimsInDir;
|
||||
};
|
||||
|
||||
#endif // CONTENTMANAGER_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user