BIM: improved IsActive behaviour - fixes #14061

This commit is contained in:
Yorik van Havre
2024-05-22 14:51:01 +02:00
committed by Chris Hennes
parent 4e0fa389b3
commit a9e4056597
41 changed files with 134 additions and 136 deletions

View File

@@ -43,7 +43,8 @@ class Arch_Add:
'ToolTip': QT_TRANSLATE_NOOP("Arch_Add","Adds the selected components to the active object")}
def IsActive(self):
return len(FreeCADGui.Selection.getSelection()) > 1
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v and len(FreeCADGui.Selection.getSelection()) > 1
def Activated(self):
import Draft
@@ -78,7 +79,8 @@ class Arch_Remove:
'ToolTip': QT_TRANSLATE_NOOP("Arch_Remove","Remove the selected components from their parents, or create a hole in a component")}
def IsActive(self):
return bool(FreeCADGui.Selection.getSelection())
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v and bool(FreeCADGui.Selection.getSelection())
def Activated(self):
import Draft
@@ -115,7 +117,8 @@ class Arch_SplitMesh:
'ToolTip': QT_TRANSLATE_NOOP("Arch_SplitMesh","Splits selected meshes into independent components")}
def IsActive(self):
return bool(FreeCADGui.Selection.getSelection())
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v and bool(FreeCADGui.Selection.getSelection())
def Activated(self):
import Arch
@@ -142,7 +145,8 @@ class Arch_MeshToShape:
'ToolTip': QT_TRANSLATE_NOOP("Arch_MeshToShape","Turns selected meshes into Part Shape objects")}
def IsActive(self):
return bool(FreeCADGui.Selection.getSelection())
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v and bool(FreeCADGui.Selection.getSelection())
def Activated(self):
import Arch
@@ -179,7 +183,8 @@ class Arch_SelectNonSolidMeshes:
'ToolTip': QT_TRANSLATE_NOOP("Arch_SelectNonSolidMeshes","Selects all non-manifold meshes from the document or from the selected groups")}
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
msel = []
@@ -208,7 +213,8 @@ class Arch_RemoveShape:
'ToolTip': QT_TRANSLATE_NOOP("Arch_RemoveShape","Removes cubic shapes from Arch components")}
def IsActive(self):
return bool(FreeCADGui.Selection.getSelection())
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v and bool(FreeCADGui.Selection.getSelection())
def Activated(self):
import Arch
@@ -225,7 +231,8 @@ class Arch_CloseHoles:
'ToolTip': QT_TRANSLATE_NOOP("Arch_CloseHoles","Closes holes in open shapes, turning them solids")}
def IsActive(self):
return bool(FreeCADGui.Selection.getSelection())
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v and bool(FreeCADGui.Selection.getSelection())
def Activated(self):
import Arch
@@ -243,7 +250,8 @@ class Arch_Check:
'ToolTip': QT_TRANSLATE_NOOP("Arch_Check","Checks the selected objects for problems")}
def IsActive(self):
return bool(FreeCADGui.Selection.getSelection())
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v and bool(FreeCADGui.Selection.getSelection())
def Activated(self):
import Arch
@@ -266,7 +274,8 @@ class Arch_Survey:
'ToolTip': QT_TRANSLATE_NOOP("Arch_Survey","Starts survey")}
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
FreeCADGui.addModule("Arch")
@@ -282,7 +291,8 @@ class Arch_ToggleIfcBrepFlag:
'ToolTip': QT_TRANSLATE_NOOP("Arch_ToggleIfcBrepFlag","Force an object to be exported as Brep or not")}
def IsActive(self):
return bool(FreeCADGui.Selection.getSelection())
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v and bool(FreeCADGui.Selection.getSelection())
def Activated(self):
import Arch
@@ -300,7 +310,8 @@ class Arch_Component:
'ToolTip': QT_TRANSLATE_NOOP("Arch_Component","Creates an undefined architectural component")}
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
sel = FreeCADGui.Selection.getSelection()
@@ -326,7 +337,8 @@ class Arch_CloneComponent:
'ToolTip': QT_TRANSLATE_NOOP("Arch_CloneComponent","Clones an object as an undefined architectural component")}
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
sel = FreeCADGui.Selection.getSelection()
@@ -352,7 +364,8 @@ class Arch_IfcSpreadsheet:
'ToolTip': QT_TRANSLATE_NOOP("Arch_IfcSpreadsheet","Creates a spreadsheet to store IFC properties of an object.")}
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
sel = FreeCADGui.Selection.getSelection()
@@ -378,7 +391,8 @@ class Arch_ToggleSubs:
'ToolTip' : QT_TRANSLATE_NOOP("Arch_ToggleSubs","Shows or hides the subcomponents of this object")}
def IsActive(self):
return bool(FreeCADGui.Selection.getSelection())
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v and bool(FreeCADGui.Selection.getSelection())
def Activated(self):
import Draft
@@ -421,7 +435,8 @@ class Arch_MergeWalls:
toolbars.
"""
return bool(FreeCADGui.Selection.getSelection())
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v and bool(FreeCADGui.Selection.getSelection())
def Activated(self):
"""Executed when Arch MergeWalls is called.

