void IconView::LoadThumbnail(ThumbItem *item) { if (!item) return; bool canLoadGallery = m_isGallery; QString imagePath; if (canLoadGallery) { if (item->IsDir()) { // try to find a highlight QDir subdir(item->GetPath(), "*.highlight.*", QDir::Name, QDir::Files); if (subdir.count() > 0) { // check if the image format is understood QFileInfoList::const_iterator it = subdir.entryInfoList().begin(); if (it != subdir.entryInfoList().end()) { imagePath = it->absoluteFilePath(); } } } else { QString fn = item->GetName(); int firstDot = fn.indexOf('.'); if (firstDot > 0) { fn.insert(firstDot, ".thumb"); imagePath = QString("%1/%2").arg(m_currDir).arg(fn); } } canLoadGallery = !(QFile(imagePath).exists()); } if (!canLoadGallery) imagePath = QString("%1%2.jpg") .arg(ThumbGenerator::getThumbcacheDir(m_currDir)) .arg(item->GetName()); item->SetImageFilename(imagePath); }
void QgsColorSchemeRegistry::addUserSchemes() { QString palettesDir = QgsApplication::qgisSettingsDirPath() + "/palettes"; QDir localDir; if ( !localDir.mkpath( palettesDir ) ) { return; } QFileInfoList fileInfoList = QDir( palettesDir ).entryInfoList( QStringList( "*.gpl" ), QDir::Files ); QFileInfoList::const_iterator infoIt = fileInfoList.constBegin(); for ( ; infoIt != fileInfoList.constEnd(); ++infoIt ) { addColorScheme( new QgsUserColorScheme( infoIt->fileName() ) ); } }
bool GalleryUtil::DeleteDirectory(const QFileInfo &dir) { if (!dir.exists()) return false; QDir srcDir(dir.absoluteFilePath()); QFileInfoList list = srcDir.entryInfoList(); QFileInfoList::const_iterator it = list.begin(); for (; it != list.end(); ++it) { const QString fn = it->fileName(); if (fn != "." && fn != "..") Delete(*it); } return FileDelete(dir); }
bool GalleryUtil::DeleteDirectory(const QFileInfo &dir) { if (!dir.exists()) return false; QDir srcDir(dir.absoluteFilePath()); srcDir.setFilter(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot); QFileInfoList list = srcDir.entryInfoList(); QFileInfoList::const_iterator it = list.begin(); for (; it != list.end(); ++it) { const QString fn = it->fileName(); Delete(*it); } return FileDelete(dir); }
int FmDriveDetailsContent::getDataSizeByAbsolutePath( const QString &driveName, const FmDriveDetailsDataGroup &dataGroup, QList<FmDriveDetailsSize*> &detailsSizeList, volatile bool *isStopped ) { quint64 totalSize = 0; QStringList typeFilter = dataGroup.pathList(); for( QStringList::const_iterator it = typeFilter.begin(); it!= typeFilter.end(); ++it ) { if ( *isStopped ){ return FmErrCancel; } QString driver(FmUtils::removePathSplash(FmUtils::getDriveNameFromPath(driveName))); QFileInfo fileInfo(QString(driver + (*it))); if (fileInfo.exists()) { if (fileInfo.isFile()) { totalSize += fileInfo.size(); } else if (fileInfo.isDir()) { QList<QDir> dirs; dirs.append(QDir(fileInfo.absolutePath())); // traverse the whole path while (!dirs.isEmpty()) { QDir::Filters filter = QDir::NoDotAndDotDot | QDir::AllEntries; QFileInfoList infoList = dirs.first().entryInfoList( filter ); for ( QFileInfoList::const_iterator it = infoList.begin(); it != infoList.end(); ++it ) { if ( *isStopped ){ return FmErrCancel; } if ( it->isFile() ) { totalSize += it->size(); } else if ( it->isDir() ) { dirs.append( QDir( it->absoluteFilePath() ) ); } } dirs.removeFirst(); } } } } detailsSizeList.append( new FmDriveDetailsSize( dataGroup.dataType(), totalSize ) ); return FmErrNone; }
KipiImageCollectionShared::KipiImageCollectionShared(const QUrl& albumPath) : ImageCollectionShared(), m_albumPath(albumPath), m_images() { // go through the album and add its images: const QString albumPathString = m_albumPath.toLocalFile(); // add only the files, because recursion through directories should be // handled in KipiInterface::add[Selected]Album // TODO: restrict the search to images! const QFileInfoList files = QDir(albumPathString).entryInfoList(QDir::Files); for (QFileInfoList::const_iterator it = files.constBegin(); it!=files.constEnd(); ++it) { m_images.append(QUrl::fromLocalFile(it->absoluteFilePath())); } }
//list all directories in $prefix/share/qgis/svg foreach( QString path, QgsApplication::svgPaths() ) { QDir svgDirectory( path ); if ( !svgDirectory.exists() || !svgDirectory.isReadable() ) { continue; //error } QFileInfoList directoryList = svgDirectory.entryInfoList( QDir::Dirs | QDir::NoDotAndDotDot ); QFileInfoList::const_iterator dirIt = directoryList.constBegin(); for ( ; dirIt != directoryList.constEnd(); ++dirIt ) { if ( addDirectoryToPreview( dirIt->absoluteFilePath() ) == 0 ) { mSearchDirectoriesComboBox->addItem( dirIt->absoluteFilePath() ); } } }
QMap<QString, QString> QgsComposerManager::defaultTemplates() const { QMap<QString, QString> templateMap; //search for default templates in $pkgDataPath/composer_templates QDir defaultTemplateDir( QgsApplication::pkgDataPath() + "/composer_templates" ); if ( !defaultTemplateDir.exists() ) { return templateMap; } QFileInfoList fileInfoList = defaultTemplateDir.entryInfoList( QDir::Files ); QFileInfoList::const_iterator infoIt = fileInfoList.constBegin(); for ( ; infoIt != fileInfoList.constEnd(); ++infoIt ) { templateMap.insert( infoIt->baseName(), infoIt->absoluteFilePath() ); } return templateMap; }
void QgsComposerPictureWidget::addStandardDirectoriesToPreview() { mPreviewListWidget->clear(); //list all directories in $prefix/share/qgis/svg QStringList svgPaths = QgsApplication::svgPaths(); for ( int i = 0; i < svgPaths.size(); i++ ) { QDir svgDirectory( svgPaths[i] ); if ( !svgDirectory.exists() || !svgDirectory.isReadable() ) { continue; } //add directory itself mSearchDirectoriesComboBox->addItem( svgDirectory.absolutePath() ); addDirectoryToPreview( svgDirectory.absolutePath() ); //and also subdirectories QFileInfoList directoryList = svgDirectory.entryInfoList( QDir::Dirs | QDir::NoDotAndDotDot ); QFileInfoList::const_iterator dirIt = directoryList.constBegin(); for ( ; dirIt != directoryList.constEnd(); ++dirIt ) { if ( addDirectoryToPreview( dirIt->absoluteFilePath() ) == 0 ) { mSearchDirectoriesComboBox->addItem( dirIt->absoluteFilePath() ); } } } //include additional user-defined directories for images QSettings s; QStringList userDirList = s.value( "/Composer/PictureWidgetDirectories" ).toStringList(); QStringList::const_iterator userDirIt = userDirList.constBegin(); for ( ; userDirIt != userDirList.constEnd(); ++userDirIt ) { addDirectoryToPreview( *userDirIt ); mSearchDirectoriesComboBox->addItem( *userDirIt ); } mPreviewsLoaded = true; }
QMap<QString, QString> QgsComposerManager::defaultTemplates( bool fromUser ) const { QMap<QString, QString> templateMap; //search for default templates in $pkgDataPath/composer_templates // user templates in $qgisSettingsDirPath/composer_templates QDir defaultTemplateDir( fromUser ? mUserTemplatesDir : mDefaultTemplatesDir ); if ( !defaultTemplateDir.exists() ) { return templateMap; } QFileInfoList fileInfoList = defaultTemplateDir.entryInfoList( QDir::Files ); QFileInfoList::const_iterator infoIt = fileInfoList.constBegin(); for ( ; infoIt != fileInfoList.constEnd(); ++infoIt ) { templateMap.insert( infoIt->baseName(), infoIt->absoluteFilePath() ); } return templateMap; }
/* * FilesModelUpdate * extfilter_imgs_ 에 들어있는 파일들을 실제로 보여지도록 만든다. * 조그만 아이콘으로 만들기 위한 작업 */ void MainWindow::FilesModelUpdate() { QFileInfoList::const_iterator iter; file_model_->clear(); for (iter=extfilter_imgs_.begin(); iter!=extfilter_imgs_.end(); ++iter) { qDebug() << iter->absoluteFilePath(); QImage img_buffer(iter->absoluteFilePath()); QIcon icon = GetThumnail(&img_buffer); QStandardItem* item; if(!icon.isNull()) { item = new QStandardItem(icon,iter->fileName()); file_model_->appendRow(item); } } extfilter_imgs_.clear();; }
QVector<QString> FileUtils::getAllFiles(const QString &path) { QVector<QString> result; QDir dir(path); QFileInfoList fileInfoLists = dir.entryInfoList(); QFileInfoList::const_iterator iterator = fileInfoLists.constBegin(); for(; iterator != fileInfoLists.constEnd(); iterator++) { QString filename = iterator->fileName(); if (!filename.startsWith(".")) { if (iterator->isDir()) { result += getAllFiles(iterator->absoluteFilePath()); } else if (iterator->isFile()) { result.push_back(iterator->absoluteFilePath()); } else { // } } } return result; }
// search local database for discID bool Dbase::Search(Cddb::Matches& res, const Cddb::discid_t discID) { res.matches.clear(); res.discID = discID; if (CacheGet(res, discID)) return true; QFileInfoList list = QDir(GetDB()).entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot); for (QFileInfoList::const_iterator it = list.begin(); it != list.end(); ++it) { QString genre = it->baseName(); QFileInfoList ids = QDir(it->canonicalFilePath()).entryInfoList(QDir::Files); for (QFileInfoList::const_iterator it2 = ids.begin(); it2 != ids.end(); ++it2) { if (it2->baseName().toUInt(nullptr,16) == discID) { QFile file(it2->canonicalFilePath()); if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { Cddb::Album a(QTextStream(&file).readAll()); a.discGenre = genre; a.discID = discID; LOG(VB_MEDIA, LOG_INFO, QString("LocalCDDB found %1 in "). arg(discID,0,16) + genre + " : " + a.artist + " / " + a.title); CachePut(a); res.matches.push_back(Cddb::Match(genre,discID,a.artist,a.title)); } } } } return res.matches.size() > 0; }
// find default skins (resources) static const Skins &defaultSkins() { static Skins rc; if (rc.empty()) { #ifdef DEFAULT_SKINS_FROM_RESOURCE const QString skinPath = QLatin1String(skinResourcePathC); #else QString skinPath = QLibraryInfo::location(QLibraryInfo::PrefixPath); skinPath += QDir::separator(); skinPath += QLatin1String("tools"); skinPath += QDir::separator(); skinPath += QLatin1String("qvfb"); #endif QString pattern = QLatin1String("*."); pattern += QLatin1String(skinExtensionC); const QDir dir(skinPath, pattern); const QFileInfoList list = dir.entryInfoList(); if (list.empty()) return rc; const QFileInfoList::const_iterator lcend = list.constEnd(); for (QFileInfoList::const_iterator it = list.constBegin(); it != lcend; ++it) rc.push_back(SkinNamePath(it->baseName(), it->filePath())); } return rc; }
bool File::fileList(const String& dir, const String& file_pattern, StringList& output, bool full_path) { QDir d(dir.toQString(), file_pattern.toQString(), QDir::Name, QDir::Files); QFileInfoList list = d.entryInfoList(); //clear and check if empty output.clear(); if (list.empty()) { return false; } //resize output output.resize(list.size()); //fill output UInt i = 0; for (QFileInfoList::const_iterator it = list.constBegin(); it != list.constEnd(); ++it) { output[i++] = full_path ? it->filePath() : it->fileName(); } return true; }
QVector<QString> FileUtils::getAllImageFiles(const QString & path) { QVector<QString> result; QDir dir(path); QFileInfoList fileInfoLists = dir.entryInfoList(); QFileInfoList::const_iterator iterator = fileInfoLists.constBegin(); for(; iterator != fileInfoLists.constEnd(); iterator++) { QString filename = iterator->fileName(); if (!filename.startsWith(".")) { if (iterator->isDir()) { result += getAllImageFiles(iterator->absoluteFilePath()); } else if (iterator->isFile()) { QString ext = iterator->completeSuffix(); QString extLower = ext.toLower(); if (extLower.endsWith("png") || extLower.endsWith("jpg") || extLower.endsWith("jpeg")) { result.push_back(iterator->absoluteFilePath()); } } else { // } } } return result; }
LocalProcess::FileSet LocalProcess::dirFiles(const QString &dir) const { QFileInfoList fil; QDir subdirs(dir, "mergedjob-*", QDir::Name, QDir::Dirs); QFileInfoList mergedjobdirs = subdirs.entryInfoList(); for (QFileInfoList::const_iterator itr = mergedjobdirs.begin(); itr != mergedjobdirs.end(); ++itr) { QDir mergeddir(itr->absoluteFilePath(), "", QDir::Name, QDir::Files); fil.append(mergeddir.entryInfoList()); } QDir d(dir, "", QDir::Name, QDir::Files); fil.append(d.entryInfoList()); QFileInfoList filtered; // Filter out all files that are part of the set of input files. Everything remaining should be an outputfile for (QFileInfoList::const_iterator itr = fil.begin(); itr != fil.end(); ++itr) { bool partofinput = false; for (std::vector<std::pair<openstudio::path, openstudio::path> >::const_iterator itr2 = m_requiredFiles.begin(); itr2 != m_requiredFiles.end(); ++itr2) { QString fileName = itr->fileName(); QString fileName2 = toQString(itr2->second.filename()); if (fileName == fileName2) { partofinput = true; break; } } if (!partofinput) { filtered.push_back(*itr); } } FileSet out; typedef FileInfo (*filetransform)(QFileInfo); try{ std::transform(filtered.begin(), filtered.end(), std::inserter(out, out.end()), static_cast<filetransform>(&RunManager_Util::dirFile)); } catch(openstudio::Exception& e) { LOG_AND_THROW("Exception caught " << e.what()); } return out; }
int QgsComposerPictureWidget::addDirectoryToPreview( const QString& path ) { //go through all files of a directory QDir directory( path ); if ( !directory.exists() || !directory.isReadable() ) { return 1; //error } QFileInfoList fileList = directory.entryInfoList( QDir::Files ); QFileInfoList::const_iterator fileIt = fileList.constBegin(); QProgressDialog progress( "Adding Icons...", "Abort", 0, fileList.size() - 1, this ); //cancel button does not seem to work properly with modal dialog //progress.setWindowModality(Qt::WindowModal); int counter = 0; for ( ; fileIt != fileList.constEnd(); ++fileIt ) { progress.setLabelText( tr( "Creating icon for file %1" ).arg( fileIt->fileName() ) ); progress.setValue( counter ); QCoreApplication::processEvents(); if ( progress.wasCanceled() ) { break; } QString filePath = fileIt->absoluteFilePath(); //test if file is svg or pixel format bool fileIsPixel = false; bool fileIsSvg = testSvgFile( filePath ); if ( !fileIsSvg ) { fileIsPixel = testImageFile( filePath ); } //exclude files that are not svg or image if ( !fileIsSvg && !fileIsPixel ) { ++counter; continue; } QListWidgetItem * listItem = new QListWidgetItem( mPreviewListWidget ); listItem->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled ); if ( fileIsSvg ) { QIcon icon( filePath ); listItem->setIcon( icon ); } else //for pixel formats: create icon from scaled pixmap { QPixmap iconPixmap( filePath ); if ( iconPixmap.isNull() ) { ++counter; continue; //unknown file format or other problem } //set pixmap hardcoded to 30/30, same as icon size for mPreviewListWidget QPixmap scaledPixmap( iconPixmap.scaled( QSize( 30, 30 ), Qt::KeepAspectRatio ) ); QIcon icon( scaledPixmap ); listItem->setIcon( icon ); } listItem->setText( "" ); //store the absolute icon file path as user data listItem->setData( Qt::UserRole, fileIt->absoluteFilePath() ); ++counter; } return 0; }
int FmDriveDetailsContent::getDataSizeByTraversePath( const QString &driveName, QList<FmDriveDetailsSize*> &detailsSizeList, volatile bool *isStopped ) { qint64 imageSize( 0 ); qint64 soundSize( 0 ); qint64 midpJavaSize( 0 ); qint64 nativeAppsSize( 0 ); qint64 videoSize( 0 ); qint64 documentsSize( 0 ); FmFileTypeRecognizer fileTypeRecognizer; QList<QDir> dirs; dirs.append( QDir( driveName ) ); // traverse the whole drive while (!dirs.isEmpty()) { QDir::Filters filter = QDir::NoDotAndDotDot | QDir::AllEntries; // do not summarize system and hidden files, these size will go into others category // if( isSysHiddenIncluded ) { // filter = filter | QDir::Hidden | QDir::System; // } QFileInfoList infoList = dirs.first().entryInfoList( filter ); for ( QFileInfoList::const_iterator it = infoList.begin(); it != infoList.end(); ++it ) { if ( *isStopped ){ return FmErrCancel; } if ( it->isFile() ) { FmFileTypeRecognizer::FileType fileType = fileTypeRecognizer.getType( it->absoluteFilePath() ); switch ( fileType ) { case FmFileTypeRecognizer::FileTypeImage: imageSize += it->size(); break; case FmFileTypeRecognizer::FileTypeTone: soundSize += it->size(); break; case FmFileTypeRecognizer::FileTypeJava: midpJavaSize += it->size(); break; case FmFileTypeRecognizer::FileTypeSisx: nativeAppsSize += it->size(); break; case FmFileTypeRecognizer::FileTypeVideo: videoSize += it->size(); break; case FmFileTypeRecognizer::FileTypeText: documentsSize += it->size(); break; default: // do not need handle other type break; } } else if ( it->isDir() ) { dirs.append( QDir( it->absoluteFilePath() ) ); } } dirs.removeFirst(); } // store result to detailsSizeList. detailsSizeList.append( new FmDriveDetailsSize( FmDriveDetailsSize::ETypeImages, imageSize ) ) ; detailsSizeList.append( new FmDriveDetailsSize( FmDriveDetailsSize::ETypeSoundFiles, soundSize ) ); detailsSizeList.append( new FmDriveDetailsSize( FmDriveDetailsSize::ETypeMidpJava, midpJavaSize ) ); detailsSizeList.append( new FmDriveDetailsSize( FmDriveDetailsSize::ETypeNativeApps, nativeAppsSize ) ); detailsSizeList.append( new FmDriveDetailsSize( FmDriveDetailsSize::ETypeVideos, videoSize ) ); detailsSizeList.append( new FmDriveDetailsSize( FmDriveDetailsSize::ETypeDocuments, documentsSize ) ); return FmErrNone; }
openstudio::path WeatherFileFinder::find(const JobParams &t_params, const boost::optional<std::string> &t_filelocationname, const boost::optional<std::string> &t_weatherfilename) { openstudio::path epwdir; try { if (t_params.has("epwfile")) { openstudio::path epwfile = toPath(t_params.get("epwfile").children.at(0).value); if (!epwfile.empty() && boost::filesystem::exists(epwfile)) { LOG(Info, "Valid epwfile found, returning: " << openstudio::toString(epwfile)); return epwfile; } } else { LOG(Info, "No epwfile found in params, moving on for other methods of finding weather file"); } } catch (const std::exception &) { // No epw dir set in params LOG(Info, "Error with epwfile found in params, moving on for other methods of finding weather file"); } try { if (t_params.has("epwdir")) { epwdir = toPath(t_params.get("epwdir").children.at(0).value); } } catch (const std::exception &) { // No epw dir set in params LOG(Info, "No EPWDir known finding weather file will be much harder"); } if (epwdir.empty() || !boost::filesystem::exists(epwdir) || !boost::filesystem::is_directory(epwdir)) { LOG(Info, "The configured EPWDir either does not exist or is not a directory: " << toString(epwdir)); } if (t_weatherfilename) { openstudio::path p = toPath(*t_weatherfilename); if (!boost::filesystem::exists(p)) { p = epwdir / toPath(*t_weatherfilename); if (!boost::filesystem::exists(p)) { LOG(Info, "Weather file discovered from comment header cannot be found at: " << toString(p)); } else { return p; } LOG(Info, "Weather file discovered from comment header cannot be found at: " << *t_weatherfilename); } else { return p; } } if (t_filelocationname) { LOG(Info, "attempting to find weather file from location name: " << *t_filelocationname); // We did not have an epw set, so let's try to find one try { QDir dir(openstudio::toQString(epwdir), "*.epw"); QFileInfoList files = dir.entryInfoList(); std::set<std::string> desiredname = getNameComponents(*t_filelocationname); openstudio::path bestmatch; size_t matchsize = 0; for (QFileInfoList::const_iterator itr = files.begin(); itr != files.end(); ++itr) { std::set<std::string> foundname = getNameComponents(openstudio::toString(itr->fileName())); std::vector<std::string> matches; std::set_intersection(desiredname.begin(), desiredname.end(), foundname.begin(), foundname.end(), std::back_inserter(matches)); if (matches.size() > matchsize) { matchsize = matches.size(); bestmatch = openstudio::toPath(itr->absoluteFilePath()); } } if (matchsize > 2) { LOG(Info, "Adding best match epw from the list found: " << toString(bestmatch)); return bestmatch; } else { LOG(Info, "No best match epw file found, continuing with no epw set"); } } catch (const std::exception &) { LOG(Info, "No EPw file set and no epwdir provided. We are continuing, but EnergyPlus will likely fail"); } } else { LOG(Info, "No EPw file set and no location information parsed from IDF. We are continuing, but EnergyPlus will likely fail"); } LOG(Info, "No weather file found"); return openstudio::path(); }
bool genEmoji(QString emoji_in, const QString &emoji_out) { QDir d(emoji_in); if (!d.exists()) { cout << "Could not open emoji input dir '" << emoji_in.toUtf8().constData() << "'!\n"; QCoreApplication::exit(1); return false; } emoji_in = d.absolutePath() + '/'; QString emoji_in_200x = d.absolutePath() + "_200x/"; QDir d_200x(emoji_in_200x); if (!d.exists()) { cout << "Could not open emoji _200x input dir '" << emoji_in_200x.toUtf8().constData() << "'!\n"; QCoreApplication::exit(1); return false; } int currentRow = 0, currentColumn = 0; uint32 min1 = 0xFFFFFFFF, max1 = 0, min2 = 0xFFFFFFFF, max2 = 0; QStringList filters; filters << "*.png" << "*.gif"; QFileInfoList emojis = d.entryInfoList(filters, QDir::Files | QDir::NoDotAndDotDot | QDir::Readable); for (QFileInfoList::const_iterator i = emojis.cbegin(), e = emojis.cend(); i != e; ++i) { QString s = i->fileName(); QRegularExpressionMatch m = QRegularExpression("^([A-F0-9]+)\\.(png|gif)$").match(s); if (m.hasMatch()) { EmojiData data; QString num = m.captured(1); if (num.size() != 4 && num.size() != 8 && num.size() != 16) { cout << "Bad name found '" << s.toUtf8().constData() << "'!\n"; continue; } data.code = ("0x" + num.mid(0, 8)).toUInt(0, 16); if (num.size() > 8) { data.code2 = ("0x" + num.mid(8)).toUInt(0, 16); } else { data.code2 = 0; } data.name = emoji_in + s; data.name_200x = emoji_in_200x + s; data.x = currentColumn; data.y = currentRow; ++currentColumn; if (currentColumn == inRow) { ++currentRow; currentColumn = 0; } uint32 high = data.code >> 16; if (!high) { // small codes if (data.code == 169 || data.code == 174) { // two small } else { if (data.code < min1) min1 = data.code; if (data.code > max1) max1 = data.code; } } else if (high == 35 || high >= 48 && high < 58) { // digits } else { if (data.code < min2) min2 = data.code; if (data.code > max2) max2 = data.code; } EmojisData::const_iterator i = emojisData.constFind(data.code); if (i != emojisData.cend()) { cout << QString("Bad emoji code (duplicate) %1 %2 and %3 %4").arg(data.code).arg(data.code2).arg(i->code).arg(i->code2).toUtf8().constData() << "\n"; continue; } emojisData.insert(data.code, data); } else {