Skip to content

Commit 54b2efd

Browse files
committed
fix buildVRT dialog
1 parent 097536c commit 54b2efd

File tree

4 files changed

+37
-41
lines changed

4 files changed

+37
-41
lines changed

python/plugins/GdalTools/tools/GdalTools_utils.py

+13-20
Original file line numberDiff line numberDiff line change
@@ -116,16 +116,16 @@ def getRasterExtensions():
116116
formats = FileFilter.allRastersFilter().split( ";;" )
117117
extensions = []
118118
for f in formats:
119-
if f.contains( "*.bt" ) or f.contains( "*.mpr" ): # Binary Terrain or ILWIS
119+
if string.find(f, "*.bt" ) is not -1 or string.find(f, "*.mpr" ) is not -1: # Binary Terrain or ILWIS
120120
continue
121-
extensions << FileFilter.getFilterExtensions( f )
121+
extensions.extend( FileFilter.getFilterExtensions( f ) )
122122
return extensions
123123

124124
def getVectorExtensions():
125125
formats = FileFilter.allVectorsFilter().split( ";;" )
126126
extensions = []
127127
for f in formats:
128-
extensions.append(FileFilter.getFilterExtensions( f ))
128+
extensions.extend( FileFilter.getFilterExtensions( f ) )
129129
return extensions
130130

131131
class LayerRegistry(QObject):
@@ -201,23 +201,24 @@ def getRasterFiles(path, recursive=False):
201201
if not QFileInfo(path).exists():
202202
return rasters
203203

204-
filter = getRasterExtensions()
204+
# TODO remove *.aux.xml
205+
_filter = getRasterExtensions()
205206
workDir = QDir( path )
206207
workDir.setFilter( QDir.Files | QDir.NoSymLinks | QDir.NoDotAndDotDot )
207-
workDir.setNameFilters( filter )
208+
workDir.setNameFilters( _filter )
208209
files = workDir.entryList()
209210
for f in files:
210-
rasters << path + "/" + f
211+
rasters.append( path + "/" + f )
211212

212213
if recursive:
213214
for myRoot, myDirs, myFiles in os.walk( unicode(path) ):
214215
for dir in myDirs:
215216
workDir = QDir( myRoot + "/" + dir )
216217
workDir.setFilter( QDir.Files | QDir.NoSymLinks | QDir.NoDotAndDotDot )
217-
workDir.setNameFilters( filter )
218+
workDir.setNameFilters( _filter )
218219
workFiles = workDir.entryList()
219220
for f in workFiles:
220-
rasters << myRoot + "/" + dir + "/" + f
221+
rasters.append( myRoot + "/" + dir + "/" + f )
221222

222223
return rasters
223224

