Browse Source

Button are activated only if view is selected

dev/better-annotations
Andréas Livet 2 years ago
parent
commit
aaeea1784f
  1. 3
      ahb_cmd_new_step.py
  2. 4
      ahb_cmd_view_annotate.py
  3. 6
      ahb_cmd_view_edit_source_parts.py
  4. 12
      ahb_cmd_view_set_direction.py
  5. 8
      ahb_utils.py

3
ahb_cmd_new_step.py

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

4
ahb_cmd_view_annotate.py

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

6
ahb_cmd_view_edit_source_parts.py

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

12
ahb_cmd_view_set_direction.py

@ -1,6 +1,7 @@
import FreeCADGui as Gui import FreeCADGui as Gui
import FreeCAD as App import FreeCAD as App
import ahb_utils
class AHB_SetViewDirection: class AHB_SetViewDirection:
def GetResources(self): def GetResources(self):
return {"MenuText": "Set view direction", return {"MenuText": "Set view direction",
@ -9,22 +10,15 @@ class AHB_SetViewDirection:
} }
def IsActive(self): def IsActive(self):
view = self._get_view() return ahb_utils.getCurrentView() is not None
return view is not None
def Activated(self): def Activated(self):
workbench = Gui.getWorkbench("AssemblyHandbookWorkbench") #: :type workbench: AssemblyHandbookWorkbench workbench = Gui.getWorkbench("AssemblyHandbookWorkbench") #: :type workbench: AssemblyHandbookWorkbench
view = self._get_view() view = ahb_utils.getCurrentView()
if view is None: if view is None:
raise Exception("Please select a TechDraw view") raise Exception("Please select a TechDraw view")
workbench.techDrawExtensions.setCurrentViewDirection(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 from ahb_command import AHB_CommandWrapper
AHB_CommandWrapper.addGuiCommand('AHB_view_set_direction', AHB_SetViewDirection()) AHB_CommandWrapper.addGuiCommand('AHB_view_set_direction', AHB_SetViewDirection())

8
ahb_utils.py

@ -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
Loading…
Cancel
Save