View File

@@ -53,7 +53,8 @@ class Arch_Axis:
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
@@ -88,7 +89,8 @@ class Arch_AxisSystem:
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
class Arch_Grid:
@@ -112,7 +114,8 @@ class Arch_Grid:
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
class Arch_AxisTools:
@@ -128,7 +131,8 @@ class Arch_AxisTools:
}
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v

View File

@@ -41,10 +41,8 @@ class BIM_Box:
}
def IsActive(self):
if FreeCAD.ActiveDocument:
return True
else:
return False
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
import draftguitools.gui_trackers as DraftTrackers

View File

@@ -47,7 +47,8 @@ class Arch_Level:
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
@@ -75,7 +76,8 @@ class Arch_Building:
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):

View File

@@ -46,10 +46,8 @@ class BIM_Classification:
}
def IsActive(self):
if FreeCAD.ActiveDocument:
return True
else:
return False
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
import Draft

View File

@@ -43,10 +43,8 @@ class BIM_Convert:
}
def IsActive(self):
if FreeCAD.ActiveDocument:
return True
else:
return False
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
sel = FreeCADGui.Selection.getSelection()

View File

@@ -46,7 +46,8 @@ class Arch_CurtainWall:
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):

View File

@@ -43,7 +43,8 @@ class Arch_CutPlane:
"ToolTip": QT_TRANSLATE_NOOP("Arch_CutPlane", "Cut an object with a plane")}
def IsActive(self):
return len(FreeCADGui.Selection.getSelection()) > 1
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v and len(FreeCADGui.Selection.getSelection()) > 1
def Activated(self):
import ArchCutPlane

View File

@@ -40,10 +40,8 @@ class BIM_Diff:
}
def IsActive(self):
if FreeCAD.ActiveDocument:
return True
else:
return False
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
# you need two documents open, containing BIM objects with same IDs

View File

@@ -46,7 +46,8 @@ class Arch_Equipment:
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):

View File

@@ -41,7 +41,8 @@ class Arch_Fence:
'ToolTip': QT_TRANSLATE_NOOP("Arch_Fence", "Creates a fence object from a selected section, post and path")}
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
if len(FreeCADGui.Selection.getSelection()) != 3:

View File

@@ -45,7 +45,8 @@ class Arch_Frame:
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):

View File

@@ -43,10 +43,8 @@ class BIM_Glue:
}
def IsActive(self):
if FreeCADGui.Selection.getSelection():
return True
else:
return False
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
import Part

View File

@@ -45,13 +45,8 @@ class BIM_IfcElements:
}
def IsActive(self):
if FreeCAD.ActiveDocument:
# disable for pre-v0.18
if float(FreeCAD.Version()[0] + "." + FreeCAD.Version()[1]) < 0.18:
return False
return True
else:
return False
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
import Draft

View File

@@ -49,13 +49,8 @@ class BIM_IfcProperties:
}
def IsActive(self):
if FreeCAD.ActiveDocument:
# disable for pre-v0.18
if float(FreeCAD.Version()[0] + "." + FreeCAD.Version()[1]) < 0.18:
return False
return True
else:
return False
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
from PySide import QtCore, QtGui

View File

@@ -66,13 +66,8 @@ class BIM_IfcQuantities:
}
def IsActive(self):
if FreeCAD.ActiveDocument:
# disable for pre-v0.18
if float(FreeCAD.Version()[0] + "." + FreeCAD.Version()[1]) < 0.18:
return False
return True
else:
return False
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
from PySide import QtCore, QtGui

View File

@@ -42,10 +42,8 @@ class BIM_ImagePlane:
}
def IsActive(self):
if FreeCAD.ActiveDocument:
return True
else:
return False
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
import FreeCADGui

View File

@@ -574,11 +574,8 @@ class Arch_Material:
FreeCAD.ActiveDocument.recompute()
def IsActive(self):
if FreeCAD.ActiveDocument:
return True
else:
return False
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
class Arch_MultiMaterial:
@@ -609,11 +606,8 @@ class Arch_MultiMaterial:
FreeCAD.ActiveDocument.recompute()
def IsActive(self):
if FreeCAD.ActiveDocument:
return True
else:
return False
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
class Arch_MaterialToolsCommand:
@@ -625,7 +619,8 @@ class Arch_MaterialToolsCommand:
'ToolTip': QT_TRANSLATE_NOOP("Arch_MaterialTools",'Material tools')
}
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
FreeCADGui.addCommand("BIM_Material", BIM_Material())

