def addCodeToList(self):
        #row = self.codeListTable.rowCount()
        # Insert before the first selected row
        rows =  [i.row() for i in self.codeListTable.selectionModel().selectedRows()]
        rows.sort()
        rows.append(self.codeListTable.rowCount()) #Ensure we always have a value
        row = rows[0]
        self.codeListTable.insertRow(row)

        # Add new XML Node
        codes = self.element.xpath(".//s:Codes",namespaces=_namespaces)[0] 
        newCodePair = etree.Element(_ns("s",'CodePair'))
        newCodePair.set('code', "")
        codes.insert(row,newCodePair) #Don't have to add 1, as lXML is smart.

        # Make checkbox field
        item = QtGui.QTableWidgetItem('')
        item.setFlags(QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsEnabled)
        item.setCheckState(QtCore.Qt.Unchecked)
        self.codeListTable.setItem(row,1,item)

        self.update()