From 4feccb6fabda4044e9165ebb01c428040a435fa2 Mon Sep 17 00:00:00 2001 From: "Zheng, Lei" Date: Thu, 3 Jan 2019 11:01:58 +0800 Subject: [PATCH] assembly: disable auto solve when workbench is not active --- assembly.py | 3 ++- gui.py | 1 + init_gui.py | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/assembly.py b/assembly.py index f60a7f8..fd1f4ba 100644 --- a/assembly.py +++ b/assembly.py @@ -2788,7 +2788,8 @@ class Assembly(AsmGroup): @classmethod def canAutoSolve(cls): from . import solver - return gui.AsmCmdManager.AutoRecompute and \ + return gui.AsmCmdManager.WorkbenchActivated and \ + gui.AsmCmdManager.AutoRecompute and \ FreeCADGui.ActiveDocument and \ not FreeCADGui.ActiveDocument.Transacting and \ not FreeCAD.isRestoring() and \ diff --git a/gui.py b/gui.py index 2e171e8..9125ae2 100644 --- a/gui.py +++ b/gui.py @@ -138,6 +138,7 @@ class AsmCmdManager(ProxyType): Toolbars = OrderedDict() Menus = OrderedDict() _defaultMenuGroupName = '&Assembly3' + WorkbenchActivated = False @staticmethod def getToolbarParams(): diff --git a/init_gui.py b/init_gui.py index 67dc9ff..6ce2642 100644 --- a/init_gui.py +++ b/init_gui.py @@ -29,11 +29,13 @@ class Assembly3Workbench(FreeCADGui.Workbench): def Activated(self): from .gui import AsmCmdManager + AsmCmdManager.WorkbenchActivated = True for cmd in AsmCmdManager.getInfo().Types: cmd.workbenchActivated() def Deactivated(self): from .gui import AsmCmdManager + AsmCmdManager.WorkbenchActivated = False for cmd in AsmCmdManager.getInfo().Types: cmd.workbenchDeactivated()