Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
 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
Exemplo n.º 4
0
 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,
     )
Exemplo n.º 5
0
 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
Exemplo n.º 6
0
    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)
Exemplo n.º 7
0
 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
Exemplo n.º 8
0
    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)