def flags(self, index):
     # FIXME hardcoded column number
     flags = QStandardItemModel.flags(self, index) 
     if (index.column() == 3 and 
         index.model().data(index.model().index(index.row(), index.column() - 2, index.parent()), Qt.DisplayRole) == "bool"):
         flags = flags | Qt.ItemIsUserCheckable | Qt.ItemIsEditable | Qt.ItemIsEnabled
     return flags