Dont artificially limit the raster types available. Note if you have a lot of gdal file types supported the file filter is very long. We need to find a sensible way to manage that.

git-svn-id: http://svn.osgeo.org/qgis/trunk@8462 c8812cc2-4d05-0410-92ff-de0c093fc19c
This commit is contained in:
timlinux 2008-05-19 13:17:31 +00:00
parent 9522dd4592
commit 172c20e136
3 changed files with 1 additions and 74 deletions

View File

@ -19,7 +19,6 @@ public:
// Static methods: // Static methods:
// //
static void buildSupportedRasterFileFilter(QString & fileFilters); static void buildSupportedRasterFileFilter(QString & fileFilters);
static bool isSupportedRasterDriver(const QString & driverName);
static void registerGdalDrivers(); static void registerGdalDrivers();
/** This helper checks to see whether the filename appears to be a valid /** This helper checks to see whether the filename appears to be a valid

View File

@ -75,44 +75,13 @@ email : tim at linfiniti.com
// Static Methods and members first.... // Static Methods and members first....
// //
///////////////////////////////////////////////////////// /////////////////////////////////////////////////////////
/**
Static member variable storing 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 mSupportedRasterFormats[] =
{
"AAIGrid",
"AIG",
"DTED",
"ECW",
"GRASS",
"GTiff",
"HFA",
"JP2ECW",
"JP2KAK",
"JP2MrSID",
"JPEG2000",
"MrSID",
"SDTS",
"USGSDEM",
"" // used to indicate end of list
};
/** /**
Builds the list of file filter strings to later be used by Builds the list of file filter strings to later be used by
QgisApp::addRasterLayer() QgisApp::addRasterLayer()
We query GDAL for a list of supported raster formats; we then build We query GDAL for a list of supported raster formats; we then build
a list of file filter strings from that list. We return a string a list of file filter strings from that list. We return a string
that contains this list that is suitable for use in a a that contains this list that is suitable for use in a
QFileDialog::getOpenFileNames() call. QFileDialog::getOpenFileNames() call.
*/ */
@ -166,12 +135,6 @@ void QgsRasterLayer::buildSupportedRasterFileFilter(QString & theFileFiltersStri
myGdalDriverDescription = GDALGetDescription(myGdalDriver); myGdalDriverDescription = GDALGetDescription(myGdalDriver);
if (!isSupportedRasterDriver(myGdalDriverDescription))
{
// not supported, therefore skip
QgsDebugMsg("skipping unsupported driver " + QString(GDALGetDescription(myGdalDriver)));
continue;
}
// std::cerr << "got driver string " << myGdalDriver->GetDescription() << "\n"; // std::cerr << "got driver string " << myGdalDriver->GetDescription() << "\n";
myGdalDriverMetadata = GDALGetMetadata(myGdalDriver,NULL); myGdalDriverMetadata = GDALGetMetadata(myGdalDriver,NULL);
@ -290,39 +253,6 @@ void QgsRasterLayer::registerGdalDrivers()
GDALAllRegister(); GDALAllRegister();
} }
/**
returns true if the given raster driver name is one currently
supported, otherwise it returns false
@param theDriverName GDAL driver description string
*/
bool QgsRasterLayer::isSupportedRasterDriver(QString const &theDriverName)
{
size_t i = 0;
while (mSupportedRasterFormats[i][0]) // while not end of string list
{
// If we've got a case-insensitive match for a GDAL aware driver
// description, then we've got a match. Why case-insensitive?
// I'm just being paranoid in that I can envision a situation
// whereby GDAL slightly changes driver description string case,
// in which case we'd catch it here. Not that that would likely
// happen, but if it does, we'll already compensate.
// GS - At Qt 3.1.2, the case sensitive argument. So we change the
// driverName to lower case before testing
QString format = mSupportedRasterFormats[i];
if (theDriverName.lower().startsWith(format.lower()))
{
return true;
}
i++;
}
return false;
} // isSupportedRasterDriver
/** This helper checks to see whether the filename appears to be a valid raster file name */ /** This helper checks to see whether the filename appears to be a valid raster file name */
bool QgsRasterLayer::isValidRasterFileName(QString const & theFileNameQString) bool QgsRasterLayer::isValidRasterFileName(QString const & theFileNameQString)
@ -377,7 +307,6 @@ QgsRasterLayer::QgsRasterLayer(
QString const & baseName, QString const & baseName,
bool loadDefaultStyleFlag) bool loadDefaultStyleFlag)
: QgsMapLayer(RASTER, baseName, path), : QgsMapLayer(RASTER, baseName, path),
// XXX where is this? popMenu(0), //popMenu is the contextmenu obtained by right clicking on the legend
mRasterXDim( std::numeric_limits<int>::max() ), mRasterXDim( std::numeric_limits<int>::max() ),
mRasterYDim( std::numeric_limits<int>::max() ), mRasterYDim( std::numeric_limits<int>::max() ),
mDebugOverlayFlag(false), mDebugOverlayFlag(false),

View File

@ -186,7 +186,6 @@ public:
// Static methods: // Static methods:
// //
static void buildSupportedRasterFileFilter(QString & fileFilters); static void buildSupportedRasterFileFilter(QString & fileFilters);
static bool isSupportedRasterDriver(const QString & driverName);
static void registerGdalDrivers(); static void registerGdalDrivers();
/** This helper checks to see whether the filename appears to be a valid /** This helper checks to see whether the filename appears to be a valid