BIM: Only dusplay context menu items when in BIM WB - fixes #17043

This commit is contained in:
Yorik van Havre
2024-10-15 11:23:34 +02:00
committed by Chris Hennes
parent 19fa91253f
commit 73f3cd9f95
16 changed files with 53 additions and 1 deletions

View File

@@ -578,6 +578,8 @@ class _ViewProviderAxis:
return True
def setupContextMenu(self, vobj, menu):
if FreeCADGui.activeWorkbench().name() != 'BIMWorkbench':
return
actionEdit = QtGui.QAction(translate("Arch", "Edit"),
menu)
QtCore.QObject.connect(actionEdit,

View File

@@ -200,6 +200,8 @@ class _ViewProviderAxisSystem:
self.edit()
def setupContextMenu(self, vobj, menu):
if FreeCADGui.activeWorkbench().name() != 'BIMWorkbench':
return
actionEdit = QtGui.QAction(translate("Arch", "Edit"),
menu)
QtCore.QObject.connect(actionEdit,

View File

@@ -305,6 +305,8 @@ class _ViewProviderBuilding(ArchFloor._ViewProviderFloor):
def setupContextMenu(self,vobj,menu):
from PySide import QtCore,QtGui
import Arch_rc
if FreeCADGui.activeWorkbench().name() != 'BIMWorkbench':
return
action1 = QtGui.QAction(QtGui.QIcon(":/icons/Arch_BuildingPart.svg"),"Convert to BuildingPart",menu)
QtCore.QObject.connect(action1,QtCore.SIGNAL("triggered()"),self.convertToBuildingPart)
menu.addAction(action1)

View File

@@ -803,7 +803,8 @@ class ViewProviderBuildingPart:
def setupContextMenu(self, vobj, menu):
from PySide import QtCore, QtGui
import Draft_rc
if FreeCADGui.activeWorkbench().name() != 'BIMWorkbench':
return
if (not hasattr(vobj,"DoubleClickActivates")) or vobj.DoubleClickActivates:
if FreeCADGui.ActiveDocument.ActiveView.getActiveObject("Arch") == self.Object:
menuTxt = translate("Arch", "Deactivate")

View File

@@ -1498,6 +1498,8 @@ class ViewProviderComponent:
The context menu already assembled prior to this method being
called.
"""
if FreeCADGui.activeWorkbench().name() != 'BIMWorkbench':
return
self.contextMenuAddEdit(menu)
self.contextMenuAddToggleSubcomponents(menu)

View File

@@ -399,6 +399,8 @@ class _ViewProviderFloor:
from PySide import QtCore,QtGui
import Arch_rc
if FreeCADGui.activeWorkbench().name() != 'BIMWorkbench':
return
action1 = QtGui.QAction(QtGui.QIcon(":/icons/Arch_BuildingPart.svg"),"Convert to BuildingPart",menu)
QtCore.QObject.connect(action1,QtCore.SIGNAL("triggered()"),self.convertToBuildingPart)
menu.addAction(action1)

View File

@@ -282,6 +282,8 @@ class ViewProviderArchGrid:
return True
def setupContextMenu(self, vobj, menu):
if FreeCADGui.activeWorkbench().name() != 'BIMWorkbench':
return
actionEdit = QtGui.QAction(translate("Arch", "Edit"),
menu)
QtCore.QObject.connect(actionEdit,

View File

@@ -53,6 +53,8 @@ class IfcContextView:
return True
def setupContextMenu(self, vobj, menu):
if FreeCADGui.activeWorkbench().name() != 'BIMWorkbench':
return
actionEdit = QtGui.QAction(translate("Arch", "Edit"),
menu)
QtCore.QObject.connect(actionEdit,

View File

@@ -84,6 +84,8 @@ class _ViewProviderArchMaterialContainer:
self.Object = vobj.Object
def setupContextMenu(self, vobj, menu):
if FreeCADGui.activeWorkbench().name() != 'BIMWorkbench':
return
actionMergeByName = QtGui.QAction(QtGui.QIcon(":/icons/Arch_Material_Group.svg"),
translate("Arch", "Merge duplicates"),
menu)
@@ -360,6 +362,8 @@ class _ViewProviderArchMaterial:
return True
def setupContextMenu(self, vobj, menu):
if FreeCADGui.activeWorkbench().name() != 'BIMWorkbench':
return
actionEdit = QtGui.QAction(translate("Arch", "Edit"),
menu)
actionEdit.triggered.connect(self.edit)
@@ -660,6 +664,8 @@ class _ViewProviderArchMultiMaterial:
self.edit()
def setupContextMenu(self, vobj, menu):
if FreeCADGui.activeWorkbench().name() != 'BIMWorkbench':
return
actionEdit = QtGui.QAction(translate("Arch", "Edit"),
menu)
actionEdit.triggered.connect(self.edit)

View File

@@ -649,6 +649,9 @@ class ViewProviderArchReference:
def setupContextMenu(self, vobj, menu):
if FreeCADGui.activeWorkbench().name() != 'BIMWorkbench':
return
actionEdit = QtGui.QAction(translate("Arch", "Edit"),
menu)
QtCore.QObject.connect(actionEdit,

View File

@@ -429,6 +429,10 @@ class _ViewProviderArchSchedule:
self.edit()
def setupContextMenu(self, vobj, menu):
if FreeCADGui.activeWorkbench().name() != 'BIMWorkbench':
return
actionEdit = QtGui.QAction(translate("Arch", "Edit"),
menu)
QtCore.QObject.connect(actionEdit,

View File

@@ -1135,6 +1135,9 @@ class _ViewProviderSectionPlane:
self.edit()
def setupContextMenu(self, vobj, menu):
if FreeCADGui.activeWorkbench().name() != 'BIMWorkbench':
return
actionEdit = QtGui.QAction(translate("Arch", "Edit"),
menu)
QtCore.QObject.connect(actionEdit,

View File

@@ -855,6 +855,10 @@ class _ViewProviderSite:
return True
def setupContextMenu(self, vobj, menu):
if FreeCADGui.activeWorkbench().name() != 'BIMWorkbench':
return
actionEdit = QtGui.QAction(translate("Arch", "Edit"),
menu)
QtCore.QObject.connect(actionEdit,

View File

@@ -1327,6 +1327,10 @@ class _ViewProviderWall(ArchComponent.ViewProviderComponent):
return ArchComponent.ViewProviderComponent.setDisplayMode(self,mode)
def setupContextMenu(self, vobj, menu):
if FreeCADGui.activeWorkbench().name() != 'BIMWorkbench':
return
super().contextMenuAddEdit(menu)
actionFlipDirection = QtGui.QAction(QtGui.QIcon(":/icons/Arch_Wall_Tree.svg"),

View File

@@ -817,6 +817,10 @@ class _ViewProviderWindow(ArchComponent.ViewProviderComponent):
return True
def setupContextMenu(self, vobj, menu):
if FreeCADGui.activeWorkbench().name() != 'BIMWorkbench':
return
hingeIdxs = self.getHingeEdgeIndices()
super().contextMenuAddEdit(menu)

View File

@@ -97,6 +97,9 @@ class ifc_vp_object:
from nativeifc import ifc_materials
from PySide import QtCore, QtGui # lazy import
if FreeCADGui.activeWorkbench().name() != 'BIMWorkbench':
return
icon = QtGui.QIcon(":/icons/IFC.svg")
element = ifc_tools.get_ifc_element(vobj.Object)
ifc_menu = None
@@ -404,6 +407,9 @@ class ifc_vp_document(ifc_vp_object):
from PySide import QtCore, QtGui # lazy import
if FreeCADGui.activeWorkbench().name() != 'BIMWorkbench':
return
ifc_menu = super().setupContextMenu(vobj, menu)
if not ifc_menu:
ifc_menu = menu
@@ -584,6 +590,9 @@ class ifc_vp_material:
from nativeifc import ifc_psets
from PySide import QtCore, QtGui # lazy import
if FreeCADGui.activeWorkbench().name() != 'BIMWorkbench':
return
icon = QtGui.QIcon(":/icons/IFC.svg")
if ifc_psets.has_psets(self.Object):
action_props = QtGui.QAction(icon, "Expand property sets", menu)