Button are activated only if view is selected

This commit is contained in:
Andréas Livet 2022-12-08 09:41:37 +01:00
parent 11116df87e
commit aaeea1784f
5 changed files with 19 additions and 14 deletions

View File

@ -1,6 +1,7 @@
import FreeCADGui as Gui
import FreeCAD as App
import ahb_utils
class AHB_New_Step:
def GetResources(self):
return {"MenuText": "New Step",
@ -9,7 +10,7 @@ class AHB_New_Step:
}
def IsActive(self):
return True
return ahb_utils.getCurrentView() is not None
def Activated(self):
import re

View File

@ -1,6 +1,8 @@
import FreeCADGui as Gui
import FreeCAD as App
import ahb_utils
class AHB_View_Annotate:
def GetResources(self):
return {"MenuText": "Annotate view",
@ -9,7 +11,7 @@ class AHB_View_Annotate:
}
def IsActive(self):
return True
return ahb_utils.getCurrentView() is not None
def Activated(self):
workbench = Gui.getWorkbench("AssemblyHandbookWorkbench") #: :type workbench: AssemblyHandbookWorkbench

View File

@ -1,6 +1,8 @@
import FreeCADGui as Gui
import FreeCAD as App
import ahb_utils
class AHB_EditViewSourceParts:
def GetResources(self):
return {"MenuText": "Edit view source parts",
@ -19,9 +21,7 @@ class AHB_EditViewSourceParts:
def Activated(self):
workbench = Gui.getWorkbench("AssemblyHandbookWorkbench") #: :type workbench: AssemblyHandbookWorkbench
view = None
if len(Gui.Selection.getSelection()) == 1 and Gui.Selection.getSelection()[0].TypeId == 'TechDraw::DrawViewPart':
view = Gui.Selection.getSelection()[0]
view = ahb_utils.getCurrentView()
workbench.techDrawExtensions.toggleEditViewSourceParts(view)
class AHB_AddSourcePartsToView:

View File

@ -1,6 +1,7 @@
import FreeCADGui as Gui
import FreeCAD as App
import ahb_utils
class AHB_SetViewDirection:
def GetResources(self):
return {"MenuText": "Set view direction",
@ -9,22 +10,15 @@ class AHB_SetViewDirection:
}
def IsActive(self):
view = self._get_view()
return view is not None
return ahb_utils.getCurrentView() is not None
def Activated(self):
workbench = Gui.getWorkbench("AssemblyHandbookWorkbench") #: :type workbench: AssemblyHandbookWorkbench
view = self._get_view()
view = ahb_utils.getCurrentView()
if view is None:
raise Exception("Please select a TechDraw view")
workbench.techDrawExtensions.setCurrentViewDirection(view)
def _get_view(self):
view = None if len(Gui.Selection.getSelection()) == 0 else Gui.Selection.getSelection()[0]
if view is not None and view.TypeId != 'TechDraw::DrawViewPart':
view = None
return view
from ahb_command import AHB_CommandWrapper
AHB_CommandWrapper.addGuiCommand('AHB_view_set_direction', AHB_SetViewDirection())

8
ahb_utils.py Normal file
View File

@ -0,0 +1,8 @@
import FreeCADGui as Gui
def getCurrentView():
currentSel = Gui.Selection.getSelection()
if len(currentSel) == 1 and currentSel[0].TypeId == 'TechDraw::DrawViewPart':
return currentSel[0]
else:
return None