From 731b203c5e4fa059319e0cf19ef7b86e8d6a3de5 Mon Sep 17 00:00:00 2001 From: Youen Date: Sun, 30 Apr 2023 19:29:09 +0200 Subject: [PATCH] Added possibility to render multiple pages in batch --- ahb_cmd_view_refresh.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/ahb_cmd_view_refresh.py b/ahb_cmd_view_refresh.py index 78ae684..893f28d 100644 --- a/ahb_cmd_view_refresh.py +++ b/ahb_cmd_view_refresh.py @@ -4,7 +4,7 @@ import FreeCAD as App class AHB_RefreshView: def GetResources(self): return {"MenuText": "Refresh page (final quality)", - "ToolTip": "Redraws the current page", + "ToolTip": "Redraws the current page, or if one or more pages are selected, redraw all the selected pages", "Pixmap": "" } @@ -14,9 +14,20 @@ class AHB_RefreshView: def Activated(self): workbench = Gui.getWorkbench("AssemblyHandbookWorkbench") #: :type workbench: AssemblyHandbookWorkbench - page = workbench.techDrawExtensions.getActivePage() - if page is not None: - workbench.techDrawExtensions.forceRedrawPage(page, fast_render = False) + + selection = Gui.Selection.getSelection() + has_selected_pages = len(selection) > 0 + for s in selection: + if s.TypeId != 'TechDraw::DrawPage': + has_selected_pages = False + + if has_selected_pages: + for page in selection: + workbench.techDrawExtensions.forceRedrawPage(page, fast_render = False) + else: + page = workbench.techDrawExtensions.getActivePage() + if page is not None: + workbench.techDrawExtensions.forceRedrawPage(page, fast_render = False) from ahb_command import AHB_CommandWrapper AHB_CommandWrapper.addGuiCommand('AHB_view_refresh', AHB_RefreshView())