mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-16 00:03:12 -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.btnSelectDir, SIGNAL( "clicked()" ), self.inputDir )
|
||||||
QObject.connect( self.btnSelectFile, SIGNAL( "clicked()" ), self.outFile )
|
QObject.connect( self.btnSelectFile, SIGNAL( "clicked()" ), self.outFile )
|
||||||
|
QObject.connect( self.chkListMode, SIGNAL( "stateChanged( int )" ), self.changeMode )
|
||||||
|
|
||||||
def inputDir( self ):
|
def inputDir( self ):
|
||||||
inDir = QFileDialog.getExistingDirectory( self,
|
inDir = QFileDialog.getExistingDirectory( self,
|
||||||
@ -33,18 +34,18 @@ class Dialog( QDialog, Ui_Dialog ):
|
|||||||
if inDir.isEmpty():
|
if inDir.isEmpty():
|
||||||
return
|
return
|
||||||
|
|
||||||
#workDir = QDir( inDir )
|
workDir = QDir( inDir )
|
||||||
#workDir.setFilter( QDir.Files | QDir.NoSymLinks | QDir.NoDotAndDotDot )
|
workDir.setFilter( QDir.Files | QDir.NoSymLinks | QDir.NoDotAndDotDot )
|
||||||
#nameFilter = QStringList() << "*.shp" << "*.SHP"
|
nameFilter = QStringList() << "*.shp" << "*.SHP"
|
||||||
#workDir.setNameFilters( nameFilter )
|
workDir.setNameFilters( nameFilter )
|
||||||
#self.inputFiles = workDir.entryList()
|
self.inputFiles = workDir.entryList()
|
||||||
#if self.inputFiles.count() == 0:
|
if self.inputFiles.count() == 0:
|
||||||
# QMessageBox.warning( self, self.tr( "No shapefiles found" ),
|
QMessageBox.warning( self, self.tr( "No shapefiles found" ),
|
||||||
# self.tr( "There are no shapefiles in this directory. Please select another one." ) )
|
self.tr( "There are no shapefiles in this directory. Please select another one." ) )
|
||||||
# self.inputFiles = None
|
self.inputFiles = None
|
||||||
# return
|
return
|
||||||
|
|
||||||
#self.progressFiles.setRange( 0, self.inputFiles.count() )
|
self.progressFiles.setRange( 0, self.inputFiles.count() )
|
||||||
self.leInputDir.setText( inDir )
|
self.leInputDir.setText( inDir )
|
||||||
|
|
||||||
def outFile( self ):
|
def outFile( self ):
|
||||||
@ -53,6 +54,30 @@ class Dialog( QDialog, Ui_Dialog ):
|
|||||||
return
|
return
|
||||||
self.leOutShape.setText( self.outFileName )
|
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 ):
|
def reject( self ):
|
||||||
QDialog.reject( self )
|
QDialog.reject( self )
|
||||||
|
|
||||||
@ -77,6 +102,10 @@ class Dialog( QDialog, Ui_Dialog ):
|
|||||||
QMessageBox.warning( self, self.tr( "Delete error" ), self.tr( "Can't delete file %1" ).arg( outFileName ) )
|
QMessageBox.warning( self, self.tr( "Delete error" ), self.tr( "Can't delete file %1" ).arg( outFileName ) )
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if self.chkListMode.isChecked():
|
||||||
|
files = self.leInputDir.text().split( ";" )
|
||||||
|
baseDir = QFileInfo( files[ 0 ] ).absolutePath()
|
||||||
|
else:
|
||||||
baseDir = self.leInputDir.text()
|
baseDir = self.leInputDir.text()
|
||||||
|
|
||||||
QApplication.setOverrideCursor( QCursor( Qt.WaitCursor ) )
|
QApplication.setOverrideCursor( QCursor( Qt.WaitCursor ) )
|
||||||
@ -97,6 +126,7 @@ class Dialog( QDialog, Ui_Dialog ):
|
|||||||
|
|
||||||
def setProgressRange( self, max ):
|
def setProgressRange( self, max ):
|
||||||
self.progressFeatures.setRange( 0, max )
|
self.progressFeatures.setRange( 0, max )
|
||||||
|
self.progressFeatures.setValue( 0 )
|
||||||
|
|
||||||
def featureProcessed( self ):
|
def featureProcessed( self ):
|
||||||
self.progressFeatures.setValue( self.progressFeatures.value() + 1 )
|
self.progressFeatures.setValue( self.progressFeatures.value() + 1 )
|
||||||
|
@ -7,13 +7,20 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>377</width>
|
<width>377</width>
|
||||||
<height>246</height>
|
<height>273</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>Merge shapefiles</string>
|
<string>Merge shapefiles</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
<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>
|
<item>
|
||||||
<widget class="QLabel" name="label">
|
<widget class="QLabel" name="label">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
Loading…
x
Reference in New Issue
Block a user