FEM: Migrate _CommandPurgeFemResults to FemCommands and add new is_active type

Signed-off-by: Przemo Firszt <przemo@firszt.eu>
This commit is contained in:
Przemo Firszt 2015-10-13 10:41:38 +01:00 committed by wmayer
parent 044c16d218
commit 217103affb
2 changed files with 19 additions and 19 deletions

View File

@ -52,4 +52,14 @@ class FemCommands(object):
active = FreeCADGui.ActiveDocument is not None
elif self.is_active == 'with_analysis':
active = FreeCADGui.ActiveDocument is not None and FemGui.getActiveAnalysis() is not None
elif self.is_active == 'with_results':
active = FreeCADGui.ActiveDocument is not None and FemGui.getActiveAnalysis() is not None and self.results_present()
return active
def results_present(self):
results = False
analysis_members = FemGui.getActiveAnalysis().Member
for o in analysis_members:
if o.isDerivedFrom('Fem::FemResultObject'):
results = True
return results

View File

@ -25,6 +25,7 @@ __author__ = "Juergen Riegel"
__url__ = "http://www.freecadweb.org"
import FreeCAD
from FemCommands import FemCommands
from FemTools import FemTools
if FreeCAD.GuiUp:
@ -32,30 +33,19 @@ if FreeCAD.GuiUp:
from PySide import QtCore
class _CommandPurgeFemResults:
def GetResources(self):
return {'Pixmap': 'fem-purge-results',
'MenuText': QtCore.QT_TRANSLATE_NOOP("Fem_PurgeResults", "Purge results"),
'Accel': "S, S",
'ToolTip': QtCore.QT_TRANSLATE_NOOP("Fem_PurgeResults", "Purge results from an analysis")}
class _CommandPurgeFemResults(FemCommands):
def __init__(self):
super(_CommandPurgeFemResults, self).__init__()
self.resources = {'Pixmap': 'fem-purge-results',
'MenuText': QtCore.QT_TRANSLATE_NOOP("Fem_PurgeResults", "Purge results"),
'Accel': "S, S",
'ToolTip': QtCore.QT_TRANSLATE_NOOP("Fem_PurgeResults", "Purge results from an analysis")}
self.is_active = 'with_results'
def Activated(self):
fea = FemTools()
fea.reset_all()
def IsActive(self):
return FreeCADGui.ActiveDocument is not None and results_present()
#Code duplication to be removed after migration to FemTools
def results_present():
import FemGui
results = False
analysis_members = FemGui.getActiveAnalysis().Member
for o in analysis_members:
if o.isDerivedFrom('Fem::FemResultObject'):
results = True
return results
if FreeCAD.GuiUp:
FreeCADGui.addCommand('Fem_PurgeResults', _CommandPurgeFemResults())