From 490da825905d9fc06cc43384264428fb04031cc4 Mon Sep 17 00:00:00 2001 From: "Zheng, Lei" Date: Sat, 26 Sep 2020 09:33:06 +0800 Subject: [PATCH] gui: fix command active detection --- freecad/asm3/gui.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/freecad/asm3/gui.py b/freecad/asm3/gui.py index 169683a..77d46bd 100644 --- a/freecad/asm3/gui.py +++ b/freecad/asm3/gui.py @@ -10,6 +10,16 @@ from .utils import getElementPos,objName,addIconToFCAD,guilogger as logger from .proxy import ProxyType from .FCADLogger import FCADLogger +def _isCommandActive(cmd): + try: + return FreeCADGui.Command.isActive(cmd) + except Exception: + pass + try: + return FreeCADGui.isCommandActive(cmd) + except Exception: + return True + class SelectionObserver: def __init__(self): self._attached = False @@ -961,7 +971,7 @@ class AsmCmdGotoLinked(AsmCmdBase): @classmethod def IsActive(cls): - return FreeCADGui.isCommandActive('Std_LinkSelectLinked') + return _isCommandActive('Std_LinkSelectLinked') class AsmCmdGotoLinkedFinal(AsmCmdBase): _id = 23 @@ -1019,7 +1029,7 @@ class AsmCmdGotoLinkedFinal(AsmCmdBase): obj = sels[0].Object.getSubObject(sels[0].SubElementNames[0],1) if isTypeOf(obj, (AsmElementLink,AsmElement)): return True - return FreeCADGui.isCommandActive('Std_LinkSelectLinkedFinal') + return _isCommandActive('Std_LinkSelectLinkedFinal') class AsmCmdUp(AsmCmdBase): _id = 6