/*! * Adds the necessary paths to the file system watcher * \param filePath Path (including name) of the file to watch. * \param watcher The file system watcher. */ static void addPathsToWatcher(const QString &filePath, QScopedPointer<QFileSystemWatcher>& watcher) { QFileInfo fileInfo(filePath); QString directory; bool fileExists = fileInfo.exists(); if (fileExists) { // If the file exists, we can take the canonical path directly directory = fileInfo.canonicalPath(); } else { // If the file doesn't exist, canonicalPath would return an empty string. That's why // we need to get the parent directory first. QFileInfo parentPath(fileInfo.absolutePath()); if (parentPath.exists()) { directory = parentPath.canonicalFilePath(); } } if (!directory.isEmpty()) { // Watch the directory if it's not being watched yet if (!watcher->directories().contains(directory)) { watcher->addPath(directory); } } // Watch the file itself if it's not being watched yet if (fileExists && !watcher->files().contains(filePath)) { watcher->addPath(filePath); } }
void retrieveOrEnroll(const File &file, QScopedPointer<Gallery> &gallery, FileList &galleryFiles) { if (!file.getBool("enroll") && (QStringList() << "gal" << "mem" << "template").contains(file.suffix())) { // Retrieve it gallery.reset(Gallery::make(file)); galleryFiles = gallery->files(); } else { // Was it already enrolled in memory? gallery.reset(Gallery::make(getMemoryGallery(file))); galleryFiles = gallery->files(); if (!galleryFiles.isEmpty()) return; // Enroll it enroll(file); gallery.reset(Gallery::make(getMemoryGallery(file))); galleryFiles = gallery->files(); } }