@@ -382,8 +383,8 @@ def getDialog(self, parent = None, caption = '', acceptMode = QFileDialog.Accept
382383
firstExt = ext
383384

384385
if firstExt != None:
385-
if firstExt.startsWith('*'):
386-
files.append( firstExt[1:] )
386+
if firstExt.startswith('*'):
387+
files += firstExt[1:]
387388

388389
if useEncoding:
389390
encoding = dialog.encoding()
@@ -403,8 +404,6 @@ def getOpenFileName(self, parent = None, caption = '', filter = '', selectedFilt
403404

404405
@classmethod
405406
def getSaveFileName(self, parent = None, caption = '', filter = '', selectedFilter = None, useEncoding = False):
406-
print("filter:")
407-
print(str(filter))
408407
return self.getDialog(parent, caption, QFileDialog.AcceptSave, QFileDialog.AnyFile, filter, selectedFilter, useEncoding)
409408

410409
@classmethod
@@ -473,7 +472,7 @@ def getFilterExtensions(self, aFilter):
473472
# if there is no extensions or the filter matches all, then return an empty list
474473
# otherwise return the list of estensions
475474
if exts != '' and exts != "*" and exts != "*.*":
476-
extList.append(exts.split(" "))
475+
extList.extend(exts.split(" "))
477476
return extList
478477

479478
@classmethod
@@ -482,13 +481,7 @@ def getFilterName(self, aFilter):
482481

483482
@classmethod
484483
def filenameMatchesFilterExt(self, fileName, ext):
485-
regex = QRegExp(ext)
486-
# use the wildcard matching
487-
regex.setPatternSyntax(QRegExp.Wildcard)
488-
489-
if regex.exactMatch(fileName):
490-
return True
491-
return False
484+
return re.match( '.'+str(ext), fileName ) is not None
492485

493486
# Retrieves gdal information
494487
class GdalConfig:

python/plugins/GdalTools/tools/dialogBase.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ def __init__(self, parent, iface, pluginBase, pluginName, pluginCommand):
6666
self.buttonBox.button(QDialogButtonBox.Ok).setDefault(True)
6767

6868
self.plugin = pluginBase
69-
self.connect(self.plugin, SIGNAL("valuesChanged(const QStringList &)"), self.refreshArgs)
69+
self.connect(self.plugin, SIGNAL("valuesChanged(PyQt_PyObject)"), self.refreshArgs)
7070

7171
self.pluginLayout.addWidget(self.plugin)
7272
self.plugin.setFocus()

python/plugins/GdalTools/tools/doBuildVRT.py

+18-18
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def __init__(self, iface):
4545
self.inSelector.setType( self.inSelector.FILE )
4646
self.outSelector.setType( self.outSelector.FILE )
4747
self.recurseCheck.hide()
48-
self.visibleRasterLayers = QStringList()
48+
self.visibleRasterLayers = []
4949

5050
self.setParamsStatus(
5151
[
@@ -82,10 +82,10 @@ def onClosing(self):
8282

8383
def onVisibleLayersChanged(self):
8484
# refresh list of visible raster layers
85-
self.visibleRasterLayers = QStringList()
85+
self.visibleRasterLayers = []
8686
for layer in self.iface.mapCanvas().layers():
8787
if Utils.LayerRegistry.isRaster( layer ):
88-
self.visibleRasterLayers << layer.source()
88+
self.visibleRasterLayers.append( layer.source() )
8989

9090
# refresh the text in the command viewer
9191
self.someValueChanged()
@@ -115,42 +115,42 @@ def switchLayerMode(self):
115115
def fillInputFilesEdit(self):
116116
lastUsedFilter = Utils.FileFilter.lastUsedRasterFilter()
117117
files = Utils.FileDialog.getOpenFileNames(self, self.tr( "Select the files for VRT" ), Utils.FileFilter.allRastersFilter(), lastUsedFilter)
118-
if files.isEmpty():
118+
if files == '':
119119
return
120120
Utils.FileFilter.setLastUsedRasterFilter(lastUsedFilter)
121-
self.inSelector.setFilename(files.join(","))
121+
self.inSelector.setFilename(",".join(files))
122122

123123
def fillOutputFileEdit(self):
124124
outputFile = Utils.FileDialog.getSaveFileName(self, self.tr( "Select where to save the VRT" ), self.tr( "VRT (*.vrt)" ))
125-
if outputFile.isEmpty():
125+
if outputFile == '':
126126
return
127127
self.outSelector.setFilename(outputFile)
128128

129129
def fillInputDir( self ):
130130
inputDir = Utils.FileDialog.getExistingDirectory( self, self.tr( "Select the input directory with files for VRT" ))
131-
if inputDir.isEmpty():
131+
if inputDir == '':
132132
return
133133
self.inSelector.setFilename( inputDir )
134134

135135
def getArguments(self):
136-
arguments = QStringList()
136+
arguments = []
137137
if self.resolutionCheck.isChecked() and self.resolutionComboBox.currentIndex() >= 0:
138-
arguments << "-resolution"
139-
arguments << self.resolutions[self.resolutionComboBox.currentIndex()]
138+
arguments.append("-resolution")
139+
arguments.append(self.resolutions[self.resolutionComboBox.currentIndex()])
140140
if self.separateCheck.isChecked():
141-
arguments << "-separate"
141+
arguments.append("-separate")
142142
if self.srcNoDataCheck.isChecked():
143-
arguments << "-srcnodata"
144-
arguments << str(self.srcNoDataSpin.value())
143+
arguments.append("-srcnodata")
144+
arguments.append(str(self.srcNoDataSpin.value()))
145145
if self.allowProjDiffCheck.isChecked():
146-
arguments << "-allow_projection_difference"
147-
arguments << self.getOutputFileName()
146+
arguments.append("-allow_projection_difference")
147+
arguments.append(self.getOutputFileName())
148148
if self.inputSelLayersCheck.isChecked():
149-
arguments << self.visibleRasterLayers
149+
arguments.extend(self.visibleRasterLayers)
150150
elif self.inputDirCheck.isChecked():
151-
arguments << Utils.getRasterFiles( self.getInputFileName(), self.recurseCheck.isChecked() )
151+
arguments.extend(Utils.getRasterFiles( self.getInputFileName(), self.recurseCheck.isChecked() ))
152152
else:
153-
arguments << self.getInputFileName()
153+
arguments.extend(self.getInputFileName())
154154
return arguments
155155

156156
def getOutputFileName(self):

python/plugins/GdalTools/tools/widgetPluginBase.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ def __init__(self, iface, commandName):
4949
self.connect(self.base, SIGNAL("refreshArgs()"), self.someValueChanged)
5050

5151
def someValueChanged(self):
52-
self.emit(SIGNAL("valuesChanged(const QStringList &)"), self.getArguments())
52+
if self.initialized:
53+
self.emit(SIGNAL("valuesChanged(PyQt_PyObject)"), self.getArguments())
5354

5455
def onLayersChanged(self):
5556
pass
@@ -79,6 +80,7 @@ def onRun(self):
7980
def onClosing(self):
8081
self.disconnect(Utils.LayerRegistry.instance(), SIGNAL("layersChanged"), self.onLayersChanged)
8182
self.base.onClosing()
83+
self.initialized = False
8284

8385
def onHelp(self):
8486
self.base.onHelp()
@@ -116,7 +118,8 @@ def finished(self, load):
116118
self.addLayerIntoCanvas(fileInfo)
117119
QMessageBox.information(self, self.tr( "Finished" ), self.tr( "Processing completed." ) )
118120
else:
119-
QMessageBox.warning(self, self.tr( "Warning" ), self.tr( "%1 not created." ).arg( outFn ) )
121+
#QMessageBox.warning(self, self.tr( "Warning" ), self.tr( "%1 not created." ).arg( outFn ) )
122+
QMessageBox.warning(self, self.tr( "Warning" ), self.tr( "%s not created." ) % outFn )
120123

121124
# This method is useful to set up options for the command. It sets for each passed widget:
122125
# 1. its passed signals to connect to the BasePluginWidget.someValueChanged() slot,

0 commit comments

Comments
 (0)