//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() ); } } }
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; }