def setModelData(self, editor, model: QAbstractItemModel, index): """ Overriding inherited setModelData class Args: editor: Current editor for the data model: Current model whose data is being set index: Current index being modified """ if index.column() == TreeModelParamEntry.TYPE: model.setData(index, editor.getTypeName()) # get type # get corresponding dict entry # update type (OrderedDict, str, etc.) as necessary # get value else: QItemDelegate.setModelData(self, editor, model, index)
def setModelData(self, editor, model, index): row = index.row() column = index.column() if column == COLOR and editor is None: model.setData(index, None, Qt.BackgroundColorRole) model.setData(model.index(row, column+1), None, Qt.DisplayRole) elif column == COLOR: color = editor.currentColor() if color != QColor(): color = color.getRgb()[:3] model.setData(index, color, Qt.BackgroundColorRole) model.setData(model.index(row, column+1), color, Qt.DisplayRole) elif column == COLORLABEL: if editor is None: model.setData(model.index(row, column-1), None, Qt.BackgroundColorRole) model.setData(index, None, Qt.DisplayRole) elif editor.text().lower() in openmc.plots._SVG_COLORS: svg = editor.text().lower() color = openmc.plots._SVG_COLORS[svg] model.setData(model.index(row, column-1), color, Qt.BackgroundColorRole) model.setData(index, svg, Qt.DisplayRole) else: try: input = literal_eval(editor.text()) except (ValueError, SyntaxError): return None if not isinstance(input, tuple) or len(input) != 3: return None for val in input: if not isinstance(val, int) or not 0 <= val <= 255: return None model.setData(model.index(row, column-1), input, Qt.BackgroundColorRole) model.setData(index, input, Qt.DisplayRole) else: QItemDelegate.setModelData(self, editor, model, index)