@@ -45,6 +45,7 @@ def __init__(self, iface):
45
45
QObject .connect (self .toolOut , SIGNAL ("clicked()" ), self .outFile )
46
46
QObject .connect (self .inShape , SIGNAL ("currentIndexChanged(QString)" ), self .update )
47
47
self .setWindowTitle (self .tr ("Split vector layer" ))
48
+ self .buttonOk = self .buttonBox_2 .button ( QDialogButtonBox .Ok )
48
49
# populate layer list
49
50
self .progressBar .setValue (0 )
50
51
mapCanvas = self .iface .mapCanvas ()
@@ -59,6 +60,7 @@ def update(self, inputLayer):
59
60
self .inField .addItem (unicode (changedField [i ].name ()))
60
61
61
62
def accept (self ):
63
+ self .buttonOk .setEnabled ( False )
62
64
if self .inShape .currentText () == "" :
63
65
QMessageBox .information (self , self .tr ("Vector Split" ), self .tr ("No input shapefile specified" ))
64
66
elif self .outShape .text () == "" :
@@ -77,78 +79,23 @@ def accept(self):
77
79
self .progressBar .setValue (100 )
78
80
self .outShape .clear ()
79
81
QMessageBox .information (self , self .tr ("Vector Split" ), self .tr ("Created output shapefiles in folder:\n %1" ).arg ( outPath ))
80
- self .progressBar .setValue (0 )
82
+ self .progressBar .setValue (0 )
83
+ self .buttonOk .setEnabled ( True )
81
84
82
85
def outFile (self ):
83
- fileDialog = QFileDialog ()
84
- settings = QSettings ()
85
- dirName = settings .value ("/UI/lastShapefileDir" ).toString ()
86
- fileDialog .setDirectory (dirName )
87
- encodingBox = QComboBox ()
88
- l = QLabel ("Encoding:" ,fileDialog )
89
- fileDialog .layout ().addWidget (l )
90
- fileDialog .layout ().addWidget (encodingBox )
91
- encodingBox .addItem ("BIG5" )
92
- encodingBox .addItem ("BIG5-HKSCS" )
93
- encodingBox .addItem ("EUCJP" )
94
- encodingBox .addItem ("EUCKR" )
95
- encodingBox .addItem ("GB2312" )
96
- encodingBox .addItem ("GBK" )
97
- encodingBox .addItem ("GB18030" )
98
- encodingBox .addItem ("JIS7" )
99
- encodingBox .addItem ("SHIFT-JIS" )
100
- encodingBox .addItem ("TSCII" )
101
- encodingBox .addItem ("UTF-8" )
102
- encodingBox .addItem ("UTF-16" )
103
- encodingBox .addItem ("KOI8-R" )
104
- encodingBox .addItem ("KOI8-U" )
105
- encodingBox .addItem ("ISO8859-1" )
106
- encodingBox .addItem ("ISO8859-2" )
107
- encodingBox .addItem ("ISO8859-3" )
108
- encodingBox .addItem ("ISO8859-4" )
109
- encodingBox .addItem ("ISO8859-5" )
110
- encodingBox .addItem ("ISO8859-6" )
111
- encodingBox .addItem ("ISO8859-7" )
112
- encodingBox .addItem ("ISO8859-8" )
113
- encodingBox .addItem ("ISO8859-8-I" )
114
- encodingBox .addItem ("ISO8859-9" )
115
- encodingBox .addItem ("ISO8859-10" )
116
- encodingBox .addItem ("ISO8859-13" )
117
- encodingBox .addItem ("ISO8859-14" )
118
- encodingBox .addItem ("ISO8859-15" )
119
- encodingBox .addItem ("IBM 850" )
120
- encodingBox .addItem ("IBM 866" )
121
- encodingBox .addItem ("CP874" )
122
- encodingBox .addItem ("CP1250" )
123
- encodingBox .addItem ("CP1251" )
124
- encodingBox .addItem ("CP1252" )
125
- encodingBox .addItem ("CP1253" )
126
- encodingBox .addItem ("CP1254" )
127
- encodingBox .addItem ("CP1255" )
128
- encodingBox .addItem ("CP1256" )
129
- encodingBox .addItem ("CP1257" )
130
- encodingBox .addItem ("CP1258" )
131
- encodingBox .addItem ("Apple Roman" )
132
- encodingBox .addItem ("TIS-620" )
133
- encodingBox .setItemText (encodingBox .currentIndex (), QString (QTextCodec .codecForLocale ().name ()))
134
- fileDialog .setAcceptMode (QFileDialog .AcceptSave )
135
- fileDialog .setFileMode (QFileDialog .DirectoryOnly )
136
- fileDialog .setConfirmOverwrite (False )
137
- if not fileDialog .exec_ () == 1 :
138
- return
139
- folders = fileDialog .selectedFiles ()
140
- self .folderName = unicode (folders .first ())
141
- self .encoding = unicode (encodingBox .currentText ())
142
86
self .outShape .clear ()
143
- self .outShape .insert (self .folderName )
87
+ ( self .shapefileName , self .encoding ) = ftools_utils .saveDialog ( self )
88
+ if self .shapefileName is None or self .encoding is None :
89
+ return
90
+ self .outShape .setText ( QString ( self .shapefileName ) )
144
91
145
92
def split (self , vlayer , outPath , inField , progressBar ):
146
93
provider = vlayer .dataProvider ()
147
94
#unique = []
148
95
index = provider .fieldNameIndex (inField )
149
96
#provider.uniqueValues(index, unique)
150
97
unique = ftools_utils .getUniqueValues (vlayer .dataProvider (), int (index ))
151
- baseName = outPath + vlayer .name () + "_" + inField + "_"
98
+ baseName = unicode ( outPath + vlayer .name () + "_" + inField + "_" )
152
99
allAttrs = provider .attributeIndexes ()
153
100
provider .select (allAttrs )
154
101
fieldList = ftools_utils .getFieldList (vlayer )
0 commit comments