diff --git a/src/Mod/Fem/Gui/DlgSettingsFem.ui b/src/Mod/Fem/Gui/DlgSettingsFem.ui
index be4d9abbc..198eb274e 100644
--- a/src/Mod/Fem/Gui/DlgSettingsFem.ui
+++ b/src/Mod/Fem/Gui/DlgSettingsFem.ui
@@ -457,6 +457,35 @@
+ -
+
+
+ Results
+
+
+
-
+
+
-
+
+
+ Restore result dialog settings
+
+
+ true
+
+
+ RestoreResultDialog
+
+
+ Mod/Fem
+
+
+
+
+
+
+
+
-
diff --git a/src/Mod/Fem/Gui/DlgSettingsFemImp.cpp b/src/Mod/Fem/Gui/DlgSettingsFemImp.cpp
index f57f6d236..371541f9b 100644
--- a/src/Mod/Fem/Gui/DlgSettingsFemImp.cpp
+++ b/src/Mod/Fem/Gui/DlgSettingsFemImp.cpp
@@ -60,6 +60,7 @@ void DlgSettingsFemImp::saveSettings()
cb_use_mat_from_config_dir->onSave();
cb_use_mat_from_custom_dir->onSave();
fc_custom_mat_dir->onSave();
+ cb_restore_result_dialog->onSave();
}
void DlgSettingsFemImp::loadSettings()
@@ -76,6 +77,7 @@ void DlgSettingsFemImp::loadSettings()
cb_use_mat_from_config_dir->onRestore();
cb_use_mat_from_custom_dir->onRestore();
fc_custom_mat_dir->onRestore();
+ cb_restore_result_dialog->onRestore();
ParameterGrp::handle hGrp = App::GetApplication().GetParameterGroupByPath
("User parameter:BaseApp/Preferences/Mod/Fem");
diff --git a/src/Mod/Fem/_CommandQuickAnalysis.py b/src/Mod/Fem/_CommandQuickAnalysis.py
index 0ab67c428..c8604adcf 100644
--- a/src/Mod/Fem/_CommandQuickAnalysis.py
+++ b/src/Mod/Fem/_CommandQuickAnalysis.py
@@ -64,6 +64,7 @@ class _CommandQuickAnalysis(FemCommands):
def show_results_on_mesh(self):
#FIXME proprer mesh refreshing as per FreeCAD.FEM_dialog settings required
# or confirmation that it's safe to call restore_result_dialog
+ #FIXME if an analysis has multiple results (frequence) the first result object found is restored
import _TaskPanelResultControl
tp = _TaskPanelResultControl._TaskPanelResultControl()
tp.restore_result_dialog()
diff --git a/src/Mod/Fem/_TaskPanelResultControl.py b/src/Mod/Fem/_TaskPanelResultControl.py
index 515da8405..c4d892aa2 100644
--- a/src/Mod/Fem/_TaskPanelResultControl.py
+++ b/src/Mod/Fem/_TaskPanelResultControl.py
@@ -40,6 +40,8 @@ class _TaskPanelResultControl:
'''The control for the displacement post-processing'''
def __init__(self):
self.form = FreeCADGui.PySideUic.loadUi(FreeCAD.getHomePath() + "Mod/Fem/TaskPanelShowDisplacement.ui")
+ self.fem_prefs = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/Mod/Fem")
+ self.restore_result_settings_in_dialog = self.fem_prefs.GetBool("RestoreResultDialog", True)
#Connect Signals and Slots
QtCore.QObject.connect(self.form.rb_none, QtCore.SIGNAL("toggled(bool)"), self.none_selected)
@@ -55,7 +57,10 @@ class _TaskPanelResultControl:
QtCore.QObject.connect(self.form.sb_displacement_factor_max, QtCore.SIGNAL("valueChanged(int)"), self.sb_disp_factor_max_changed)
self.update()
- self.restore_result_dialog()
+ if self.restore_result_settings_in_dialog:
+ self.restore_result_dialog()
+ else:
+ self.restore_initial_result_dialog()
def restore_result_dialog(self):
try:
@@ -90,22 +95,26 @@ class _TaskPanelResultControl:
self.form.sb_displacement_factor_max.setValue(dfm)
self.form.sb_displacement_factor.setValue(df)
except:
- FreeCAD.FEM_dialog = {"results_type": "None", "show_disp": False,
- "disp_factor": 0, "disp_factor_max": 100}
+ self.restore_initial_result_dialog()
+
+ def restore_initial_result_dialog(self):
+ FreeCAD.FEM_dialog = {"results_type": "None", "show_disp": False,
+ "disp_factor": 0, "disp_factor_max": 100}
+ fea = FemTools()
+ fea.reset_mesh_color()
+ fea.reset_mesh_deformation()
def getStandardButtons(self):
return int(QtGui.QDialogButtonBox.Close)
def get_result_stats(self, type_name, analysis=None):
- if analysis is None:
- analysis = FemGui.getActiveAnalysis()
- for i in analysis.Member:
- if (i.isDerivedFrom("Fem::FemResultObject")) and ("Stats" in i.PropertiesList):
- match_table = {"U1": (i.Stats[0], i.Stats[1], i.Stats[2]),
- "U2": (i.Stats[3], i.Stats[4], i.Stats[5]),
- "U3": (i.Stats[6], i.Stats[7], i.Stats[8]),
- "Uabs": (i.Stats[9], i.Stats[10], i.Stats[11]),
- "Sabs": (i.Stats[12], i.Stats[13], i.Stats[14]),
+ if "Stats" in self.result_object.PropertiesList:
+ Stats = self.result_object.Stats
+ match_table = {"U1": (Stats[0], Stats[1], Stats[2]),
+ "U2": (Stats[3], Stats[4], Stats[5]),
+ "U3": (Stats[6], Stats[7], Stats[8]),
+ "Uabs": (Stats[9], Stats[10], Stats[11]),
+ "Sabs": (Stats[12], Stats[13], Stats[14]),
"None": (0.0, 0.0, 0.0)}
return match_table[type_name]
return (0.0, 0.0, 0.0)
diff --git a/src/Mod/Start/StartPage/StartPage.py b/src/Mod/Start/StartPage/StartPage.py
index 6babc79e5..aad7e5eed 100644
--- a/src/Mod/Start/StartPage/StartPage.py
+++ b/src/Mod/Start/StartPage/StartPage.py
@@ -443,7 +443,7 @@ def getLinks():
')"
onMouseout="show('')"
- exthref="http://www.freecadweb.org/">""" + text08 + """
+ href="exthttp://www.freecadweb.org/">""" + text08 + """
')"
onMouseout="show('')"