View File

@@ -45,7 +45,8 @@ class Arch_Panel:
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
@@ -236,7 +237,8 @@ class Arch_PanelCut:
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
@@ -264,7 +266,8 @@ class Arch_PanelSheet:
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
@@ -299,7 +302,8 @@ class Arch_Nest:
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
@@ -468,7 +472,8 @@ class Arch_PanelGroup:
}
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
FreeCADGui.addCommand('Arch_Panel',Arch_Panel())

View File

@@ -45,7 +45,8 @@ class Arch_Pipe:
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
@@ -83,7 +84,8 @@ class Arch_PipeConnector:
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
@@ -117,7 +119,8 @@ class Arch_PipeGroupCommand:
'ToolTip': QT_TRANSLATE_NOOP("Arch_PipeTools",'Pipe tools')
}
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
FreeCADGui.addCommand('Arch_Pipe',Arch_Pipe())

View File

@@ -45,7 +45,8 @@ class Arch_Profile:
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):

View File

@@ -42,7 +42,8 @@ class BIM_Project:
}
def IsActive(self):
return not hasattr(FreeCAD.ActiveDocument, "IfcFilePath")
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v and not hasattr(FreeCAD.ActiveDocument, "IfcFilePath")
def Activated(self):
from nativeifc import ifc_tools

View File

@@ -45,7 +45,8 @@ class Arch_Rebar:
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):

View File

@@ -43,10 +43,8 @@ class BIM_Reextrude:
}
def IsActive(self):
if FreeCADGui.Selection.getSelection():
return True
else:
return False
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
import Draft

View File

@@ -45,7 +45,8 @@ class Arch_Reference:
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):

View File

@@ -42,7 +42,8 @@ class Arch_Roof:
"ToolTip" : QT_TRANSLATE_NOOP("Arch_Roof", "Creates a roof object from the selected wire.")}
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
import ArchComponent

View File

@@ -49,10 +49,8 @@ class Arch_Schedule:
self.taskd = ArchSchedule.ArchScheduleTaskPanel()
def IsActive(self):
if FreeCAD.ActiveDocument:
return True
else:
return False
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
FreeCADGui.addCommand('Arch_Schedule',Arch_Schedule())

View File

@@ -45,7 +45,8 @@ class Arch_SectionPlane:
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):

View File

@@ -47,7 +47,8 @@ class Arch_Site:
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):

View File

@@ -44,10 +44,8 @@ class BIM_Sketch:
}
def IsActive(self):
if FreeCAD.ActiveDocument:
return True
else:
return False
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
from draftutils import params

View File

@@ -48,7 +48,8 @@ class BIM_Slab:
}
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
import DraftTools

View File

@@ -45,7 +45,8 @@ class Arch_Space:
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):

View File

@@ -45,7 +45,8 @@ class Arch_Stairs:
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):

View File

@@ -43,10 +43,8 @@ class BIM_TDPage:
}
def IsActive(self):
if FreeCAD.ActiveDocument:
return True
else:
return False
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
from PySide import QtCore, QtGui

View File

@@ -43,10 +43,8 @@ class BIM_TDView:
}
def IsActive(self):
if FreeCAD.ActiveDocument:
return True
else:
return False
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
import Draft

View File

@@ -66,11 +66,8 @@ class BIM_Trash:
obj.ViewObject.hide()
def IsActive(self):
if FreeCADGui.Selection.getSelection():
return True
else:
return False
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
FreeCADGui.addCommand("BIM_Trash", BIM_Trash())

View File

@@ -45,7 +45,8 @@ class Arch_Truss:
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):

View File

@@ -43,10 +43,8 @@ class BIM_Unclone:
}
def IsActive(self):
if FreeCADGui.Selection.getSelection():
return True
else:
return False
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
import Draft

View File

@@ -92,10 +92,8 @@ class BIM_WPView:
}
def IsActive(self):
if FreeCAD.ActiveDocument:
return True
else:
return False
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
done = False

View File

@@ -55,7 +55,8 @@ class Arch_Wall:
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):
"""Executed when Arch Wall is called.

View File

@@ -50,7 +50,8 @@ class Arch_Window:
def IsActive(self):
return not FreeCAD.ActiveDocument is None
v = hasattr(FreeCADGui.getMainWindow().getActiveWindow(), "getSceneGraph")
return v
def Activated(self):