Material Editor, code formating

This commit is contained in:
Bernd Hahnebach
2021-07-15 08:33:16 +02:00
parent 29ec98df8d
commit 70c8ff15ba

View File

@@ -39,7 +39,7 @@ if sys.version_info.major >= 3:
class MaterialEditor:
def __init__(self, obj=None, prop=None, material=None, card_path=''):
def __init__(self, obj=None, prop=None, material=None, card_path=""):
"""Initializes, optionally with an object name and a material property
name to edit, or directly with a material dictionary."""
@@ -139,7 +139,7 @@ class MaterialEditor:
def implementModel(self):
'''implements the model with the material attribute structure.'''
"""implements the model with the material attribute structure."""
p = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Material")
widget = self.widget
@@ -163,13 +163,13 @@ class MaterialEditor:
for properName in group[gg]:
pp = properName # property name
item = QtGui.QStandardItem(pp)
item.setToolTip(group[gg][properName]['Description'])
item.setToolTip(group[gg][properName]["Description"])
self.internalprops.append(pp)
it = QtGui.QStandardItem()
it.setToolTip(group[gg][properName]['Description'])
it.setToolTip(group[gg][properName]["Description"])
tt = group[gg][properName]['Type']
tt = group[gg][properName]["Type"]
itType = QtGui.QStandardItem(tt)
top.appendRow([item, it, itType])
@@ -180,9 +180,9 @@ class MaterialEditor:
def updateMatParamsInTree(self, data):
'''updates the contents of the editor with the given dictionary
"""updates the contents of the editor with the given dictionary
the material property keys where added to the editor already
not known material property keys will be added to the user defined group'''
not known material property keys will be added to the user defined group"""
# print(data)
model = self.widget.treeView.model()
@@ -223,8 +223,8 @@ class MaterialEditor:
return
self.card_path = self.widget.ComboMaterial.itemData(index)
FreeCAD.Console.PrintMessage(
'choose_material in material editor:\n'
' {}\n'.format(self.card_path)
"choose_material in material editor:\n"
" {}\n".format(self.card_path)
)
if os.path.isfile(self.card_path):
from importFCMat import read
@@ -234,11 +234,11 @@ class MaterialEditor:
# the card could be updated the dict not
self.widget.ComboMaterial.setCurrentIndex(index) # set after tree params
else:
FreeCAD.Console.PrintError('material card not found: {}\n'.format(self.card_path))
FreeCAD.Console.PrintError("material card not found: {}\n".format(self.card_path))
def updateCardsInCombo(self):
'''updates the contents of the materials combo with existing material cards'''
"""updates the contents of the materials combo with existing material cards"""
mat_prefs = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Material/Cards")
sort_by_resources = mat_prefs.GetBool("SortByResources", False)
@@ -260,13 +260,13 @@ class MaterialEditor:
a_path = card_names_tmp[a_name]
card_name_list.append([a_name, a_path, self.icons[a_path]])
card_name_list.insert(0, [None, '', ''])
card_name_list.insert(0, [None, "", ""])
for mat in card_name_list:
self.widget.ComboMaterial.addItem(QtGui.QIcon(mat[2]), mat[0], mat[1])
def openProductURL(self):
'''opens the contents of the ProductURL field in an external browser.'''
"""opens the contents of the ProductURL field in an external browser."""
model = self.widget.treeView.model()
item = model.findItems(translate("Material", "Product URL"),
@@ -340,8 +340,8 @@ class MaterialEditor:
def deleteCustomProperty(self, key=None):
'''Deletes a custom property from the editor,
or deletes the value of an internal property.'''
"""Deletes a custom property from the editor,
or deletes the value of an internal property."""
widget = self.widget
treeView = widget.treeView
@@ -377,8 +377,8 @@ class MaterialEditor:
def onClickTree(self, index):
'''Checks if the current item is a custom or an internal property,
and enable the delete property or delete value button.'''
"""Checks if the current item is a custom or an internal property,
and enable the delete property or delete value button."""
widget = self.widget
buttonDeleteProperty = widget.ButtonDeleteProperty
@@ -428,18 +428,18 @@ class MaterialEditor:
# since text(0) could be translated
matkey = self.collapseKey(str(kk))
matvalue = unicode(ii)
if matvalue or (matkey == 'Name'):
if matvalue or (matkey == "Name"):
# use only keys which are not empty and the name even if empty
d[matkey] = matvalue
# self.outputDict(d)
return d
def outputDict(self, d):
print('MaterialEditor dictionary')
print("MaterialEditor dictionary")
for param in d:
print(' {} : {}'.format(param, d[param]))
print(" {} : {}".format(param, d[param]))
'''
"""
def setTexture(self, pattern):
"displays a texture preview if needed"
self.widget.PreviewVector.hide()
@@ -453,7 +453,7 @@ class MaterialEditor:
if pattern:
self.widget.PreviewVector.setPixmap(QtGui.QPixmap(pattern))
self.widget.PreviewVector.show()
'''
"""
def updatePreviews(self, mat=None):
"updates the preview images from the content of the editor"
@@ -505,9 +505,9 @@ class MaterialEditor:
"Opens a FCMat file"
filetuple = QtGui.QFileDialog.getOpenFileName(
QtGui.QApplication.activeWindow(),
'Open FreeCAD Material file',
"Open FreeCAD Material file",
self.directory,
'*.FCMat'
"*.FCMat"
)
self.card_path = filetuple[0]
index = self.widget.ComboMaterial.findData(self.card_path)
@@ -518,8 +518,8 @@ class MaterialEditor:
if os.path.isfile(self.card_path):
if index == -1:
FreeCAD.Console.PrintMessage(
'Card path: {} not found in known cards.'
'The material parameter only are loaded.\n'
"Card path: {} not found in known cards."
"The material parameter only are loaded.\n"
.format(self.card_path)
)
from importFCMat import read
@@ -548,9 +548,9 @@ class MaterialEditor:
name = "Material"
filetuple = QtGui.QFileDialog.getSaveFileName(
QtGui.QApplication.activeWindow(),
'Save FreeCAD Material file',
self.directory + '/' + name + '.FCMat',
'*.FCMat'
"Save FreeCAD Material file",
self.directory + "/" + name + ".FCMat",
"*.FCMat"
)
# a tuple of two empty strings returns True, so use the filename directly
filename = filetuple[0]
@@ -573,7 +573,7 @@ class MaterialEditor:
class MaterialsDelegate(QtGui.QStyledItemDelegate):
'''provides display and editing facilities for data items from a model.'''
"""provides display and editing facilities for data items from a model."""
def __init__(self):
""
@@ -582,7 +582,7 @@ class MaterialsDelegate(QtGui.QStyledItemDelegate):
def createEditor(self, parent, option, index):
'''returns the widget used to change data from the model.'''
"""returns the widget used to change data from the model."""
model = index.model()
column = index.column()
@@ -628,16 +628,16 @@ class MaterialsDelegate(QtGui.QStyledItemDelegate):
def setEditorData(self, editor, index):
'''provides the widget with data to manipulate.'''
"""provides the widget with data to manipulate."""
Type = editor.property('Type')
Type = editor.property("Type")
model = index.model()
item = model.itemFromIndex(index)
print("item1={}".format(item.text()))
if Type == "Color":
color = editor.property('color')
color = editor.property("color")
color = tuple([v/255.0 for v in color.getRgb()])
item.setText(str(color))
@@ -658,7 +658,7 @@ ui = FreeCADGui.UiLoader()
def matProperWidget(parent=None, matproperty=None, Type="String", Value=None,
minimum=None, maximum=None, stepsize=None, precision=12):
'''customs widgets for the material stuff.'''
"""customs widgets for the material stuff."""
# FIXME
# Workaround for problem from here:
@@ -688,7 +688,7 @@ def matProperWidget(parent=None, matproperty=None, Type="String", Value=None,
if hasattr(FreeCAD.Units, matproperty):
unit = getattr(FreeCAD.Units, matproperty)
quantity = FreeCAD.Units.Quantity(1, unit)
widget.setProperty('unit', quantity.getUserPreferred()[2])
widget.setProperty("unit", quantity.getUserPreferred()[2])
else:
FreeCAD.Console.PrintWarning(
"Not known unit for property: {}. Probably the Quantity does not have a unit.\n"
@@ -714,7 +714,7 @@ def matProperWidget(parent=None, matproperty=None, Type="String", Value=None,
elif Type == "Boolean":
widget = ui.createWidget("Gui::PrefComboBox")
widget.insertItems(0, ['', 'False', 'True'])
widget.insertItems(0, ["", "False", "True"])
elif Type == "Vector":
@@ -727,22 +727,22 @@ def matProperWidget(parent=None, matproperty=None, Type="String", Value=None,
value = string2tuple(Value)
color = QtGui.QColor()
color.setRgb(value[0], value[1], value[2], value[3])
widget.setProperty('color', color)
widget.setProperty("color", color)
else:
widget = QtGui.QLineEdit()
if minimum is not None:
widget.setProperty('minimum', minimum)
widget.setProperty("minimum", minimum)
if maximum is not None:
widget.setProperty('maximum', maximum)
widget.setProperty("maximum", maximum)
if stepsize is not None:
widget.setProperty('stepsize', stepsize)
widget.setProperty("stepsize", stepsize)
if precision is not None:
widget.setProperty('precision', precision)
widget.setProperty("precision", precision)
widget.setProperty('Type', Type)
widget.setProperty("Type", Type)
widget.setParent(parent)
@@ -752,7 +752,7 @@ def matProperWidget(parent=None, matproperty=None, Type="String", Value=None,
def string2tuple(string):
"provisionally"
value = string[1:-1]
value = value.split(',')
value = value.split(",")
value = [int(float(v)*255) for v in value]
value = tuple(value)
return value
@@ -789,26 +789,26 @@ def editMaterial(material=None, card_path=None):
return {}
'''
"""
# some examples how to open the material editor in Python:
import MaterialEditor
MaterialEditor.openEditor()
doc = FreeCAD.open(
FreeCAD.ConfigGet("AppHomePath") + 'data/examples/FemCalculixCantilever3D.FCStd'
FreeCAD.ConfigGet("AppHomePath") + "data/examples/FemCalculixCantilever3D.FCStd"
)
import MaterialEditor
MaterialEditor.openEditor('SolidMaterial', 'Material')
MaterialEditor.openEditor("SolidMaterial", "Material")
import MaterialEditor
MaterialEditor.editMaterial({
'Density': '1234.0 kg/m^3',
'Name': 'My-Material-Data',
'PoissonRatio': '0.66',
'YoungsModulus': '123456 MPa'
"Density": "1234.0 kg/m^3",
"Name": "My-Material-Data",
"PoissonRatio": "0.66",
"YoungsModulus": "123456 MPa"
})
import MaterialEditor
MaterialEditor.editMaterial('ABS')
MaterialEditor.editMaterial("ABS")
'''
"""