Skip to content

Commit

Permalink
FEM: add length values to task panel of shellthickness
Browse files Browse the repository at this point in the history
  • Loading branch information
berndhahnebach authored and yorikvanhavre committed Dec 21, 2016
1 parent 443112c commit cb6baaa
Show file tree
Hide file tree
Showing 2 changed files with 85 additions and 31 deletions.
87 changes: 62 additions & 25 deletions src/Mod/Fem/TaskPanelFemShellThickness.ui
Expand Up @@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>249</width>
<height>379</height>
<width>350</width>
<height>500</height>
</rect>
</property>
<property name="windowTitle">
Expand All @@ -23,22 +23,62 @@
</size>
</property>
<property name="title">
<string>Thickness</string>
<string>Parameter</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_5">
<item>
<widget class="QLabel" name="l_label_text_3">
<property name="text">
<string>Use FreeCAD Property Editor</string>
<layout class="QFormLayout" name="formLayout_1">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="l_label_text_4">
<property name="text">
<string>to edit the thickness value</string>
</property>
</widget>
<item row="1" column="1">
<widget class="Gui::InputField" name="if_thickness">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>80</width>
<height>20</height>
</size>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="text">
<string>0.0</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="singleStep" stdset="0">
<double>1.000000000000000</double>
</property>
<property name="maximum" stdset="0">
<double>1000000000.000000000000000</double>
</property>
<property name="unit" stdset="0">
<string notr="true">mm</string>
</property>
<property name="decimals" stdset="0">
<number>2</number>
</property>
<property name="value" stdset="0">
<double>0.000000000000000</double>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="l_thickness">
<property name="text">
<string>Thickness: </string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
Expand All @@ -52,17 +92,7 @@
<item>
<widget class="QLabel" name="l_label_text_1">
<property name="text">
<string>Leave references blank </string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="l_label_text_2">
<property name="text">
<string>to choose all remaining shapes</string>
</property>
<property name="wordWrap">
<bool>true</bool>
<string>Leave blank to choose all remaining shapes</string>
</property>
</widget>
</item>
Expand Down Expand Up @@ -94,6 +124,13 @@
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>Gui::InputField</class>
<extends>QLineEdit</extends>
<header>Gui/InputField.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>
29 changes: 23 additions & 6 deletions src/Mod/Fem/_TaskPanelFemShellThickness.py
Expand Up @@ -39,22 +39,20 @@ def __init__(self, obj):
FreeCADGui.Selection.clearSelection()
self.sel_server = None
self.obj = obj
self.references = []
if self.obj.References:
self.tuplereferences = self.obj.References
self.get_references()

self.form = FreeCADGui.PySideUic.loadUi(FreeCAD.getHomePath() + "Mod/Fem/TaskPanelFemShellThickness.ui")
QtCore.QObject.connect(self.form.if_thickness, QtCore.SIGNAL("valueChanged(Base::Quantity)"), self.thickness_changed)
QtCore.QObject.connect(self.form.pushButton_Reference, QtCore.SIGNAL("clicked()"), self.add_references)
self.form.list_References.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.form.list_References.connect(self.form.list_References, QtCore.SIGNAL("customContextMenuRequested(QPoint)"), self.references_list_right_clicked)

self.rebuild_list_References()
self.get_shellthickness_props()
self.update()

def accept(self):
self.set_shellthickness_props()
if self.sel_server:
FreeCADGui.Selection.removeObserver(self.sel_server)
self.obj.References = self.references
FreeCADGui.ActiveDocument.resetEdit()
FreeCAD.ActiveDocument.recompute()
return True
Expand All @@ -65,6 +63,25 @@ def reject(self):
FreeCADGui.ActiveDocument.resetEdit()
return True

def get_shellthickness_props(self):
self.thickness = self.obj.Thickness
self.references = []
if self.obj.References:
self.tuplereferences = self.obj.References
self.get_references()

def set_shellthickness_props(self):
self.obj.References = self.references
self.obj.Thickness = self.thickness

def update(self):
'fills the widgets'
self.form.if_thickness.setText(self.thickness.UserString)
self.rebuild_list_References()

def thickness_changed(self, base_quantity_value):
self.thickness = base_quantity_value

def get_references(self):
for ref in self.tuplereferences:
for elem in ref[1]:
Expand Down

0 comments on commit cb6baaa

Please sign in to comment.