[QGIS Commit] r14616 - trunk/qgis/python/plugins/fTools/tools
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Sat Nov 13 13:31:14 EST 2010
Author: alexbruy
Date: 2010-11-13 10:31:14 -0800 (Sat, 13 Nov 2010)
New Revision: 14616
Modified:
trunk/qgis/python/plugins/fTools/tools/doMergeShapes.py
trunk/qgis/python/plugins/fTools/tools/frmMergeShapes.ui
Log:
option to select separate shapefiles for merging with fTools
Modified: trunk/qgis/python/plugins/fTools/tools/doMergeShapes.py
===================================================================
--- trunk/qgis/python/plugins/fTools/tools/doMergeShapes.py 2010-11-13 18:29:21 UTC (rev 14615)
+++ trunk/qgis/python/plugins/fTools/tools/doMergeShapes.py 2010-11-13 18:31:14 UTC (rev 14616)
@@ -24,6 +24,7 @@
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 @@
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 @@
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 @@
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 @@
def setProgressRange( self, max ):
self.progressFeatures.setRange( 0, max )
+ self.progressFeatures.setValue( 0 )
def featureProcessed( self ):
self.progressFeatures.setValue( self.progressFeatures.value() + 1 )
Modified: trunk/qgis/python/plugins/fTools/tools/frmMergeShapes.ui
===================================================================
--- trunk/qgis/python/plugins/fTools/tools/frmMergeShapes.ui 2010-11-13 18:29:21 UTC (rev 14615)
+++ trunk/qgis/python/plugins/fTools/tools/frmMergeShapes.ui 2010-11-13 18:31:14 UTC (rev 14616)
@@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>377</width>
- <height>246</height>
+ <height>273</height>
</rect>
</property>
<property name="windowTitle">
@@ -15,6 +15,13 @@
</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">
<string>Input directory</string>
More information about the QGIS-commit
mailing list