In mapData:
for col in range(self.moduleCount-1, 0, -2):
if (col <= 6): col-=1
Should be:
for col in range(self.moduleCount-1, -1, -2):
if (col == 6): col-=1
There are two problems here. First in the range, 0 instead of -1 means column 0 never gets processed (range does not output the "end" value.(
Second problem: col is not remembered through loops because you are iterating over a list of numbers. So you subtract 1 when col = 6, but on the next loop col will be reset to the next value in the list of numbers.
Sorry I pasted code wrong... In mapData: for col in range(self.moduleCount-1, 0, -2): if (col == 6): col-=1 Should be: for col in range(self.moduleCount-1, -1, -2): if (col <= 6): col-=1