bool GalleryUtil::LoadDirectory(ThumbList& itemList, const QString& dir, const GalleryFilter& flt, bool recurse, ThumbHash *itemHash, ThumbGenerator* thumbGen) { QString blah = dir; QDir d(blah); QString currDir = d.absolutePath(); QStringList splitFD; bool isGallery; QFileInfoList gList = d.entryInfoList(QStringList("serial*.dat"), QDir::Files); isGallery = (gList.count() != 0); // Create .thumbcache dir if neccesary if (thumbGen) thumbGen->getThumbcacheDir(currDir); QFileInfoList list = d.entryInfoList(GetMediaFilter(), QDir::Files | QDir::AllDirs | QDir::NoDotAndDotDot, (QDir::SortFlag)flt.getSort()); if (list.isEmpty()) return false; QFileInfoList::const_iterator it = list.begin(); const QFileInfo *fi; if (thumbGen) { thumbGen->cancel(); thumbGen->setDirectory(currDir, isGallery); } if (!flt.getDirFilter().isEmpty()) { splitFD = flt.getDirFilter().split(":"); } while (it != list.end()) { fi = &(*it); ++it; // remove these already-resized pictures. if (isGallery && ( (fi->fileName().indexOf(".thumb.") > 0) || (fi->fileName().indexOf(".sized.") > 0) || (fi->fileName().indexOf(".highlight.") > 0))) continue; // skip filtered directory if (fi->isDir() && !splitFD.filter(fi->fileName(), Qt::CaseInsensitive).isEmpty()) continue; if (fi->isDir() && recurse) { LoadDirectory(itemList, QDir::cleanPath(fi->absoluteFilePath()), flt, true, itemHash, thumbGen); } else { if ((GalleryUtil::IsImage(fi->absoluteFilePath()) && flt.getTypeFilter() == kTypeFilterMoviesOnly) || (GalleryUtil::IsMovie(fi->absoluteFilePath()) && flt.getTypeFilter() == kTypeFilterImagesOnly)) continue; ThumbItem *item = new ThumbItem(fi->fileName(), QDir::cleanPath(fi->absoluteFilePath()), fi->isDir()); itemList.append(item); if (itemHash) itemHash->insert(item->GetName(), item); if (thumbGen) thumbGen->addFile(item->GetName()); } } return isGallery; }
bool GalleryUtil::LoadDirectory(ThumbList& itemList, const QString& dir, int sortorder, bool recurse, ThumbHash *itemHash, ThumbGenerator* thumbGen) { QString blah = dir; QDir d(blah); QString currDir = d.absolutePath(); bool isGallery; QFileInfoList gList = d.entryInfoList(QStringList("serial*.dat"), QDir::Files); isGallery = (gList.count() != 0); // Create .thumbcache dir if neccesary if (thumbGen) thumbGen->getThumbcacheDir(currDir); QFileInfoList list = d.entryInfoList(GetMediaFilter(), QDir::Files | QDir::AllDirs, (QDir::SortFlag)sortorder); if (list.isEmpty()) return false; QFileInfoList::const_iterator it = list.begin(); const QFileInfo *fi; if (thumbGen) { thumbGen->cancel(); thumbGen->setDirectory(currDir, isGallery); } while (it != list.end()) { fi = &(*it); ++it; if (fi->fileName() == "." || fi->fileName() == "..") continue; // remove these already-resized pictures. if (isGallery && ( (fi->fileName().indexOf(".thumb.") > 0) || (fi->fileName().indexOf(".sized.") > 0) || (fi->fileName().indexOf(".highlight.") > 0))) continue; if (fi->isDir() && recurse) { GalleryUtil::LoadDirectory( itemList, QDir::cleanPath(fi->absoluteFilePath()), sortorder, true, itemHash, thumbGen); } else { ThumbItem *item = new ThumbItem( fi->fileName(), QDir::cleanPath(fi->absoluteFilePath()), fi->isDir()); itemList.append(item); if (itemHash) itemHash->insert(item->GetName(), item); if (thumbGen) thumbGen->addFile(item->GetName()); } } return isGallery; }