mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-13 00:03:09 -04:00
option to select separate shapefiles for merging with fTools
git-svn-id: http://svn.osgeo.org/qgis/trunk@14616 c8812cc2-4d05-0410-92ff-de0c093fc19c
This commit is contained in:
parent
ad55d774a0
commit
1c99de498c
@ -24,6 +24,7 @@ class Dialog( QDialog, Ui_Dialog ):
|
||||
|
||||
QObject.connect( self.btnSelectDir, SIGNAL( "clicked()" ), self.inputDir )
|
||||
QObject.connect( self.btnSelectFile, SIGNAL( "clicked()" ), self.outFile )
|
||||
QObject.connect( self.chkListMode, SIGNAL( "stateChanged( int )" ), self.changeMode )
|
||||
|
||||
def inputDir( self ):
|
||||
inDir = QFileDialog.getExistingDirectory( self,
|
||||
@ -33,18 +34,18 @@ class Dialog( QDialog, Ui_Dialog ):
|
||||
if inDir.isEmpty():
|
||||
return
|
||||
|
||||
#workDir = QDir( inDir )
|
||||
#workDir.setFilter( QDir.Files | QDir.NoSymLinks | QDir.NoDotAndDotDot )
|
||||
#nameFilter = QStringList() << "*.shp" << "*.SHP"
|
||||
#workDir.setNameFilters( nameFilter )
|
||||
#self.inputFiles = workDir.entryList()
|
||||
#if self.inputFiles.count() == 0:
|
||||
# QMessageBox.warning( self, self.tr( "No shapefiles found" ),
|
||||
# self.tr( "There are no shapefiles in this directory. Please select another one." ) )
|
||||
# self.inputFiles = None
|
||||
# return
|
||||
workDir = QDir( inDir )
|
||||
workDir.setFilter( QDir.Files | QDir.NoSymLinks | QDir.NoDotAndDotDot )
|
||||
nameFilter = QStringList() << "*.shp" << "*.SHP"
|
||||
workDir.setNameFilters( nameFilter )
|
||||
self.inputFiles = workDir.entryList()
|
||||
if self.inputFiles.count() == 0:
|
||||
QMessageBox.warning( self, self.tr( "No shapefiles found" ),
|
||||
self.tr( "There are no shapefiles in this directory. Please select another one." ) )
|
||||
self.inputFiles = None
|
||||
return
|
||||
|
||||
#self.progressFiles.setRange( 0, self.inputFiles.count() )
|
||||
self.progressFiles.setRange( 0, self.inputFiles.count() )
|
||||
self.leInputDir.setText( inDir )
|
||||
|
||||
def outFile( self ):
|
||||
@ -53,6 +54,30 @@ class Dialog( QDialog, Ui_Dialog ):
|
||||
return
|
||||
self.leOutShape.setText( self.outFileName )
|
||||
|
||||
def inputFile( self ):
|
||||
files = QFileDialog.getOpenFileNames( self, self.tr( "Select files to merge" ), ".", "Shapefiles(*.shp *.SHP)" )
|
||||
if files.isEmpty():
|
||||
self.inputFiles = None
|
||||
return
|
||||
|
||||
self.inputFiles = QStringList()
|
||||
for f in files:
|
||||
fileName = QFileInfo( f ).fileName()
|
||||
self.inputFiles.append( fileName )
|
||||
|
||||
self.progressFiles.setRange( 0, self.inputFiles.count() )
|
||||
self.leInputDir.setText( files.join( ";" ) )
|
||||
|
||||
def changeMode( self ):
|
||||
if self.chkListMode.isChecked():
|
||||
self.label.setText( self.tr( "Input files" ) )
|
||||
QObject.disconnect( self.btnSelectDir, SIGNAL( "clicked()" ), self.inputDir )
|
||||
QObject.connect( self.btnSelectDir, SIGNAL( "clicked()" ), self.inputFile )
|
||||
else:
|
||||
self.label.setText( self.tr( "Input directory" ) )
|
||||
QObject.disconnect( self.btnSelectDir, SIGNAL( "clicked()" ), self.inputFile )
|
||||
QObject.connect( self.btnSelectDir, SIGNAL( "clicked()" ), self.inputDir )
|
||||
|
||||
def reject( self ):
|
||||
QDialog.reject( self )
|
||||
|
||||
@ -77,7 +102,11 @@ class Dialog( QDialog, Ui_Dialog ):
|
||||
QMessageBox.warning( self, self.tr( "Delete error" ), self.tr( "Can't delete file %1" ).arg( outFileName ) )
|
||||
return
|
||||
|
||||
baseDir = self.leInputDir.text()
|
||||
if self.chkListMode.isChecked():
|
||||
files = self.leInputDir.text().split( ";" )
|
||||
baseDir = QFileInfo( files[ 0 ] ).absolutePath()
|
||||
else:
|
||||
baseDir = self.leInputDir.text()
|
||||
|
||||
QApplication.setOverrideCursor( QCursor( Qt.WaitCursor ) )
|
||||
self.btnOk.setEnabled( False )
|
||||
@ -97,6 +126,7 @@ class Dialog( QDialog, Ui_Dialog ):
|
||||
|
||||
def setProgressRange( self, max ):
|
||||
self.progressFeatures.setRange( 0, max )
|
||||
self.progressFeatures.setValue( 0 )
|
||||
|
||||
def featureProcessed( self ):
|
||||
self.progressFeatures.setValue( self.progressFeatures.value() + 1 )
|
||||
|
@ -7,13 +7,20 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>377</width>
|
||||
<height>246</height>
|
||||
<height>273</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Merge shapefiles</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="chkListMode">
|
||||
<property name="text">
|
||||
<string>Select by layers in the folder</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
|
Loading…
x
Reference in New Issue
Block a user