Skip to content

Commit d82438b

Browse files
committed
Add function that generates column name
The new function generates the name to be used next as a column given a list of existing column names. It will give a name with consecutive number appended. This closes #22
1 parent 580c255 commit d82438b

1 file changed

Lines changed: 23 additions & 1 deletion

File tree

workers.py

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
# coding=utf-8
2+
# Clusterpy QGIS plugin - (C) 2014, RiSE Group
3+
14
from qgis.core import *
25
from PyQt4 import QtCore, QtGui
36

@@ -26,7 +29,9 @@ def __init__(self, info={}):
2629

2730
def run(self):
2831
provider = self.layer.dataProvider()
29-
maxpfield = QgsField(name = "MAXP", type = 2)
32+
curr = [ fl.name() for fl in provider.fields() ]
33+
nfn = newColumnName(curr)
34+
maxpfield = QgsField(name = nfn, type = 2)
3035
newfields = QgsFields()
3136
newfields.extend(provider.fields())
3237
newfields.append(maxpfield)
@@ -88,3 +93,20 @@ def run(self):
8893
outputmsg = self.ERROR_MSG + str(map(str, islands))
8994
self.progress.emit(100.0)
9095
self.finished.emit(valid, outputmsg)
96+
97+
# Get the name of the next MAXP execution column.
98+
def newColumnName(fields, basename = 'MAXP'):
99+
last = -1
100+
for fld in fields:
101+
if fld.startswith(basename):
102+
try:
103+
cnt = int(fld[len(basename):])
104+
last = cnt if cnt > last else last
105+
except ValueError:
106+
last = 0
107+
108+
num = ""
109+
if last >= 0:
110+
num = str(last + 1)
111+
112+
return basename + num

0 commit comments

Comments
 (0)