mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-07 00:15:48 -04:00
- addLayer() and addRasterLayer now take QStringList const references [0]
- now only provides file filters for supported qgis subset of GDAL drivers - disabled SDTS and GML vector format file filters as they're not yet currently supported in qgis Notes: [0] thus saving unnecessary copying of string list arguments git-svn-id: http://svn.osgeo.org/qgis/trunk@807 c8812cc2-4d05-0410-92ff-de0c093fc19c
This commit is contained in:
parent
dc148c4858
commit
4194892006
@ -409,6 +409,8 @@ buildSupportedVectorFileFilter_( QString & fileFilters )
|
|||||||
{
|
{
|
||||||
driver = driverRegistrar->GetDriver( i );
|
driver = driverRegistrar->GetDriver( i );
|
||||||
|
|
||||||
|
Q_CHECK_PTR( driver );
|
||||||
|
|
||||||
if ( ! driver )
|
if ( ! driver )
|
||||||
{
|
{
|
||||||
qWarning( "unable to get driver %d", i );
|
qWarning( "unable to get driver %d", i );
|
||||||
@ -432,8 +434,9 @@ buildSupportedVectorFileFilter_( QString & fileFilters )
|
|||||||
}
|
}
|
||||||
else if ( driverName.startsWith( "SDTS" ) )
|
else if ( driverName.startsWith( "SDTS" ) )
|
||||||
{
|
{
|
||||||
fileFilters += createFileFilter_( "Spatial Data Transfer Standard",
|
// XXX not yet supported; post 0.1 release task
|
||||||
"*catd.ddf" );
|
// fileFilters += createFileFilter_( "Spatial Data Transfer Standard",
|
||||||
|
// "*catd.ddf" );
|
||||||
}
|
}
|
||||||
else if ( driverName.startsWith( "TIGER" ) )
|
else if ( driverName.startsWith( "TIGER" ) )
|
||||||
{
|
{
|
||||||
@ -469,8 +472,9 @@ buildSupportedVectorFileFilter_( QString & fileFilters )
|
|||||||
}
|
}
|
||||||
else if ( driverName.startsWith( "GML" ) )
|
else if ( driverName.startsWith( "GML" ) )
|
||||||
{
|
{
|
||||||
fileFilters += createFileFilter_( "Geography Markup Language",
|
// XXX not yet supported; post 0.1 release task
|
||||||
"*.gml" );
|
// fileFilters += createFileFilter_( "Geography Markup Language",
|
||||||
|
// "*.gml" );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -523,16 +527,18 @@ QgisApp::addLayer()
|
|||||||
|
|
||||||
/** \brief overloaded vesion of the above method that takes a list of
|
/** \brief overloaded vesion of the above method that takes a list of
|
||||||
* filenames instead of prompting user with a dialog. */
|
* filenames instead of prompting user with a dialog. */
|
||||||
void QgisApp::addLayer(QStringList theLayerQStringList)
|
void
|
||||||
|
QgisApp::addLayer(QStringList const & theLayerQStringList)
|
||||||
{
|
{
|
||||||
// check to see if we have an ogr provider available
|
// check to see if we have an ogr provider available
|
||||||
QString pOgr = providerRegistry->library("ogr");
|
QString pOgr = providerRegistry->library("ogr");
|
||||||
if (pOgr.length() > 0) {
|
if (pOgr.length() > 0) {
|
||||||
mapCanvas->freeze();
|
mapCanvas->freeze();
|
||||||
QApplication::setOverrideCursor(Qt::WaitCursor);
|
QApplication::setOverrideCursor(Qt::WaitCursor);
|
||||||
QStringList::Iterator it = theLayerQStringList.begin();
|
QStringList::ConstIterator it = theLayerQStringList.begin();
|
||||||
while (it != theLayerQStringList.end()) {
|
while (it != theLayerQStringList.end()) {
|
||||||
if (isValidVectorFileName(*it)) {
|
if ( true ) {
|
||||||
|
// if (isValidVectorFileName(*it)) {
|
||||||
|
|
||||||
QFileInfo fi(*it);
|
QFileInfo fi(*it);
|
||||||
QString base = fi.baseName();
|
QString base = fi.baseName();
|
||||||
@ -579,6 +585,55 @@ void QgisApp::addLayer(QStringList theLayerQStringList)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
The subset of GDAL formats that we currently support.
|
||||||
|
|
||||||
|
@note
|
||||||
|
|
||||||
|
Some day this won't be necessary as there'll be a time when
|
||||||
|
theoretically we'll support everything that GDAL can throw at us.
|
||||||
|
|
||||||
|
These are GDAL driver description strings.
|
||||||
|
*/
|
||||||
|
static const char* const supportedRasterFormats_[] =
|
||||||
|
{ "SDTS",
|
||||||
|
"AIG",
|
||||||
|
"AAIGrid",
|
||||||
|
"GTiff",
|
||||||
|
"USGSDEM",
|
||||||
|
"HFA",
|
||||||
|
"GRASS",
|
||||||
|
"" // used to indicate end of list
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
returns true if the given raster driver name is one currently
|
||||||
|
supported, otherwise it returns false
|
||||||
|
|
||||||
|
@param driverName GDAL driver description string
|
||||||
|
*/
|
||||||
|
static
|
||||||
|
bool
|
||||||
|
isSupportedRasterDriver_( QString const & driverName )
|
||||||
|
{
|
||||||
|
size_t i = 0;
|
||||||
|
|
||||||
|
while ( supportedRasterFormats_[i][0] ) // while not end of string list
|
||||||
|
{
|
||||||
|
if ( driverName == supportedRasterFormats_[i] )
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
} // isSupportedRasterDriver_
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -632,12 +687,26 @@ buildSupportedRasterFileFilter_( QString & fileFilters )
|
|||||||
{
|
{
|
||||||
driver = driverManager->GetDriver( i );
|
driver = driverManager->GetDriver( i );
|
||||||
|
|
||||||
|
Q_CHECK_PTR( driver );
|
||||||
|
|
||||||
if ( ! driver )
|
if ( ! driver )
|
||||||
{
|
{
|
||||||
qWarning( "unable to get driver %d", i );
|
qWarning( "unable to get driver %d", i );
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// now we need to see if the driver is for something currently
|
||||||
|
// supported; if not, we give it a miss for the next driver
|
||||||
|
|
||||||
|
if ( ! isSupportedRasterDriver_( driver->GetDescription() ) )
|
||||||
|
{
|
||||||
|
// not supported, therefore skip
|
||||||
|
#ifdef QT_DEBUG
|
||||||
|
qWarning( "skipping unsupported driver %s", driver->GetDescription() );
|
||||||
|
#endif
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
// std::cerr << "got driver string " << driver->GetDescription() << "\n";
|
// std::cerr << "got driver string " << driver->GetDescription() << "\n";
|
||||||
|
|
||||||
driverMetadata = driver->GetMetadata();
|
driverMetadata = driver->GetMetadata();
|
||||||
@ -730,7 +799,7 @@ QgisApp::addRasterLayer()
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
void QgisApp::addRasterLayer(QStringList theFileNameQStringList)
|
void QgisApp::addRasterLayer(QStringList const & theFileNameQStringList)
|
||||||
{
|
{
|
||||||
if (theFileNameQStringList.empty()) { // no files selected so bail out, but
|
if (theFileNameQStringList.empty()) { // no files selected so bail out, but
|
||||||
// allow mapCanvas to handle events
|
// allow mapCanvas to handle events
|
||||||
@ -740,7 +809,7 @@ void QgisApp::addRasterLayer(QStringList theFileNameQStringList)
|
|||||||
}
|
}
|
||||||
|
|
||||||
QApplication::setOverrideCursor(Qt::WaitCursor);
|
QApplication::setOverrideCursor(Qt::WaitCursor);
|
||||||
for (QStringList::Iterator myIterator = theFileNameQStringList.begin(); myIterator != theFileNameQStringList.end(); ++myIterator) {
|
for (QStringList::ConstIterator myIterator = theFileNameQStringList.begin(); myIterator != theFileNameQStringList.end(); ++myIterator) {
|
||||||
if (isValidRasterFileName(*myIterator)) {
|
if (isValidRasterFileName(*myIterator)) {
|
||||||
QFileInfo myFileInfo(*myIterator);
|
QFileInfo myFileInfo(*myIterator);
|
||||||
QString myDirNameQString = myFileInfo.dirPath(); //get the directory the .adf file was in
|
QString myDirNameQString = myFileInfo.dirPath(); //get the directory the .adf file was in
|
||||||
|
@ -53,10 +53,10 @@ public:
|
|||||||
void addVectorLayer(QString vectorLayerPath, QString baseName, QString providerKey);
|
void addVectorLayer(QString vectorLayerPath, QString baseName, QString providerKey);
|
||||||
/** \brief overloaded vesion of the privat addLayer method that takes a list of
|
/** \brief overloaded vesion of the privat addLayer method that takes a list of
|
||||||
* filenames instead of prompting user with a dialog. */
|
* filenames instead of prompting user with a dialog. */
|
||||||
void addLayer(QStringList theLayerQStringList);
|
void addLayer(QStringList const & theLayerQStringList);
|
||||||
/** \brief overloaded vesion of the privat addLRasterayer method that takes a list of
|
/** \brief overloaded vesion of the privat addLRasterayer method that takes a list of
|
||||||
* filenames instead of prompting user with a dialog. */
|
* filenames instead of prompting user with a dialog. */
|
||||||
void addRasterLayer(QStringList theLayerQStringList);
|
void addRasterLayer(QStringList const & theLayerQStringList);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
//private:
|
//private:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user