// // handle_folder // void Library_Importer::handle_folder (Folder & folder) { // Update the id for the folder element. this->handle_import_common (folder, this->idgen_->generate_folder_id ()); // Update the children in this folder. std::vector <Folder> child_folders; folder.children (child_folders); for (auto folder : child_folders) this->handle_folder (folder); // Handle all the imported FCOs. std::vector <FCO> child_fcos; folder.children (child_fcos); for (auto child : child_fcos) this->handle_import_fco (child); }
void FileSystemScanner::rescanFolders(QPtrList<Folder>* folders, bool forceEXIF, bool fast) { Folder* folder = 0; for (folder = folders->first(); folder; folder = folders->next()) { QString currentFolderPath = folder->dir()->absPath(); tracer->sdebug(__func__) << "rescanning folder: " << folder->id() << ": " << currentFolderPath << endl; if (folder->dir()->exists()) { folder->setFound(true); if (!fast) { rescanFolder(folder, forceEXIF); if (m_cancel) { return; } } if (folder->children() && folder->children()->count()) { rescanFolders(folder->children(), forceEXIF, fast); } // scan the filesystem for new folders if (!fast && folder->recursive()) { delete m_loopDetectionHelper; m_loopDetectionHelper = new QPtrList<QString>; m_loopDetectionHelper->setAutoDelete(true); m_loopDetectionHelper->append(new QString(folder->dir()->canonicalPath())); addFolders(folder); } } else { folder->setFound(false); tracer->sdebug(__func__) << "folder: " << folder->id() << ": '" << currentFolderPath << "' not found" << endl; emit(progress_folderNotFound(currentFolderPath)); } } }