def propertyModifyIndex(self, index): PathLog.track(index.row(), index.column()) row = index.row() obj = self.model.item(row, self.ColumnVal).data(Delegate.RoleObject) nam = self.model.item(row, self.ColumnVal).data(Delegate.RoleProperty) grp = obj.getGroupOfProperty(nam) typ = obj.getTypeIdOfProperty(nam) dialog = PropertyCreate(self.obj, grp, typ, False) if dialog.exec_(nam): val = getattr(obj, nam) obj.removeProperty(nam) name, info = self.addCustomProperty(self.obj, dialog) try: setattr(obj, nam, val) except Exception: # this can happen if the old enumeration value doesn't exist anymore pass newVal = PathUtil.getPropertyValueString(obj, nam) self.model.setData(self.model.index(row, self.ColumnVal), newVal, QtCore.Qt.DisplayRole) # self.model.setData(self.model.index(row, self.ColumnType), info, QtCore.Qt.ToolTipRole) self.model.setData(self.model.index(row, self.ColumnVal), info, QtCore.Qt.ToolTipRole)
def templateAttributes(self, includeRapids=True, includeCoolantMode=True, includeHeights=True, includeDepths=True, includeOps=None): '''templateAttributes(includeRapids, includeHeights, includeDepths) ... answers a dictionary with the default values.''' attrs = {} if includeRapids: attrs[Template.VertRapid] = self.obj.VertRapid.UserString attrs[Template.HorizRapid] = self.obj.HorizRapid.UserString if includeCoolantMode: attrs[Template.CoolantMode] = self.obj.CoolantMode if includeHeights: attrs[Template.SafeHeightOffset] = self.obj.SafeHeightOffset.UserString attrs[Template.SafeHeightExpression] = self.obj.SafeHeightExpression attrs[Template.ClearanceHeightOffset] = self.obj.ClearanceHeightOffset.UserString attrs[Template.ClearanceHeightExpression] = self.obj.ClearanceHeightExpression if includeDepths: attrs[Template.StartDepthExpression] = self.obj.StartDepthExpression attrs[Template.FinalDepthExpression] = self.obj.FinalDepthExpression attrs[Template.StepDownExpression] = self.obj.StepDownExpression if includeOps: for opName in includeOps: settings = {} op = _RegisteredOps[opName] for propName in op.properties(): prop = OpPropertyName(opName, propName) if hasattr(self.obj, prop): settings[propName] = PathUtil.getPropertyValueString(self.obj, prop) attrs[opName] = settings return attrs
def shapeAttrs(self, obj): attrs = {} attrs['version'] = 2 # Path.Tool is version 1 attrs['name'] = obj.Label if PathPreferences.toolsStoreAbsolutePaths(): attrs['shape'] = obj.BitShape else: attrs['shape'] = findRelativePathShape(obj.BitShape) params = {} for name in self.propertyNamesBit(obj): params[name] = PathUtil.getPropertyValueString(obj, name) attrs['parameter'] = params params = {} for name in self.propertyNamesAttribute(obj): params[name] = PathUtil.getPropertyValueString(obj, name) attrs['attribute'] = params return attrs
def setModelData(self, widget, model, index): # called to update the model with the data from the widget editor = index.data(self.EditorRole) editor.setModelData(widget) index.model().setData( index, PathUtil.getPropertyValueString(editor.obj, editor.prop), QtCore.Qt.DisplayRole, )
def shapeAttrs(self, obj): attrs = {} attrs['version'] = 2 # Path.Tool is version 1 attrs['name'] = obj.Label if PathPreferences.toolsStoreAbsolutePaths(): attrs['shape'] = obj.BitShape else: attrs['shape'] = findRelativePathShape(obj.BitShape) params = {} for name in self.propertyNamesBit(obj): params[name] = PathUtil.getPropertyValueString(obj, name) attrs['parameter'] = params params = {} for name in self.propertyNamesAttribute(obj): #print(f"shapeattr {name}") if name == "UserAttributes": for key, value in obj.UserAttributes.items(): params[key] = value else: params[name] = PathUtil.getPropertyValueString(obj, name) attrs['attribute'] = params return attrs
def _setupProperty(self, i, name): typ = PathPropertyBag.getPropertyTypeName(self.obj.getTypeIdOfProperty(name)) val = PathUtil.getPropertyValueString(self.obj, name) info = self.obj.getDocumentationOfProperty(name) self.model.setData(self.model.index(i, self.ColumnName), name, QtCore.Qt.EditRole) #self.model.setData(self.model.index(i, self.ColumnType), typ, QtCore.Qt.EditRole) self.model.setData(self.model.index(i, self.ColumnVal), self.obj, Delegate.RoleObject) self.model.setData(self.model.index(i, self.ColumnVal), name, Delegate.RoleProperty) self.model.setData(self.model.index(i, self.ColumnVal), val, QtCore.Qt.DisplayRole) self.model.setData(self.model.index(i, self.ColumnName), typ, QtCore.Qt.ToolTipRole) #self.model.setData(self.model.index(i, self.ColumnType), info, QtCore.Qt.ToolTipRole) self.model.setData(self.model.index(i, self.ColumnVal), info, QtCore.Qt.ToolTipRole) self.model.item(i, self.ColumnName).setEditable(False)
def templateAttrs(self, obj): attrs = {} attrs['version'] = 2 # Path.Tool is version 1 attrs['name'] = obj.Label if PathPreferences.toolsStoreAbsolutePaths(): attrs['shape'] = obj.BitShape else: # attrs['shape'] = findRelativePathShape(obj.BitShape) # Extract the name of the shape file __, filShp = os.path.split( obj.BitShape ) # __ is an ignored placeholder acknowledged by LGTM attrs['shape'] = str(filShp) params = {} for name in obj.BitPropertyNames: params[name] = PathUtil.getPropertyValueString(obj, name) attrs['parameter'] = params params = {} attrs['attribute'] = params return attrs
def setupAttributes(self, tool): PathLog.track() setup = True if not hasattr(self, "delegate"): self.delegate = _Delegate(self.form.attrTree) self.model = QtGui.QStandardItemModel(self.form.attrTree) self.model.setHorizontalHeaderLabels(["Property", "Value"]) else: self.model.removeRows(0, self.model.rowCount()) setup = False attributes = tool.Proxy.toolGroupsAndProperties(tool, False) for name in attributes: group = QtGui.QStandardItem() group.setData(name, QtCore.Qt.EditRole) group.setEditable(False) for prop in attributes[name]: label = QtGui.QStandardItem() label.setData(prop, QtCore.Qt.EditRole) label.setEditable(False) value = QtGui.QStandardItem() value.setData( PathUtil.getPropertyValueString(tool, prop), QtCore.Qt.DisplayRole ) value.setData(tool, _Delegate.ObjectRole) value.setData(prop, _Delegate.PropertyRole) group.appendRow([label, value]) self.model.appendRow(group) if setup: self.form.attrTree.setModel(self.model) self.form.attrTree.setItemDelegateForColumn(1, self.delegate) self.form.attrTree.expandAll() self.form.attrTree.resizeColumnToContents(0) self.form.attrTree.resizeColumnToContents(1)