From df3a06399b4c479c6c5e2ec15fb1d3b7292a5a67 Mon Sep 17 00:00:00 2001 From: vocx-fc Date: Mon, 16 Mar 2020 19:17:46 -0600 Subject: [PATCH] Draft: move Draft_ToggleGrid to gui_grid module --- src/Mod/Draft/CMakeLists.txt | 1 + src/Mod/Draft/DraftTools.py | 23 +------ src/Mod/Draft/draftguitools/gui_grid.py | 79 +++++++++++++++++++++++++ 3 files changed, 81 insertions(+), 22 deletions(-) create mode 100644 src/Mod/Draft/draftguitools/gui_grid.py diff --git a/src/Mod/Draft/CMakeLists.txt b/src/Mod/Draft/CMakeLists.txt index b5048c9286..cf2844e8d9 100644 --- a/src/Mod/Draft/CMakeLists.txt +++ b/src/Mod/Draft/CMakeLists.txt @@ -99,6 +99,7 @@ SET(Draft_GUI_tools draftguitools/gui_lineops.py draftguitools/gui_togglemodes.py draftguitools/gui_groups.py + draftguitools/gui_grid.py draftguitools/README.md ) diff --git a/src/Mod/Draft/DraftTools.py b/src/Mod/Draft/DraftTools.py index 2816304b38..ee758a6977 100644 --- a/src/Mod/Draft/DraftTools.py +++ b/src/Mod/Draft/DraftTools.py @@ -85,6 +85,7 @@ from draftguitools.gui_togglemodes import ToggleContinueMode from draftguitools.gui_togglemodes import ToggleDisplayMode from draftguitools.gui_groups import AddToGroup from draftguitools.gui_groups import SelectGroup +from draftguitools.gui_grid import ToggleGrid # import DraftFillet import drafttaskpanels.task_shapestring as task_shapestring import drafttaskpanels.task_scale as task_scale @@ -4704,27 +4705,6 @@ class Draft_Clone(Modifier): ToDo.delay(FreeCADGui.runCommand, "Draft_Move") -class ToggleGrid(): - """The Draft ToggleGrid command definition""" - - def GetResources(self): - return {'Pixmap' : 'Draft_Grid', - 'Accel' : "G,R", - 'MenuText': QtCore.QT_TRANSLATE_NOOP("Draft_ToggleGrid", "Toggle Grid"), - 'ToolTip' : QtCore.QT_TRANSLATE_NOOP("Draft_ToggleGrid", "Toggles the Draft grid on/off"), - 'CmdType' : 'ForEdit'} - - def Activated(self): - if hasattr(FreeCADGui,"Snapper"): - FreeCADGui.Snapper.setTrackers() - if FreeCADGui.Snapper.grid: - if FreeCADGui.Snapper.grid.Visible: - FreeCADGui.Snapper.grid.off() - FreeCADGui.Snapper.forceGridOff=True - else: - FreeCADGui.Snapper.grid.on() - FreeCADGui.Snapper.forceGridOff=False - class Heal(): """The Draft Heal command definition""" @@ -5340,7 +5320,6 @@ FreeCADGui.addCommand('Draft_Stretch',Stretch()) # context commands FreeCADGui.addCommand('Draft_ApplyStyle',ApplyStyle()) FreeCADGui.addCommand('Draft_Shape2DView',Shape2DView()) -FreeCADGui.addCommand('Draft_ToggleGrid',ToggleGrid()) FreeCADGui.addCommand('Draft_FlipDimension',Draft_FlipDimension()) FreeCADGui.addCommand('Draft_AutoGroup',SetAutoGroup()) FreeCADGui.addCommand('Draft_AddConstruction',Draft_AddConstruction()) diff --git a/src/Mod/Draft/draftguitools/gui_grid.py b/src/Mod/Draft/draftguitools/gui_grid.py new file mode 100644 index 0000000000..d500a14e09 --- /dev/null +++ b/src/Mod/Draft/draftguitools/gui_grid.py @@ -0,0 +1,79 @@ +# *************************************************************************** +# * (c) 2009, 2010 Yorik van Havre * +# * (c) 2009, 2010 Ken Cline * +# * (c) 2020 Eliud Cabrera Castillo * +# * * +# * This file is part of the FreeCAD CAx development system. * +# * * +# * 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. * +# * * +# * FreeCAD 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 FreeCAD; if not, write to the Free Software * +# * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 * +# * USA * +# * * +# *************************************************************************** +"""Provide the Draft_ToggleGrid command to show the Draft grid.""" +## @package gui_grid +# \ingroup DRAFT +# \brief Provide the Draft_ToggleGrid command to show the Draft grid. + +from PySide.QtCore import QT_TRANSLATE_NOOP + +import FreeCADGui as Gui +import draftguitools.gui_base as gui_base +from draftutils.translate import _tr + + +class ToggleGrid(gui_base.GuiCommandSimplest): + """The Draft ToggleGrid command definition. + + If the grid tracker is invisible (hidden), it makes it visible (shown); + and if it is visible, it hides it. + + It inherits `GuiCommandSimplest` to set up the document + and other behavior. See this class for more information. + """ + + def __init__(self): + super().__init__(name=_tr("Toggle grid")) + + def GetResources(self): + """Set icon, menu and tooltip.""" + _tip = "Toggles the Draft grid on and off." + + d = {'Pixmap': 'Draft_Grid', + 'Accel': "G,R", + 'MenuText': QT_TRANSLATE_NOOP("Draft_ToggleGrid", + "Toggle grid"), + 'ToolTip': QT_TRANSLATE_NOOP("Draft_ToggleGrid", + _tip), + 'CmdType': 'ForEdit'} + + return d + + def Activated(self): + """Execute when the command is called.""" + super().Activated() + + if hasattr(Gui, "Snapper"): + Gui.Snapper.setTrackers() + if Gui.Snapper.grid: + if Gui.Snapper.grid.Visible: + Gui.Snapper.grid.off() + Gui.Snapper.forceGridOff = True + else: + Gui.Snapper.grid.on() + Gui.Snapper.forceGridOff = False + + +Gui.addCommand('Draft_ToggleGrid', ToggleGrid())