mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-15 00:04:00 -04:00
now supports fields containing Cyrillics. Fixes #2566. Patch from alexbruy
git-svn-id: http://svn.osgeo.org/qgis/trunk@13477 c8812cc2-4d05-0410-92ff-de0c093fc19c
This commit is contained in:
parent
8a2e6c030f
commit
b168560ba8
@ -45,6 +45,7 @@ class Dialog(QDialog, Ui_Dialog):
|
|||||||
QObject.connect(self.toolOut, SIGNAL("clicked()"), self.outFile)
|
QObject.connect(self.toolOut, SIGNAL("clicked()"), self.outFile)
|
||||||
QObject.connect(self.inShape, SIGNAL("currentIndexChanged(QString)"), self.update)
|
QObject.connect(self.inShape, SIGNAL("currentIndexChanged(QString)"), self.update)
|
||||||
self.setWindowTitle(self.tr("Split vector layer"))
|
self.setWindowTitle(self.tr("Split vector layer"))
|
||||||
|
self.buttonOk = self.buttonBox_2.button( QDialogButtonBox.Ok )
|
||||||
# populate layer list
|
# populate layer list
|
||||||
self.progressBar.setValue(0)
|
self.progressBar.setValue(0)
|
||||||
mapCanvas = self.iface.mapCanvas()
|
mapCanvas = self.iface.mapCanvas()
|
||||||
@ -59,6 +60,7 @@ class Dialog(QDialog, Ui_Dialog):
|
|||||||
self.inField.addItem(unicode(changedField[i].name()))
|
self.inField.addItem(unicode(changedField[i].name()))
|
||||||
|
|
||||||
def accept(self):
|
def accept(self):
|
||||||
|
self.buttonOk.setEnabled( False )
|
||||||
if self.inShape.currentText() == "":
|
if self.inShape.currentText() == "":
|
||||||
QMessageBox.information(self, self.tr("Vector Split"), self.tr("No input shapefile specified"))
|
QMessageBox.information(self, self.tr("Vector Split"), self.tr("No input shapefile specified"))
|
||||||
elif self.outShape.text() == "":
|
elif self.outShape.text() == "":
|
||||||
@ -77,70 +79,15 @@ class Dialog(QDialog, Ui_Dialog):
|
|||||||
self.progressBar.setValue(100)
|
self.progressBar.setValue(100)
|
||||||
self.outShape.clear()
|
self.outShape.clear()
|
||||||
QMessageBox.information(self, self.tr("Vector Split"), self.tr("Created output shapefiles in folder:\n%1").arg( outPath))
|
QMessageBox.information(self, self.tr("Vector Split"), self.tr("Created output shapefiles in folder:\n%1").arg( outPath))
|
||||||
self.progressBar.setValue(0)
|
self.progressBar.setValue(0)
|
||||||
|
self.buttonOk.setEnabled( True )
|
||||||
|
|
||||||
def outFile(self):
|
def outFile(self):
|
||||||
fileDialog = QFileDialog()
|
|
||||||
settings = QSettings()
|
|
||||||
dirName = settings.value("/UI/lastShapefileDir").toString()
|
|
||||||
fileDialog.setDirectory(dirName)
|
|
||||||
encodingBox = QComboBox()
|
|
||||||
l = QLabel("Encoding:",fileDialog)
|
|
||||||
fileDialog.layout().addWidget(l)
|
|
||||||
fileDialog.layout().addWidget(encodingBox)
|
|
||||||
encodingBox.addItem("BIG5")
|
|
||||||
encodingBox.addItem("BIG5-HKSCS")
|
|
||||||
encodingBox.addItem("EUCJP")
|
|
||||||
encodingBox.addItem("EUCKR")
|
|
||||||
encodingBox.addItem("GB2312")
|
|
||||||
encodingBox.addItem("GBK")
|
|
||||||
encodingBox.addItem("GB18030")
|
|
||||||
encodingBox.addItem("JIS7")
|
|
||||||
encodingBox.addItem("SHIFT-JIS")
|
|
||||||
encodingBox.addItem("TSCII")
|
|
||||||
encodingBox.addItem("UTF-8")
|
|
||||||
encodingBox.addItem("UTF-16")
|
|
||||||
encodingBox.addItem("KOI8-R")
|
|
||||||
encodingBox.addItem("KOI8-U")
|
|
||||||
encodingBox.addItem("ISO8859-1")
|
|
||||||
encodingBox.addItem("ISO8859-2")
|
|
||||||
encodingBox.addItem("ISO8859-3")
|
|
||||||
encodingBox.addItem("ISO8859-4")
|
|
||||||
encodingBox.addItem("ISO8859-5")
|
|
||||||
encodingBox.addItem("ISO8859-6")
|
|
||||||
encodingBox.addItem("ISO8859-7")
|
|
||||||
encodingBox.addItem("ISO8859-8")
|
|
||||||
encodingBox.addItem("ISO8859-8-I")
|
|
||||||
encodingBox.addItem("ISO8859-9")
|
|
||||||
encodingBox.addItem("ISO8859-10")
|
|
||||||
encodingBox.addItem("ISO8859-13")
|
|
||||||
encodingBox.addItem("ISO8859-14")
|
|
||||||
encodingBox.addItem("ISO8859-15")
|
|
||||||
encodingBox.addItem("IBM 850")
|
|
||||||
encodingBox.addItem("IBM 866")
|
|
||||||
encodingBox.addItem("CP874")
|
|
||||||
encodingBox.addItem("CP1250")
|
|
||||||
encodingBox.addItem("CP1251")
|
|
||||||
encodingBox.addItem("CP1252")
|
|
||||||
encodingBox.addItem("CP1253")
|
|
||||||
encodingBox.addItem("CP1254")
|
|
||||||
encodingBox.addItem("CP1255")
|
|
||||||
encodingBox.addItem("CP1256")
|
|
||||||
encodingBox.addItem("CP1257")
|
|
||||||
encodingBox.addItem("CP1258")
|
|
||||||
encodingBox.addItem("Apple Roman")
|
|
||||||
encodingBox.addItem("TIS-620")
|
|
||||||
encodingBox.setItemText(encodingBox.currentIndex(), QString(QTextCodec.codecForLocale().name()))
|
|
||||||
fileDialog.setAcceptMode(QFileDialog.AcceptSave)
|
|
||||||
fileDialog.setFileMode(QFileDialog.DirectoryOnly)
|
|
||||||
fileDialog.setConfirmOverwrite(False)
|
|
||||||
if not fileDialog.exec_() == 1:
|
|
||||||
return
|
|
||||||
folders = fileDialog.selectedFiles()
|
|
||||||
self.folderName = unicode(folders.first())
|
|
||||||
self.encoding = unicode(encodingBox.currentText())
|
|
||||||
self.outShape.clear()
|
self.outShape.clear()
|
||||||
self.outShape.insert(self.folderName)
|
( self.shapefileName, self.encoding ) = ftools_utils.saveDialog( self )
|
||||||
|
if self.shapefileName is None or self.encoding is None:
|
||||||
|
return
|
||||||
|
self.outShape.setText( QString( self.shapefileName ) )
|
||||||
|
|
||||||
def split(self, vlayer, outPath, inField, progressBar):
|
def split(self, vlayer, outPath, inField, progressBar):
|
||||||
provider = vlayer.dataProvider()
|
provider = vlayer.dataProvider()
|
||||||
@ -148,7 +95,7 @@ class Dialog(QDialog, Ui_Dialog):
|
|||||||
index = provider.fieldNameIndex(inField)
|
index = provider.fieldNameIndex(inField)
|
||||||
#provider.uniqueValues(index, unique)
|
#provider.uniqueValues(index, unique)
|
||||||
unique = ftools_utils.getUniqueValues(vlayer.dataProvider(), int(index))
|
unique = ftools_utils.getUniqueValues(vlayer.dataProvider(), int(index))
|
||||||
baseName = outPath + vlayer.name() + "_" + inField + "_"
|
baseName = unicode( outPath + vlayer.name() + "_" + inField + "_" )
|
||||||
allAttrs = provider.attributeIndexes()
|
allAttrs = provider.attributeIndexes()
|
||||||
provider.select(allAttrs)
|
provider.select(allAttrs)
|
||||||
fieldList = ftools_utils.getFieldList(vlayer)
|
fieldList = ftools_utils.getFieldList(vlayer)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user