Merge pull request #7174 from Roy-043/Draft-Fix-EditMode-for-hatch,-facebinder-and-shapestring
Draft: Fix EditMode for hatch, facebinder and shapestring
This commit is contained in:
@@ -29,28 +29,32 @@
|
||||
# @{
|
||||
import FreeCADGui as Gui
|
||||
|
||||
import DraftGui
|
||||
|
||||
from draftviewproviders.view_base import ViewProviderDraft
|
||||
|
||||
|
||||
class ViewProviderFacebinder(ViewProviderDraft):
|
||||
def __init__(self,vobj):
|
||||
|
||||
def __init__(self, vobj):
|
||||
super(ViewProviderFacebinder, self).__init__(vobj)
|
||||
|
||||
def getIcon(self):
|
||||
return ":/icons/Draft_Facebinder_Provider.svg"
|
||||
|
||||
def setEdit(self,vobj,mode):
|
||||
def setEdit(self, vobj, mode):
|
||||
if mode != 0:
|
||||
return None
|
||||
|
||||
import DraftGui # Moving this to the top of the file results in a circular import.
|
||||
taskd = DraftGui.FacebinderTaskPanel()
|
||||
taskd.obj = vobj.Object
|
||||
taskd.update()
|
||||
Gui.Control.showDialog(taskd)
|
||||
return True
|
||||
|
||||
def unsetEdit(self,vobj,mode):
|
||||
Gui.Control.closeDialog()
|
||||
return False
|
||||
def unsetEdit(self, vobj, mode):
|
||||
if mode != 0:
|
||||
return None
|
||||
|
||||
return True
|
||||
|
||||
|
||||
# Alias for compatibility with v0.18 and earlier
|
||||
|
||||
@@ -21,16 +21,19 @@
|
||||
#***************************************************************************
|
||||
|
||||
|
||||
"""This module contains FreeCAD commands for the Draft workbench"""
|
||||
"""Provides the viewprovider code for the Hatch object."""
|
||||
|
||||
import PySide.QtCore as QtCore
|
||||
import PySide.QtGui as QtGui
|
||||
|
||||
import FreeCADGui as Gui
|
||||
|
||||
import os
|
||||
import FreeCAD
|
||||
from draftguitools.gui_hatch import Draft_Hatch_TaskPanel
|
||||
from draftutils.translate import translate
|
||||
|
||||
class ViewProviderDraftHatch:
|
||||
|
||||
|
||||
def __init__(self,vobj):
|
||||
def __init__(self, vobj):
|
||||
|
||||
vobj.Proxy = self
|
||||
|
||||
@@ -42,29 +45,45 @@ class ViewProviderDraftHatch:
|
||||
|
||||
return None
|
||||
|
||||
def __setstate__(self,state):
|
||||
def __setstate__(self, state):
|
||||
|
||||
return None
|
||||
|
||||
def setEdit(self,vobj,mode):
|
||||
def setEdit(self, vobj, mode):
|
||||
# EditMode 1 and 2 are handled by the Part::FeaturePython code.
|
||||
# EditMode 3 (Color) does not make sense for hatches (which do not
|
||||
# have faces) and we let that default to EditMode 0.
|
||||
|
||||
import FreeCADGui
|
||||
if mode == 1 or mode == 2:
|
||||
return None
|
||||
|
||||
taskd = Draft_Hatch_TaskPanel(vobj.Object)
|
||||
taskd.form.File.setFileName(vobj.Object.File)
|
||||
taskd.form.Pattern.setCurrentText(vobj.Object.Pattern)
|
||||
taskd.form.Scale.setValue(vobj.Object.Scale)
|
||||
taskd.form.Rotation.setValue(vobj.Object.Rotation)
|
||||
FreeCADGui.Control.showDialog(taskd)
|
||||
Gui.Control.showDialog(taskd)
|
||||
return True
|
||||
|
||||
def unsetEdit(self,vobj,mode):
|
||||
def unsetEdit(self, vobj, mode):
|
||||
# See setEdit.
|
||||
|
||||
import FreeCADGui
|
||||
if mode == 1 or mode == 2:
|
||||
return None
|
||||
|
||||
FreeCADGui.Control.closeDialog()
|
||||
return True
|
||||
|
||||
def doubleClicked(self,vobj):
|
||||
def setupContextMenu(self, vobj, menu):
|
||||
action1 = QtGui.QAction(Gui.getIcon("Std_TransformManip.svg"),
|
||||
translate("Command", "Transform"), # Context `Command` instead of `draft`.
|
||||
menu)
|
||||
QtCore.QObject.connect(action1,
|
||||
QtCore.SIGNAL("triggered()"),
|
||||
self.transform)
|
||||
menu.addAction(action1)
|
||||
|
||||
self.setEdit(vobj,None)
|
||||
return True # Removes `Transform` and `Set colors` from the default
|
||||
# Part::FeaturePython context menu.
|
||||
|
||||
def transform(self):
|
||||
Gui.runCommand("Std_TransformManip", 0)
|
||||
|
||||
@@ -39,6 +39,8 @@ class ViewProviderShapeString(ViewProviderDraft):
|
||||
return ":/icons/Draft_ShapeString.svg"
|
||||
|
||||
def setEdit(self, vobj, mode):
|
||||
if mode != 0:
|
||||
return None
|
||||
|
||||
self.wb_before_edit = Gui.activeWorkbench()
|
||||
Gui.activateWorkbench("DraftWorkbench")
|
||||
@@ -47,7 +49,9 @@ class ViewProviderShapeString(ViewProviderDraft):
|
||||
|
||||
return True
|
||||
|
||||
def unsetEdit(self,vobj,mode):
|
||||
def unsetEdit(self, vobj, mode):
|
||||
if mode != 0:
|
||||
return None
|
||||
|
||||
self.task.finish()
|
||||
Gui.activateWorkbench(self.wb_before_edit.name())
|
||||
|
||||
Reference in New Issue
Block a user