From a1e8f97be29dfa261566582b821ee8c72c8d2cb2 Mon Sep 17 00:00:00 2001 From: vocx-fc Date: Thu, 5 Mar 2020 22:26:23 -0600 Subject: [PATCH] Draft: move WorkingPlaneProxy to separate module Previously it was in the `gui_selectplane` module but we prefer to place it in its own module so that the files are as small as possible. --- src/Mod/Draft/CMakeLists.txt | 1 + src/Mod/Draft/DraftTools.py | 1 + src/Mod/Draft/draftguitools/gui_planeproxy.py | 79 +++++++++++++++++++ .../Draft/draftguitools/gui_selectplane.py | 40 ---------- 4 files changed, 81 insertions(+), 40 deletions(-) create mode 100644 src/Mod/Draft/draftguitools/gui_planeproxy.py diff --git a/src/Mod/Draft/CMakeLists.txt b/src/Mod/Draft/CMakeLists.txt index 33bf9751ab..c32795e1c3 100644 --- a/src/Mod/Draft/CMakeLists.txt +++ b/src/Mod/Draft/CMakeLists.txt @@ -80,6 +80,7 @@ SET(Draft_GUI_tools draftguitools/gui_circulararray.py draftguitools/gui_orthoarray.py draftguitools/gui_polararray.py + draftguitools/gui_planeproxy.py draftguitools/gui_selectplane.py draftguitools/gui_arrays.py draftguitools/gui_snaps.py diff --git a/src/Mod/Draft/DraftTools.py b/src/Mod/Draft/DraftTools.py index fb3456818f..569c8d0704 100644 --- a/src/Mod/Draft/DraftTools.py +++ b/src/Mod/Draft/DraftTools.py @@ -76,6 +76,7 @@ if not hasattr(FreeCAD, "DraftWorkingPlane"): # --------------------------------------------------------------------------- import draftguitools.gui_edit import draftguitools.gui_selectplane +import draftguitools.gui_planeproxy # import DraftFillet import drafttaskpanels.task_shapestring as task_shapestring import drafttaskpanels.task_scale as task_scale diff --git a/src/Mod/Draft/draftguitools/gui_planeproxy.py b/src/Mod/Draft/draftguitools/gui_planeproxy.py new file mode 100644 index 0000000000..270dd04032 --- /dev/null +++ b/src/Mod/Draft/draftguitools/gui_planeproxy.py @@ -0,0 +1,79 @@ +# *************************************************************************** +# * Copyright (c) 2019 Yorik van Havre * +# * * +# * This program is free software; you can redistribute it and/or modify * +# * it under the terms of the GNU Lesser General Public License (LGPL) * +# * as published by the Free Software Foundation; either version 2 of * +# * the License, or (at your option) any later version. * +# * for detail see the LICENCE text file. * +# * * +# * This program is distributed in the hope that it will be useful, * +# * but WITHOUT ANY WARRANTY; without even the implied warranty of * +# * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +# * GNU Library General Public License for more details. * +# * * +# * You should have received a copy of the GNU Library General Public * +# * License along with this program; if not, write to the Free Software * +# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +# * USA * +# * * +# *************************************************************************** +"""Provides the Draft WorkingPlaneProxy tool.""" +## @package gui_planeproxy +# \ingroup DRAFT +# \brief This module provides the Draft WorkingPlaneProxy tool. + +from PySide.QtCore import QT_TRANSLATE_NOOP + +import FreeCAD as App +import FreeCADGui as Gui +import Draft_rc + +# The module is used to prevent complaints from code checkers (flake8) +True if Draft_rc.__name__ else False + +__title__ = "FreeCAD Draft Workbench GUI Tools - Working plane-related tools" +__author__ = ("Yorik van Havre, Werner Mayer, Martin Burbaum, Ken Cline, " + "Dmitry Chigrin") +__url__ = "https://www.freecadweb.org" + + +class Draft_WorkingPlaneProxy: + """The Draft_WorkingPlaneProxy command definition.""" + + def GetResources(self): + """Set icon, menu and tooltip.""" + _menu = "Create working plane proxy" + _tip = ("Creates a proxy object from the current working plane.\n" + "Once the object is created double click it in the tree view " + "to restore the camera position and objects' visibilities.\n" + "Then you can use it to save a different camera position " + "and objects' states any time you need.") + d = {'Pixmap': 'Draft_PlaneProxy', + 'MenuText': QT_TRANSLATE_NOOP("Draft_SetWorkingPlaneProxy", + _menu), + 'ToolTip': QT_TRANSLATE_NOOP("Draft_SetWorkingPlaneProxy", + _tip)} + return d + + def IsActive(self): + """Return True when this command should be available.""" + if Gui.ActiveDocument: + return True + else: + return False + + def Activated(self): + """Execute when the command is called.""" + if hasattr(App, "DraftWorkingPlane"): + App.ActiveDocument.openTransaction("Create WP proxy") + Gui.addModule("Draft") + _cmd = "Draft.makeWorkingPlaneProxy(" + _cmd += "FreeCAD.DraftWorkingPlane.getPlacement()" + _cmd += ")" + Gui.doCommand(_cmd) + App.ActiveDocument.commitTransaction() + App.ActiveDocument.recompute() + + +Gui.addCommand('Draft_WorkingPlaneProxy', Draft_WorkingPlaneProxy()) diff --git a/src/Mod/Draft/draftguitools/gui_selectplane.py b/src/Mod/Draft/draftguitools/gui_selectplane.py index fb9ca62319..60834847cd 100644 --- a/src/Mod/Draft/draftguitools/gui_selectplane.py +++ b/src/Mod/Draft/draftguitools/gui_selectplane.py @@ -494,44 +494,4 @@ class Draft_SelectPlane: FreeCADGui.doCommandGui("FreeCADGui.Snapper.setGrid()") -class Draft_WorkingPlaneProxy: - """The Draft_WorkingPlaneProxy command definition.""" - - def GetResources(self): - """Set icon, menu and tooltip.""" - _menu = "Create working plane proxy" - _tip = ("Creates a proxy object from the current working plane.\n" - "Once the object is created double click it in the tree view " - "to restore the camera position and objects' visibilities.\n" - "Then you can use it to save a different camera position " - "and objects' states any time you need.") - d = {'Pixmap': 'Draft_PlaneProxy', - 'MenuText': QT_TRANSLATE_NOOP("Draft_SetWorkingPlaneProxy", - _menu), - 'ToolTip': QT_TRANSLATE_NOOP("Draft_SetWorkingPlaneProxy", - _tip)} - return d - - def IsActive(self): - """Return True when this command should be available.""" - if FreeCADGui.ActiveDocument: - return True - else: - return False - - def Activated(self): - """Execute when the command is called.""" - if hasattr(FreeCAD, "DraftWorkingPlane"): - FreeCAD.ActiveDocument.openTransaction("Create WP proxy") - FreeCADGui.addModule("Draft") - _cmd = "Draft.makeWorkingPlaneProxy(" - _cmd += "FreeCAD.DraftWorkingPlane.getPlacement()" - _cmd += ")" - FreeCADGui.doCommand(_cmd) - FreeCAD.ActiveDocument.commitTransaction() - FreeCAD.ActiveDocument.recompute() - - FreeCADGui.addCommand('Draft_SelectPlane', Draft_SelectPlane()) -FreeCADGui.addCommand('Draft_WorkingPlaneProxy', - Draft_WorkingPlaneProxy())