| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | __title__ = "BasicShapes.ViewProviderShapes" |
| | __author__ = "Werner Mayer" |
| | __url__ = "https://www.freecad.org" |
| | __doc__ = "Basic shapes" |
| |
|
| |
|
| | import os |
| | import FreeCAD |
| | import FreeCADGui |
| |
|
| | from PySide import QtGui |
| |
|
| |
|
| | class ViewProviderTube: |
| | def __init__(self, obj): |
| | """Set this object to the proxy object of the actual view provider""" |
| | obj.Proxy = self |
| | obj.addExtension("PartGui::ViewProviderAttachExtensionPython") |
| | obj.setIgnoreOverlayIcon(True, "PartGui::ViewProviderAttachExtensionPython") |
| |
|
| | def attach(self, obj): |
| | """Setup the scene sub-graph of the view provider, this method is mandatory""" |
| | return |
| |
|
| | def setupContextMenu(self, viewObject, menu): |
| | action = menu.addAction( |
| | FreeCAD.Qt.translate("QObject", "Edit %1").replace("%1", viewObject.Object.Label) |
| | ) |
| | action.triggered.connect(lambda: self.startDefaultEditMode(viewObject)) |
| | return False |
| |
|
| | def startDefaultEditMode(self, viewObject): |
| | document = viewObject.Document.Document |
| | if not document.HasPendingTransaction: |
| | text = FreeCAD.Qt.translate("QObject", "Edit %1").replace("%1", viewObject.Object.Label) |
| | document.openTransaction(text) |
| | viewObject.Document.setEdit(viewObject.Object, 0) |
| |
|
| | def setEdit(self, viewObject, mode): |
| | if mode == 0: |
| | FreeCADGui.Control.showDialog(TaskTubeUI(viewObject)) |
| | return True |
| |
|
| | def unsetEdit(self, viewObject, mode): |
| | if mode == 0: |
| | FreeCADGui.Control.closeDialog() |
| | return True |
| |
|
| | def getIcon(self): |
| | return ":/icons/parametric/Part_Tube_Parametric.svg" |
| |
|
| | def dumps(self): |
| | return None |
| |
|
| | def loads(self, state): |
| | return None |
| |
|
| |
|
| | class TaskTubeUI: |
| | """A default task panel for editing tube objects.""" |
| |
|
| | def __init__(self, viewObject): |
| | self.viewObject = viewObject |
| | ui_file = os.path.join(os.path.dirname(__file__), "TaskTube.ui") |
| | ui = FreeCADGui.UiLoader() |
| | self.form = ui.load(ui_file) |
| |
|
| | object = self.viewObject.Object |
| | self.form.tubeOuterRadius.setProperty("rawValue", object.OuterRadius.Value) |
| | self.form.tubeInnerRadius.setProperty("rawValue", object.InnerRadius.Value) |
| | self.form.tubeHeight.setProperty("rawValue", object.Height.Value) |
| |
|
| | self.form.tubeOuterRadius.valueChanged.connect(lambda x: self.onChangeOuterRadius(x)) |
| | self.form.tubeInnerRadius.valueChanged.connect(lambda x: self.onChangeInnerRadius(x)) |
| | self.form.tubeHeight.valueChanged.connect(lambda x: self.onChangeHeight(x)) |
| |
|
| | FreeCADGui.ExpressionBinding(self.form.tubeOuterRadius).bind(object, "OuterRadius") |
| | FreeCADGui.ExpressionBinding(self.form.tubeInnerRadius).bind(object, "InnerRadius") |
| | FreeCADGui.ExpressionBinding(self.form.tubeHeight).bind(object, "Height") |
| |
|
| | def onChangeOuterRadius(self, radius): |
| | object = self.viewObject.Object |
| | object.OuterRadius = radius |
| | object.recompute() |
| |
|
| | def onChangeInnerRadius(self, radius): |
| | object = self.viewObject.Object |
| | object.InnerRadius = radius |
| | object.recompute() |
| |
|
| | def onChangeHeight(self, height): |
| | object = self.viewObject.Object |
| | object.Height = height |
| | object.recompute() |
| |
|
| | def accept(self): |
| | object = self.viewObject.Object |
| | if not object.isValid(): |
| | QtGui.QMessageBox.warning(None, "Error", object.getStatusString()) |
| | return False |
| | document = self.viewObject.Document.Document |
| | document.commitTransaction() |
| | document.recompute() |
| | self.viewObject.Document.resetEdit() |
| | return True |
| |
|
| | def reject(self): |
| | guidocument = self.viewObject.Document |
| | document = guidocument.Document |
| | document.abortTransaction() |
| | document.recompute() |
| | guidocument.resetEdit() |
| | return True |
| |
|