diff --git a/src/app/qgsoptions.cpp b/src/app/qgsoptions.cpp index 8aedcd2aaaa0..fd677fc99ecf 100644 --- a/src/app/qgsoptions.cpp +++ b/src/app/qgsoptions.cpp @@ -202,17 +202,21 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WFlags fl ) : // Scan for valid items in the browser dock cmbScanItemsInBrowser->clear(); - cmbScanItemsInBrowser->addItem( tr( "Check file contents" ) ); // 0 - cmbScanItemsInBrowser->addItem( tr( "Check extension" ) ); // 1 - cmbScanItemsInBrowser->setCurrentIndex( settings.value( "/qgis/scanItemsInBrowser", 1 ).toInt() ); + cmbScanItemsInBrowser->addItem( tr( "Check file contents" ), "contents" ); // 0 + cmbScanItemsInBrowser->addItem( tr( "Check extension" ), "extension" ); // 1 + int index = cmbScanItemsInBrowser->findData( settings.value( "/qgis/scanItemsInBrowser", "" ) ); + if ( index == -1 ) index = 1; + cmbScanItemsInBrowser->setCurrentIndex( index ); // Scan for contents of compressed files (.zip) in browser dock cmbScanZipInBrowser->clear(); - cmbScanZipInBrowser->addItem( tr( "No" ) ); // 0 - cmbScanZipInBrowser->addItem( tr( "Passthru" ) ); // 1 - cmbScanZipInBrowser->addItem( tr( "Basic scan" ) ); // 2 - cmbScanZipInBrowser->addItem( tr( "Full scan" ) ); // 3 - cmbScanZipInBrowser->setCurrentIndex( settings.value( "/qgis/scanZipInBrowser", 2 ).toInt() ); + cmbScanZipInBrowser->addItem( tr( "No" ), QVariant( "no" ) ); + // cmbScanZipInBrowser->addItem( tr( "Passthru" ) ); // 1 - removed + cmbScanZipInBrowser->addItem( tr( "Basic scan" ), QVariant( "basic" ) ); + cmbScanZipInBrowser->addItem( tr( "Full scan" ), QVariant( "full" ) ); + index = cmbScanZipInBrowser->findData( settings.value( "/qgis/scanZipInBrowser", "" ) ); + if ( index == -1 ) index = 1; + cmbScanZipInBrowser->setCurrentIndex( index ); // set the display update threshold spinBoxUpdateThreshold->setValue( settings.value( "/Map/updateThreshold" ).toInt() ); @@ -442,7 +446,6 @@ QgsOptions::QgsOptions( QWidget *parent, Qt::WFlags fl ) : mDefaultSnapModeComboBox->setCurrentIndex( mDefaultSnapModeComboBox->findData( defaultSnapString ) ); mDefaultSnappingToleranceSpinBox->setValue( settings.value( "/qgis/digitizing/default_snapping_tolerance", 0 ).toDouble() ); mSearchRadiusVertexEditSpinBox->setValue( settings.value( "/qgis/digitizing/search_radius_vertex_edit", 10 ).toDouble() ); - int index; if ( settings.value( "/qgis/digitizing/default_snapping_tolerance_unit", 0 ).toInt() == QgsTolerance::MapUnits ) { index = mDefaultSnappingToleranceComboBox->findText( tr( "map units" ) ); @@ -697,8 +700,10 @@ void QgsOptions::saveOptions() settings.setValue( "/qgis/attributeTableBehaviour", cmbAttrTableBehaviour->currentIndex() ); settings.setValue( "/qgis/attributeTableRowCache", spinBoxAttrTableRowCache->value() ); settings.setValue( "/qgis/promptForRasterSublayers", cmbPromptRasterSublayers->currentIndex() ); - settings.setValue( "/qgis/scanItemsInBrowser", cmbScanItemsInBrowser->currentIndex() ); - settings.setValue( "/qgis/scanZipInBrowser", cmbScanZipInBrowser->currentIndex() ); + settings.setValue( "/qgis/scanItemsInBrowser", + cmbScanItemsInBrowser->itemData( cmbScanItemsInBrowser->currentIndex() ).toString() ); + settings.setValue( "/qgis/scanZipInBrowser", + cmbScanZipInBrowser->itemData( cmbScanZipInBrowser->currentIndex() ).toString() ); settings.setValue( "/qgis/dockIdentifyResults", cbxIdentifyResultsDocked->isChecked() ); settings.setValue( "/qgis/dockSnapping", cbxSnappingOptionsDocked->isChecked() ); settings.setValue( "/qgis/addPostgisDC", cbxAddPostgisDC->isChecked() ); diff --git a/src/core/qgsdataitem.cpp b/src/core/qgsdataitem.cpp index bd4fcde3549b..17f2e6436fd8 100644 --- a/src/core/qgsdataitem.cpp +++ b/src/core/qgsdataitem.cpp @@ -477,7 +477,7 @@ QVector QgsDirectoryItem::createChildren( ) QVector children; QDir dir( mPath ); QSettings settings; - bool scanZip = ( settings.value( "/qgis/scanZipInBrowser", 2 ).toInt() != 0 ); + bool scanZip = ( settings.value( "/qgis/scanZipInBrowser", QVariant( "basic" ) ).toString() != "no" ); QStringList entries = dir.entryList( QDir::AllDirs | QDir::NoDotAndDotDot, QDir::Name | QDir::IgnoreCase ); foreach( QString subdir, entries ) @@ -881,25 +881,25 @@ QVector QgsZipItem::createChildren( ) QString childPath; QSettings settings; - int scanZipSetting = settings.value( "/qgis/scanZipInBrowser", 2 ).toInt(); + QString scanZipSetting = settings.value( "/qgis/scanZipInBrowser", "basic" ).toString(); mZipFileList.clear(); QgsDebugMsg( QString( "path = %1 name= %2 scanZipSetting= %3" ).arg( path() ).arg( name() ).arg( scanZipSetting ) ); - // if scanZipBrowser == 0 (No): skip to the next file - if ( scanZipSetting == 0 ) + // if scanZipBrowser == no: skip to the next file + if ( scanZipSetting == "no" ) { return children; } - // if scanZipBrowser == 1 (Passthru): do not scan zip and allow to open directly with /vsizip/ - if ( scanZipSetting == 1 ) - { - mPath = "/vsizip/" + path(); // should check for extension - QgsDebugMsg( "set path to " + path() ); - return children; - } + // if scanZipBrowser == passthru: do not scan zip and allow to open directly with /vsizip/ + // if ( scanZipSetting == 1 ) + // { + // mPath = "/vsizip/" + path(); // should check for extension + // QgsDebugMsg( "set path to " + path() ); + // return children; + // } // get list of files inside zip file QgsDebugMsg( QString( "Open file %1 with gdal vsi" ).arg( path() ) ); @@ -981,7 +981,7 @@ QVector QgsZipItem::createChildren( ) QgsDataItem* QgsZipItem::itemFromPath( QgsDataItem* parent, QString path, QString name ) { QSettings settings; - int scanZipSetting = settings.value( "/qgis/scanZipInBrowser", 2 ).toInt(); + QString scanZipSetting = settings.value( "/qgis/scanZipInBrowser", "basic" ).toString(); QString vsizipPath = path; int zipFileCount = 0; QFileInfo fileInfo( path ); @@ -989,17 +989,17 @@ QgsDataItem* QgsZipItem::itemFromPath( QgsDataItem* parent, QString path, QStrin QgsDebugMsg( QString( "path = %1 name= %2 scanZipSetting= %3" ).arg( path ).arg( name ).arg( scanZipSetting ) ); - // if scanZipBrowser == 0 (No): skip to the next file - if ( scanZipSetting == 0 ) + // if scanZipBrowser == no: skip to the next file + if ( scanZipSetting == "no" ) { return 0; } - // if scanZipBrowser == 1 (Passthru): do not scan zip and allow to open directly with /vsizip/ - else if ( scanZipSetting == 1 ) - { - vsizipPath = "/vsizip/" + path; - zipItem = 0; - } + // if scanZipBrowser == passthru: do not scan zip and allow to open directly with /vsizip/ + // else if ( scanZipSetting == 1 ) + // { + // vsizipPath = "/vsizip/" + path; + // zipItem = 0; + // } else { zipItem = new QgsZipItem( parent, name, path ); @@ -1041,8 +1041,8 @@ QgsDataItem* QgsZipItem::itemFromPath( QgsDataItem* parent, QString path, QStrin // try first with normal path (Passthru) // this is to simplify .qml handling, and without this some tests will fail // (e.g. testZipItemVectorTransparency(), second test) - if (( scanZipSetting == 1 ) || - ( mProviderNames[i] == "ogr" ) || + // if (( scanZipSetting == 1 ) || + if (( mProviderNames[i] == "ogr" ) || ( mProviderNames[i] == "gdal" && zipFileCount == 1 ) ) item = dataItem( path, parent ); // try with /vsizip/ diff --git a/src/providers/gdal/qgsgdaldataitems.cpp b/src/providers/gdal/qgsgdaldataitems.cpp index 2d827931ddc5..eb57aa74d57f 100644 --- a/src/providers/gdal/qgsgdaldataitems.cpp +++ b/src/providers/gdal/qgsgdaldataitems.cpp @@ -398,8 +398,7 @@ QGISEXTERN QgsDataItem * dataItem( QString thePath, QgsDataItem* parentItem ) // zip settings + info QSettings settings; - int scanItemsSetting = settings.value( "/qgis/scanItemsInBrowser", 0 ).toInt(); - int scanZipSetting = settings.value( "/qgis/scanZipInBrowser", 2 ).toInt(); + QString scanZipSetting = settings.value( "/qgis/scanZipInBrowser", "basic" ).toString(); bool is_vsizip = ( thePath.startsWith( "/vsizip/" ) || thePath.endsWith( ".zip", Qt::CaseInsensitive ) ); bool is_vsigzip = ( thePath.startsWith( "/vsigzip/" ) || @@ -415,7 +414,7 @@ QGISEXTERN QgsDataItem * dataItem( QString thePath, QgsDataItem* parentItem ) info.setFile( thePath ); QString name = info.fileName(); - QgsDebugMsg( "thePath= " + thePath + " tmpPath= " + tmpPath ); + QgsDebugMsg( "thePath= " + thePath + " tmpPath= " + tmpPath + " name= " + name + " suffix= " + suffix ); // allow only normal files or VSIFILE items to continue if ( !info.isFile() && !is_vsizip && !is_vsigzip ) @@ -477,8 +476,9 @@ QGISEXTERN QgsDataItem * dataItem( QString thePath, QgsDataItem* parentItem ) // return a /vsizip/ item without testing if: // zipfile and scan zip == "Basic scan" // not zipfile and scan items == "Check extension" - if (( is_vsizip && scanZipSetting == 2 ) || - ( !is_vsizip && scanItemsSetting == 1 ) ) + if (( is_vsizip && scanZipSetting == "basic" ) || + ( !is_vsizip && ( settings.value( "/qgis/scanItemsInBrowser", + "extension" ).toString() == "extension" ) ) ) { // if this is a VRT file make sure it is raster VRT to avoid duplicates if ( suffix == "vrt" ) diff --git a/src/providers/gdal/qgsgdalprovider.cpp b/src/providers/gdal/qgsgdalprovider.cpp index dc4b28a709f0..0ea91bf17cf9 100644 --- a/src/providers/gdal/qgsgdalprovider.cpp +++ b/src/providers/gdal/qgsgdalprovider.cpp @@ -1916,7 +1916,7 @@ void buildSupportedRasterFileFilterAndExtensions( QString & theFileFiltersString // VSIFileHandler (see qgsogrprovider.cpp) #if defined(GDAL_VERSION_NUM) && GDAL_VERSION_NUM >= 1600 QSettings settings; - if ( settings.value( "/qgis/scanZipInBrowser", 2 ).toInt() != 0 ) + if ( settings.value( "/qgis/scanZipInBrowser", "basic" ).toString() != "no" ) { QString glob = "*.zip"; glob += " *.gz"; diff --git a/src/providers/ogr/qgsogrdataitems.cpp b/src/providers/ogr/qgsogrdataitems.cpp index 679b73e6ddc3..9f29b99f778f 100644 --- a/src/providers/ogr/qgsogrdataitems.cpp +++ b/src/providers/ogr/qgsogrdataitems.cpp @@ -239,8 +239,7 @@ QGISEXTERN QgsDataItem * dataItem( QString thePath, QgsDataItem* parentItem ) // zip settings + info QSettings settings; - int scanItemsSetting = settings.value( "/qgis/scanItemsInBrowser", 0 ).toInt(); - int scanZipSetting = settings.value( "/qgis/scanZipInBrowser", 2 ).toInt(); + QString scanZipSetting = settings.value( "/qgis/scanZipInBrowser", "basic" ).toString(); bool is_vsizip = ( thePath.startsWith( "/vsizip/" ) || thePath.endsWith( ".zip", Qt::CaseInsensitive ) ); bool is_vsigzip = ( thePath.startsWith( "/vsigzip/" ) || @@ -256,6 +255,8 @@ QGISEXTERN QgsDataItem * dataItem( QString thePath, QgsDataItem* parentItem ) info.setFile( thePath ); QString name = info.fileName(); + QgsDebugMsg( "thePath= " + thePath + " tmpPath= " + tmpPath + " name= " + name + " suffix= " + suffix ); + // allow only normal files or VSIFILE items to continue if ( !info.isFile() && !is_vsizip && !is_vsigzip ) return 0; @@ -322,8 +323,9 @@ QGISEXTERN QgsDataItem * dataItem( QString thePath, QgsDataItem* parentItem ) // return a /vsizip/ item without testing if: // zipfile and scan zip == "Basic scan" // not zipfile and scan items == "Check extension" - if (( is_vsizip && scanZipSetting == 2 ) || - ( !is_vsizip && scanItemsSetting == 1 ) ) + if (( is_vsizip && scanZipSetting == "basic" ) || + ( !is_vsizip && ( settings.value( "/qgis/scanItemsInBrowser", + "extension" ).toString() == "extension" ) ) ) { // if this is a VRT file make sure it is vector VRT to avoid duplicates if ( suffix == "vrt" ) diff --git a/src/providers/ogr/qgsogrprovider.cpp b/src/providers/ogr/qgsogrprovider.cpp index 26484e5e51a2..b4049e57a164 100644 --- a/src/providers/ogr/qgsogrprovider.cpp +++ b/src/providers/ogr/qgsogrprovider.cpp @@ -1798,7 +1798,7 @@ QString createFilters( QString type ) // Ideally we should also add support for /vsitar/ (requires cpl_vsil_tar.cpp). #if defined(GDAL_VERSION_NUM) && GDAL_VERSION_NUM >= 1600 QSettings settings; - if ( settings.value( "/qgis/scanZipInBrowser", 2 ).toInt() != 0 ) + if ( settings.value( "/qgis/scanZipInBrowser", "basic" ).toString() != "no" ) { myFileFilters += createFileFilter_( QObject::tr( "GDAL/OGR VSIFileHandler" ), "*.zip *.gz" ); myExtensions << "zip" << "gz"; diff --git a/tests/src/core/testziplayer.cpp b/tests/src/core/testziplayer.cpp index 5d0479b9a955..b4efc9c1f22a 100644 --- a/tests/src/core/testziplayer.cpp +++ b/tests/src/core/testziplayer.cpp @@ -41,8 +41,8 @@ class TestZipLayer: public QObject private: QString mDataDir; - int mMaxScanZipSetting; - int mScanZipSetting; + QString mScanZipSetting; + QStringList mScanZipSettings; // get map layer using Passthru QgsMapLayer * getLayer( QString myPath, QString myName, QString myProviderKey ); @@ -52,7 +52,7 @@ class TestZipLayer: public QObject // test item(s) in zip item (supply name or test all) bool testZipItem( QString myFileName, QString myChildName = "", QString myDriverName = "" ); // get layer transparency to test for .qml loading - int getLayerTransparency( QString myFileName, QString myProviderKey, int myScanZipSetting = 1 ); + int getLayerTransparency( QString myFileName, QString myProviderKey, QString myScanZipSetting = "basic" ); private slots: @@ -203,16 +203,16 @@ bool TestZipLayer::testZipItem( QString myFileName, QString myChildName, QString return ok; } -int TestZipLayer::getLayerTransparency( QString myFileName, QString myProviderKey, int myScanZipSetting ) +int TestZipLayer::getLayerTransparency( QString myFileName, QString myProviderKey, QString myScanZipSetting ) { int myTransparency = -1; QSettings settings; settings.setValue( "/qgis/scanZipInBrowser", myScanZipSetting ); - if ( myScanZipSetting != settings.value( "/qgis/scanZipInBrowser" ).toInt() ) + if ( myScanZipSetting != settings.value( "/qgis/scanZipInBrowser" ).toString() ) return myTransparency; QgsMapLayer * myLayer = NULL; - if ( myScanZipSetting == 1 ) + if ( myFileName.endsWith( ".gz", Qt::CaseInsensitive ) ) myLayer = getLayer( myFileName, "", myProviderKey ); else myLayer = getZipLayer( myFileName, "" ); @@ -246,12 +246,8 @@ void TestZipLayer::initTestCase() // save current zipSetting value QSettings settings; - mScanZipSetting = settings.value( "/qgis/scanZipInBrowser", 1 ).toInt(); - - // max zipSetting value depends on zlib presence - mMaxScanZipSetting = 1; - mMaxScanZipSetting = 3; - + mScanZipSetting = settings.value( "/qgis/scanZipInBrowser", "basic" ).toString(); + mScanZipSettings << "basic" << "full"; } void TestZipLayer::cleanupTestCase() @@ -271,10 +267,10 @@ void TestZipLayer::testPassthruVectorZip() myFileName = "/vsizip/" + myFileName + "/points.shp"; #endif QgsDebugMsg( "FILE: " + QString( myFileName ) ); - for ( int i = 1 ; i <= mMaxScanZipSetting ; i++ ) + foreach( QString s, mScanZipSettings ) { - settings.setValue( "/qgis/scanZipInBrowser", i ); - QVERIFY( i == settings.value( "/qgis/scanZipInBrowser" ).toInt() ); + settings.setValue( "/qgis/scanZipInBrowser", s ); + QVERIFY( s == settings.value( "/qgis/scanZipInBrowser" ).toString() ); QVERIFY( testZipItemPassthru( myFileName, "ogr" ) ); } } @@ -285,10 +281,10 @@ void TestZipLayer::testPassthruVectorGzip() #if GDAL_VERSION_NUM < 1700 QSKIP( "This test requires GDAL >= 1.7", SkipSingle ); #endif - for ( int i = 1 ; i <= mMaxScanZipSetting ; i++ ) + foreach( QString s, mScanZipSettings ) { - settings.setValue( "/qgis/scanZipInBrowser", i ); - QVERIFY( i == settings.value( "/qgis/scanZipInBrowser" ).toInt() ); + settings.setValue( "/qgis/scanZipInBrowser", s ); + QVERIFY( s == settings.value( "/qgis/scanZipInBrowser" ).toString() ); QVERIFY( testZipItemPassthru( mDataDir + "points3.geojson.gz", "ogr" ) ); } } @@ -296,10 +292,10 @@ void TestZipLayer::testPassthruVectorGzip() void TestZipLayer::testPassthruRasterZip() { QSettings settings; - for ( int i = 1 ; i <= mMaxScanZipSetting ; i++ ) + foreach( QString s, mScanZipSettings ) { - settings.setValue( "/qgis/scanZipInBrowser", i ); - QVERIFY( i == settings.value( "/qgis/scanZipInBrowser" ).toInt() ); + settings.setValue( "/qgis/scanZipInBrowser", s ); + QVERIFY( s == settings.value( "/qgis/scanZipInBrowser" ).toString() ); QVERIFY( testZipItemPassthru( mDataDir + "landsat_b1.zip", "gdal" ) ); } } @@ -307,10 +303,10 @@ void TestZipLayer::testPassthruRasterZip() void TestZipLayer::testPassthruRasterGzip() { QSettings settings; - for ( int i = 1 ; i <= mMaxScanZipSetting ; i++ ) + foreach( QString s, mScanZipSettings ) { - settings.setValue( "/qgis/scanZipInBrowser", i ); - QVERIFY( i == settings.value( "/qgis/scanZipInBrowser" ).toInt() ); + settings.setValue( "/qgis/scanZipInBrowser", s ); + QVERIFY( s == settings.value( "/qgis/scanZipInBrowser" ).toString() ); QVERIFY( testZipItemPassthru( mDataDir + "landsat_b1.tif.gz", "gdal" ) ); } } @@ -318,10 +314,10 @@ void TestZipLayer::testPassthruRasterGzip() void TestZipLayer::testZipItemRaster() { QSettings settings; - for ( int i = 2 ; i <= mMaxScanZipSetting ; i++ ) + foreach( QString s, mScanZipSettings ) { - settings.setValue( "/qgis/scanZipInBrowser", i ); - QVERIFY( i == settings.value( "/qgis/scanZipInBrowser" ).toInt() ); + settings.setValue( "/qgis/scanZipInBrowser", s ); + QVERIFY( s == settings.value( "/qgis/scanZipInBrowser" ).toString() ); QVERIFY( testZipItem( mDataDir + "testzip.zip", "landsat_b1.tif" ) ); } } @@ -329,10 +325,10 @@ void TestZipLayer::testZipItemRaster() void TestZipLayer::testZipItemVector() { QSettings settings; - for ( int i = 2 ; i <= mMaxScanZipSetting ; i++ ) + foreach( QString s, mScanZipSettings ) { - settings.setValue( "/qgis/scanZipInBrowser", i ); - QVERIFY( i == settings.value( "/qgis/scanZipInBrowser" ).toInt() ); + settings.setValue( "/qgis/scanZipInBrowser", s ); + QVERIFY( s == settings.value( "/qgis/scanZipInBrowser" ).toString() ); QVERIFY( testZipItem( mDataDir + "testzip.zip", "points.shp" ) ); } } @@ -344,8 +340,8 @@ void TestZipLayer::testZipItemAll() // using zipSetting 2 (Basic Scan) would raise errors, because QgsZipItem would not test for valid items // and return child names of the invalid items QSettings settings; - settings.setValue( "/qgis/scanZipInBrowser", 3 ); - QVERIFY( 3 == settings.value( "/qgis/scanZipInBrowser" ).toInt() ); + settings.setValue( "/qgis/scanZipInBrowser", "full" ); + QVERIFY( "full" == settings.value( "/qgis/scanZipInBrowser" ).toString() ); QVERIFY( testZipItem( mDataDir + "testzip.zip", "" ) ); } @@ -356,10 +352,12 @@ void TestZipLayer::testZipItemVectorTransparency() QSKIP( "This test requires GDAL >= 1.8", SkipSingle ); #endif int myTarget = 250; - int myTransparency = getLayerTransparency( mDataDir + "points2.zip", "ogr", 1 ); - QVERIFY2(( myTransparency == myTarget ), QString( "Transparency is %1, should be %2" ).arg( myTransparency ).arg( myTarget ).toLocal8Bit().data() ); - myTransparency = getLayerTransparency( mDataDir + "points2.zip", "ogr", 2 ); - QVERIFY2(( myTransparency == myTarget ), QString( "Transparency is %1, should be %2" ).arg( myTransparency ).arg( myTarget ).toLocal8Bit().data() ); + int myTransparency; + foreach( QString s, mScanZipSettings ) + { + myTransparency = getLayerTransparency( mDataDir + "points2.zip", "ogr", "basic" ); + QVERIFY2(( myTransparency == myTarget ), QString( "Transparency is %1, should be %2" ).arg( myTransparency ).arg( myTarget ).toLocal8Bit().data() ); + } } void TestZipLayer::testGZipItemVectorTransparency() @@ -368,37 +366,43 @@ void TestZipLayer::testGZipItemVectorTransparency() QSKIP( "This test requires GDAL >= 1.7", SkipSingle ); #endif int myTarget = 250; - int myTransparency = getLayerTransparency( mDataDir + "points3.geojson.gz", "ogr", 1 ); - QVERIFY2(( myTransparency == myTarget ), QString( "Transparency is %1, should be %2" ).arg( myTransparency ).arg( myTarget ).toLocal8Bit().data() ); - myTransparency = getLayerTransparency( mDataDir + "points3.geojson.gz", "ogr", 2 ); - QVERIFY2(( myTransparency == myTarget ), QString( "Transparency is %1, should be %2" ).arg( myTransparency ).arg( myTarget ).toLocal8Bit().data() ); + int myTransparency; + foreach( QString s, mScanZipSettings ) + { + myTransparency = getLayerTransparency( mDataDir + "points3.geojson.gz", "ogr", s ); + QVERIFY2(( myTransparency == myTarget ), QString( "Transparency is %1, should be %2" ).arg( myTransparency ).arg( myTarget ).toLocal8Bit().data() ); + } } void TestZipLayer::testZipItemRasterTransparency() { int myTarget = 250; - int myTransparency = getLayerTransparency( mDataDir + "landsat_b1.zip", "gdal", 1 ); - QVERIFY2(( myTransparency == myTarget ), QString( "Transparency is %1, should be %2" ).arg( myTransparency ).arg( myTarget ).toLocal8Bit().data() ); - myTransparency = getLayerTransparency( mDataDir + "landsat_b1.zip", "gdal", 2 ); - QVERIFY2(( myTransparency == myTarget ), QString( "Transparency is %1, should be %2" ).arg( myTransparency ).arg( myTarget ).toLocal8Bit().data() ); + int myTransparency; + foreach( QString s, mScanZipSettings ) + { + myTransparency = getLayerTransparency( mDataDir + "landsat_b1.zip", "gdal", s ); + QVERIFY2(( myTransparency == myTarget ), QString( "Transparency is %1, should be %2" ).arg( myTransparency ).arg( myTarget ).toLocal8Bit().data() ); + } } void TestZipLayer::testGZipItemRasterTransparency() { int myTarget = 250; - int myTransparency = getLayerTransparency( mDataDir + "landsat_b1.tif.gz", "gdal", 1 ); - QVERIFY2(( myTransparency == myTarget ), QString( "Transparency is %1, should be %2" ).arg( myTransparency ).arg( myTarget ).toLocal8Bit().data() ); - myTransparency = getLayerTransparency( mDataDir + "landsat_b1.tif.gz", "gdal", 2 ); - QVERIFY2(( myTransparency == myTarget ), QString( "Transparency is %1, should be %2" ).arg( myTransparency ).arg( myTarget ).toLocal8Bit().data() ); + int myTransparency; + foreach( QString s, mScanZipSettings ) + { + myTransparency = getLayerTransparency( mDataDir + "landsat_b1.tif.gz", "gdal", s ); + QVERIFY2(( myTransparency == myTarget ), QString( "Transparency is %1, should be %2" ).arg( myTransparency ).arg( myTarget ).toLocal8Bit().data() ); + } } void TestZipLayer::testZipItemSubfolder() { QSettings settings; - for ( int i = 2 ; i <= mMaxScanZipSetting ; i++ ) + foreach( QString s, mScanZipSettings ) { - settings.setValue( "/qgis/scanZipInBrowser", i ); - QVERIFY( i == settings.value( "/qgis/scanZipInBrowser" ).toInt() ); + settings.setValue( "/qgis/scanZipInBrowser", s ); + QVERIFY( s == settings.value( "/qgis/scanZipInBrowser" ).toString() ); QVERIFY( testZipItem( mDataDir + "testzip.zip", "folder/folder2/landsat_b2.tif" ) ); } } @@ -410,10 +414,10 @@ void TestZipLayer::testZipItemVRT() QSKIP( "This test requires GDAL >= 1.7", SkipSingle ); #endif QSettings settings; - for ( int i = 2 ; i <= mMaxScanZipSetting ; i++ ) + foreach( QString s, mScanZipSettings ) { - settings.setValue( "/qgis/scanZipInBrowser", i ); - QVERIFY( i == settings.value( "/qgis/scanZipInBrowser" ).toInt() ); + settings.setValue( "/qgis/scanZipInBrowser", s ); + QVERIFY( s == settings.value( "/qgis/scanZipInBrowser" ).toString() ); QVERIFY( testZipItem( mDataDir + "testzip.zip", "landsat.vrt", "gdal" ) ); QVERIFY( testZipItem( mDataDir + "testzip.zip", "points.vrt", "ogr" ) ); }