|
|
|
|
@@ -249,9 +249,6 @@ class DraftToolBar:
|
|
|
|
|
self.sourceCmd = None
|
|
|
|
|
self.cancel = None
|
|
|
|
|
self.pointcallback = None
|
|
|
|
|
self.taskmode = 1 # Draft.getParam("UiMode",1)
|
|
|
|
|
# taskmode = 0 was used by draft toolbar that is now obsolete.
|
|
|
|
|
# print("taskmode: ",str(self.taskmode))
|
|
|
|
|
|
|
|
|
|
# OBSOLETE BUT STILL USED BY SOME ADDONS AND MACROS
|
|
|
|
|
self.paramcolor = Draft.getParam("color",255)>>8
|
|
|
|
|
@@ -294,52 +291,19 @@ class DraftToolBar:
|
|
|
|
|
"angleValue":{"value":"avalue","unit":"Angle"}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if self.taskmode:
|
|
|
|
|
# add only a dummy widget, since widgets are created on demand
|
|
|
|
|
self.baseWidget = DraftBaseWidget()
|
|
|
|
|
self.tray = QtGui.QToolBar(None)
|
|
|
|
|
self.tray.setObjectName("Draft tray")
|
|
|
|
|
self.tray.setWindowTitle("Draft tray")
|
|
|
|
|
self.toptray = self.tray
|
|
|
|
|
self.bottomtray = self.tray
|
|
|
|
|
self.setupTray()
|
|
|
|
|
self.setupStyle()
|
|
|
|
|
mw = FreeCADGui.getMainWindow()
|
|
|
|
|
mw.addToolBar(self.tray)
|
|
|
|
|
self.tray.setParent(mw)
|
|
|
|
|
self.tray.hide()
|
|
|
|
|
|
|
|
|
|
else: # self.taskmode == 0 Draft toolbar is obsolete and has been disabled (February 2020)
|
|
|
|
|
# create the draft Toolbar
|
|
|
|
|
self.draftWidget = QtGui.QDockWidget()
|
|
|
|
|
self.baseWidget = DraftDockWidget()
|
|
|
|
|
self.draftWidget.setObjectName("draftToolbar")
|
|
|
|
|
self.scroll = QtGui.QScrollArea()
|
|
|
|
|
self.scroll.setWidgetResizable(True)
|
|
|
|
|
self.scroll.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
|
|
|
|
|
self.scroll.setWidget(self.baseWidget)
|
|
|
|
|
self.draftWidget.setTitleBarWidget(self.scroll)
|
|
|
|
|
p = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/General")
|
|
|
|
|
size = p.GetInt("ToolbarIconSize", 24)
|
|
|
|
|
if size < 24:
|
|
|
|
|
scale = 3.5
|
|
|
|
|
else:
|
|
|
|
|
scale = 2.5
|
|
|
|
|
self.scroll.setMinimumHeight(size * scale)
|
|
|
|
|
self.draftWidget.setWindowTitle(translate("draft", "Draft Command Bar"))
|
|
|
|
|
self.mw = FreeCADGui.getMainWindow()
|
|
|
|
|
self.mw.addDockWidget(QtCore.Qt.TopDockWidgetArea,self.draftWidget)
|
|
|
|
|
self.draftWidget.setVisible(False)
|
|
|
|
|
self.draftWidget.toggleViewAction().setVisible(False)
|
|
|
|
|
self.baseWidget.setObjectName("draftToolbar")
|
|
|
|
|
self.layout = QtGui.QHBoxLayout(self.baseWidget)
|
|
|
|
|
self.layout.setObjectName("layout")
|
|
|
|
|
self.toptray = self.layout
|
|
|
|
|
self.bottomtray = self.layout
|
|
|
|
|
self.setupToolBar()
|
|
|
|
|
self.setupTray()
|
|
|
|
|
self.setupStyle()
|
|
|
|
|
self.retranslateUi(self.baseWidget)
|
|
|
|
|
# add only a dummy widget, since widgets are created on demand
|
|
|
|
|
self.baseWidget = DraftBaseWidget()
|
|
|
|
|
self.tray = QtGui.QToolBar(None)
|
|
|
|
|
self.tray.setObjectName("Draft tray")
|
|
|
|
|
self.tray.setWindowTitle("Draft tray")
|
|
|
|
|
self.toptray = self.tray
|
|
|
|
|
self.bottomtray = self.tray
|
|
|
|
|
self.setupTray()
|
|
|
|
|
self.setupStyle()
|
|
|
|
|
mw = FreeCADGui.getMainWindow()
|
|
|
|
|
mw.addToolBar(self.tray)
|
|
|
|
|
self.tray.setParent(mw)
|
|
|
|
|
self.tray.hide()
|
|
|
|
|
|
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
|
# General UI setup
|
|
|
|
|
@@ -447,15 +411,6 @@ class DraftToolBar:
|
|
|
|
|
boldtxt.setBold(True)
|
|
|
|
|
self.cmdlabel.setFont(boldtxt)
|
|
|
|
|
|
|
|
|
|
# subcommands for draft Edit, OBSOLETE
|
|
|
|
|
|
|
|
|
|
# self.addButton = self._pushbutton("addButton", self.layout, icon="Draft_AddPoint", width=22, checkable=True)
|
|
|
|
|
# self.delButton = self._pushbutton("delButton", self.layout, icon="Draft_DelPoint", width=22, checkable=True)
|
|
|
|
|
# self.sharpButton = self._pushbutton("sharpButton", self.layout, icon="Draft_BezSharpNode", width=22, checkable=True)
|
|
|
|
|
# self.tangentButton = self._pushbutton("tangentButton", self.layout, icon="Draft_BezTanNode", width=22, checkable=True)
|
|
|
|
|
# self.symmetricButton = self._pushbutton("symmetricButton", self.layout, icon="Draft_BezSymNode", width=22, checkable=True)
|
|
|
|
|
# self.arc3PtButton = self._pushbutton("arc3PtButton", self.layout, icon="Draft_Arc", width=22, checkable=True)
|
|
|
|
|
|
|
|
|
|
# point
|
|
|
|
|
|
|
|
|
|
xl = QtGui.QHBoxLayout()
|
|
|
|
|
@@ -565,16 +520,10 @@ class DraftToolBar:
|
|
|
|
|
self.isSubelementMode = self._checkbox("isSubelementMode",self.layout,checked=False)
|
|
|
|
|
|
|
|
|
|
# spacer
|
|
|
|
|
if not self.taskmode:
|
|
|
|
|
# self.taskmode == 0 Draft toolbar is obsolete and has been disabled (February 2020)
|
|
|
|
|
spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding,
|
|
|
|
|
QtGui.QSizePolicy.Minimum)
|
|
|
|
|
else:
|
|
|
|
|
spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum,
|
|
|
|
|
QtGui.QSizePolicy.Expanding)
|
|
|
|
|
spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum,
|
|
|
|
|
QtGui.QSizePolicy.Expanding)
|
|
|
|
|
self.layout.addItem(spacerItem)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
QtCore.QObject.connect(self.xValue,QtCore.SIGNAL("valueChanged(double)"),self.changeXValue)
|
|
|
|
|
QtCore.QObject.connect(self.yValue,QtCore.SIGNAL("valueChanged(double)"),self.changeYValue)
|
|
|
|
|
QtCore.QObject.connect(self.zValue,QtCore.SIGNAL("valueChanged(double)"),self.changeZValue)
|
|
|
|
|
@@ -599,14 +548,6 @@ class DraftToolBar:
|
|
|
|
|
QtCore.QObject.connect(self.textOkButton,QtCore.SIGNAL("clicked()"),self.sendText)
|
|
|
|
|
QtCore.QObject.connect(self.zValue,QtCore.SIGNAL("returnPressed()"),self.setFocus)
|
|
|
|
|
|
|
|
|
|
# Draft Edit UI obsolete due to introduction of incommand context menu
|
|
|
|
|
# QtCore.QObject.connect(self.addButton,QtCore.SIGNAL("toggled(bool)"),self.setAddMode)
|
|
|
|
|
# QtCore.QObject.connect(self.delButton,QtCore.SIGNAL("toggled(bool)"),self.setDelMode)
|
|
|
|
|
# QtCore.QObject.connect(self.sharpButton,QtCore.SIGNAL("toggled(bool)"),self.setSharpMode)
|
|
|
|
|
# QtCore.QObject.connect(self.tangentButton,QtCore.SIGNAL("toggled(bool)"),self.setTangentMode)
|
|
|
|
|
# QtCore.QObject.connect(self.symmetricButton,QtCore.SIGNAL("toggled(bool)"),self.setSymmetricMode)
|
|
|
|
|
# QtCore.QObject.connect(self.arc3PtButton,QtCore.SIGNAL("toggled(bool)"),self.setArc3PtMode)
|
|
|
|
|
|
|
|
|
|
QtCore.QObject.connect(self.finishButton,QtCore.SIGNAL("pressed()"),self.finish)
|
|
|
|
|
QtCore.QObject.connect(self.closeButton,QtCore.SIGNAL("pressed()"),self.closeLine)
|
|
|
|
|
QtCore.QObject.connect(self.wipeButton,QtCore.SIGNAL("pressed()"),self.wipeLine)
|
|
|
|
|
@@ -631,22 +572,6 @@ class DraftToolBar:
|
|
|
|
|
QtCore.QObject.connect(self.chooserButton,QtCore.SIGNAL("pressed()"),self.pickFile)
|
|
|
|
|
QtCore.QObject.connect(self.FFileValue,QtCore.SIGNAL("returnPressed()"),self.validateFile)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# following lines can cause a crash and are not needed anymore when using the task panel
|
|
|
|
|
# https://forum.freecadweb.org/viewtopic.php?f=3&t=6952
|
|
|
|
|
#QtCore.QObject.connect(self.FFileValue,QtCore.SIGNAL("escaped()"),self.escape)
|
|
|
|
|
#QtCore.QObject.connect(self.xValue,QtCore.SIGNAL("escaped()"),self.escape)
|
|
|
|
|
#QtCore.QObject.connect(self.yValue,QtCore.SIGNAL("escaped()"),self.escape)
|
|
|
|
|
#QtCore.QObject.connect(self.zValue,QtCore.SIGNAL("escaped()"),self.escape)
|
|
|
|
|
#QtCore.QObject.connect(self.radiusValue,QtCore.SIGNAL("escaped()"),self.escape)
|
|
|
|
|
#QtCore.QObject.connect(self.SSizeValue,QtCore.SIGNAL("escaped()"),self.escape)
|
|
|
|
|
#QtCore.QObject.connect(self.STrackValue,QtCore.SIGNAL("escaped()"),self.escape)
|
|
|
|
|
#QtCore.QObject.connect(self.SStringValue,QtCore.SIGNAL("escaped()"),self.escape)
|
|
|
|
|
|
|
|
|
|
# if Ui changed to have Size & Track visible at same time, use this
|
|
|
|
|
#QtCore.QObject.connect(self.SSizeValue,QtCore.SIGNAL("returnPressed()"),self.checkSSize)
|
|
|
|
|
#QtCore.QObject.connect(self.STrackValue,QtCore.SIGNAL("returnPressed()"),self.checkSTrack)
|
|
|
|
|
|
|
|
|
|
def setupTray(self):
|
|
|
|
|
"""sets draft tray buttons up"""
|
|
|
|
|
|
|
|
|
|
@@ -665,20 +590,6 @@ class DraftToolBar:
|
|
|
|
|
p = FreeCAD.ParamGet("User parameter:BaseApp/Preferences/General")
|
|
|
|
|
bsize = p.GetInt("ToolbarIconSize",24)+2
|
|
|
|
|
|
|
|
|
|
# OBSOLETE - replaced by style button
|
|
|
|
|
#self.colorButton = self._pushbutton("colorButton",self.bottomtray, hide=False,square=True)
|
|
|
|
|
#self.colorPix = QtGui.QPixmap(16,16)
|
|
|
|
|
#self.colorPix.fill(self.color)
|
|
|
|
|
#self.colorButton.setIcon(QtGui.QIcon(self.colorPix))
|
|
|
|
|
#self.facecolorButton = self._pushbutton("facecolorButton",self.bottomtray, hide=False,square=True)
|
|
|
|
|
#self.facecolorPix = QtGui.QPixmap(16,16)
|
|
|
|
|
#self.facecolorPix.fill(QtGui.QColor(self.facecolor))
|
|
|
|
|
#self.facecolorButton.setIcon(QtGui.QIcon(self.facecolorPix))
|
|
|
|
|
#self.widthButton = self._spinbox("widthButton", self.bottomtray, val=self.linewidth,hide=False,size=(bsize * 2,bsize))
|
|
|
|
|
#self.widthButton.setSuffix("px")
|
|
|
|
|
#self.fontsizeButton = self._spinbox("fontsizeButton",self.bottomtray, val=self.fontsize,vmax=999, hide=False,double=True,size=(bsize * 4,bsize))
|
|
|
|
|
#self.applyButton = self._pushbutton("applyButton", self.toptray, hide=False, icon='Draft_Apply',square=True)
|
|
|
|
|
|
|
|
|
|
self.styleButton = self._pushbutton(
|
|
|
|
|
"stylebutton", self.toptray, icon='Draft_Apply', hide=False,
|
|
|
|
|
width=120)
|
|
|
|
|
@@ -698,13 +609,6 @@ class DraftToolBar:
|
|
|
|
|
QtCore.QObject.connect(self.constrButton,QtCore.SIGNAL("toggled(bool)"),self.toggleConstrMode)
|
|
|
|
|
QtCore.QObject.connect(self.autoGroupButton,QtCore.SIGNAL("pressed()"),self.runAutoGroup)
|
|
|
|
|
|
|
|
|
|
# OBSOLETE - replaced by style button
|
|
|
|
|
#QtCore.QObject.connect(self.colorButton,QtCore.SIGNAL("pressed()"),self.getcol)
|
|
|
|
|
#QtCore.QObject.connect(self.facecolorButton,QtCore.SIGNAL("pressed()"),self.getfacecol)
|
|
|
|
|
#QtCore.QObject.connect(self.widthButton,QtCore.SIGNAL("valueChanged(int)"),self.setwidth)
|
|
|
|
|
#QtCore.QObject.connect(self.fontsizeButton,QtCore.SIGNAL("valueChanged(double)"),self.setfontsize)
|
|
|
|
|
#QtCore.QObject.connect(self.applyButton,QtCore.SIGNAL("pressed()"),self.apply)
|
|
|
|
|
|
|
|
|
|
QtCore.QTimer.singleShot(2000,self.retranslateTray) # delay so translations get a chance to load
|
|
|
|
|
|
|
|
|
|
def setupStyle(self):
|
|
|
|
|
@@ -776,14 +680,6 @@ class DraftToolBar:
|
|
|
|
|
+ " instead of the classic offset"))
|
|
|
|
|
self.occOffset.setText(translate("draft", "&OCC-style offset"))
|
|
|
|
|
|
|
|
|
|
# OBSOLETE
|
|
|
|
|
# self.addButton.setToolTip(translate("draft", "Add points to the current object"))
|
|
|
|
|
# self.delButton.setToolTip(translate("draft", "Remove points from the current object"))
|
|
|
|
|
# self.sharpButton.setToolTip(translate("draft", "Make Bezier node sharp"))
|
|
|
|
|
# self.tangentButton.setToolTip(translate("draft", "Make Bezier node tangent"))
|
|
|
|
|
# self.symmetricButton.setToolTip(translate("draft", "Make Bezier node symmetric"))
|
|
|
|
|
# self.arc3PtButton.setToolTip(translate("draft", "Toggle radius and angles arc editing"))
|
|
|
|
|
|
|
|
|
|
self.undoButton.setText(translate("draft", "&Undo")+" ("+inCommandShortcuts["Undo"][0]+")")
|
|
|
|
|
self.undoButton.setToolTip(translate("draft", "Undo the last segment"))
|
|
|
|
|
self.closeButton.setText(translate("draft", "Close")+" ("+inCommandShortcuts["Close"][0]+")")
|
|
|
|
|
@@ -837,13 +733,6 @@ class DraftToolBar:
|
|
|
|
|
self.constrButton.setToolTip(translate("draft", "Toggle construction mode"))
|
|
|
|
|
self.autoGroupButton.setToolTip(translate("draft", "Autogroup off"))
|
|
|
|
|
|
|
|
|
|
# OBSOLETE - replaced by style button
|
|
|
|
|
#self.colorButton.setToolTip(translate("draft", "Current line color"))
|
|
|
|
|
#self.facecolorButton.setToolTip(translate("draft", "Current face color"))
|
|
|
|
|
#self.widthButton.setToolTip(translate("draft", "Current line width"))
|
|
|
|
|
#self.fontsizeButton.setToolTip(translate("draft", "Current font size"))
|
|
|
|
|
#self.applyButton.setToolTip(translate("draft", "Apply to selected objects"))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
|
# Interface modes
|
|
|
|
|
@@ -852,40 +741,14 @@ class DraftToolBar:
|
|
|
|
|
def taskUi(self,title="Draft",extra=None,icon="Draft_Draft"):
|
|
|
|
|
# reset InputField values
|
|
|
|
|
self.reset_ui_values()
|
|
|
|
|
if self.taskmode:
|
|
|
|
|
self.isTaskOn = True
|
|
|
|
|
todo.delay(FreeCADGui.Control.closeDialog,None)
|
|
|
|
|
self.baseWidget = DraftBaseWidget()
|
|
|
|
|
self.layout = QtGui.QVBoxLayout(self.baseWidget)
|
|
|
|
|
self.setupToolBar(task=True)
|
|
|
|
|
self.retranslateUi(self.baseWidget)
|
|
|
|
|
self.panel = DraftTaskPanel(self.baseWidget,extra)
|
|
|
|
|
todo.delay(FreeCADGui.Control.showDialog,self.panel)
|
|
|
|
|
else: # self.taskmode == 0 Draft toolbar is obsolete and has been disabled (February 2020)
|
|
|
|
|
# create a dummy task to block the UI during the works
|
|
|
|
|
class dummy:
|
|
|
|
|
"""an empty dialog"""
|
|
|
|
|
def __init__(self,extra=None):
|
|
|
|
|
if extra:
|
|
|
|
|
if isinstance(extra,list):
|
|
|
|
|
self.form = extra
|
|
|
|
|
else:
|
|
|
|
|
self.form = [extra]
|
|
|
|
|
def getStandardButtons(self):
|
|
|
|
|
return int(QtGui.QDialogButtonBox.Close)
|
|
|
|
|
def accept(self):
|
|
|
|
|
FreeCADGui.ActiveDocument.resetEdit()
|
|
|
|
|
return True
|
|
|
|
|
def reject(self):
|
|
|
|
|
FreeCADGui.draftToolBar.isTaskOn = False
|
|
|
|
|
FreeCADGui.draftToolBar.escape()
|
|
|
|
|
FreeCADGui.ActiveDocument.resetEdit()
|
|
|
|
|
return True
|
|
|
|
|
def isAllowedAlterDocument(self):
|
|
|
|
|
return False
|
|
|
|
|
if FreeCADGui.Control.activeDialog():
|
|
|
|
|
FreeCADGui.Control.closeDialog()
|
|
|
|
|
todo.delay(FreeCADGui.Control.showDialog,dummy(extra))
|
|
|
|
|
self.isTaskOn = True
|
|
|
|
|
todo.delay(FreeCADGui.Control.closeDialog,None)
|
|
|
|
|
self.baseWidget = DraftBaseWidget()
|
|
|
|
|
self.layout = QtGui.QVBoxLayout(self.baseWidget)
|
|
|
|
|
self.setupToolBar(task=True)
|
|
|
|
|
self.retranslateUi(self.baseWidget)
|
|
|
|
|
self.panel = DraftTaskPanel(self.baseWidget,extra)
|
|
|
|
|
todo.delay(FreeCADGui.Control.showDialog,self.panel)
|
|
|
|
|
self.setTitle(title,icon)
|
|
|
|
|
|
|
|
|
|
def redraw(self):
|
|
|
|
|
@@ -1050,48 +913,8 @@ class DraftToolBar:
|
|
|
|
|
self.sourceCmd = None
|
|
|
|
|
self.pointcallback = None
|
|
|
|
|
self.mask = None
|
|
|
|
|
if self.taskmode:
|
|
|
|
|
self.isTaskOn = False
|
|
|
|
|
self.baseWidget = QtGui.QWidget()
|
|
|
|
|
else: # self.taskmode == 0 Draft toolbar is obsolete and has been disabled (February 2020)
|
|
|
|
|
self.setTitle(translate("draft", "None"))
|
|
|
|
|
self.labelx.setText(translate("draft", "X"))
|
|
|
|
|
self.hideXYZ()
|
|
|
|
|
self.numFacesLabel.hide()
|
|
|
|
|
self.numFaces.hide()
|
|
|
|
|
self.hasFill.hide()
|
|
|
|
|
self.finishButton.hide()
|
|
|
|
|
|
|
|
|
|
# OBSOLETE
|
|
|
|
|
# self.addButton.hide()
|
|
|
|
|
# self.delButton.hide()
|
|
|
|
|
# self.sharpButton.hide()
|
|
|
|
|
# self.tangentButton.hide()
|
|
|
|
|
# self.symmetricButton.hide()
|
|
|
|
|
# self.arc3PtButton.hide()
|
|
|
|
|
|
|
|
|
|
self.undoButton.hide()
|
|
|
|
|
self.closeButton.hide()
|
|
|
|
|
self.wipeButton.hide()
|
|
|
|
|
self.orientWPButton.hide()
|
|
|
|
|
self.selectButton.hide()
|
|
|
|
|
self.labelRadius.hide()
|
|
|
|
|
self.radiusValue.hide()
|
|
|
|
|
self.isCopy.hide()
|
|
|
|
|
self.textValue.hide()
|
|
|
|
|
self.textOkButton.hide()
|
|
|
|
|
self.continueCmd.hide()
|
|
|
|
|
self.occOffset.hide()
|
|
|
|
|
self.labelSString.hide()
|
|
|
|
|
self.SStringValue.hide()
|
|
|
|
|
self.labelSSize.hide()
|
|
|
|
|
self.SSizeValue.hide()
|
|
|
|
|
self.labelSTrack.hide()
|
|
|
|
|
self.STrackValue.hide()
|
|
|
|
|
self.labelFFile.hide()
|
|
|
|
|
self.FFileValue.hide()
|
|
|
|
|
self.chooserButton.hide()
|
|
|
|
|
|
|
|
|
|
self.isTaskOn = False
|
|
|
|
|
self.baseWidget = QtGui.QWidget()
|
|
|
|
|
|
|
|
|
|
def trimUi(self,title=translate("draft","Trimex")):
|
|
|
|
|
self.taskUi(title, icon="Draft_Trimex")
|
|
|
|
|
@@ -1124,45 +947,6 @@ class DraftToolBar:
|
|
|
|
|
# Change the checkbox label as the in-command shortcut cannot be used:
|
|
|
|
|
self.continueCmd.setText(translate("draft", "Continue"))
|
|
|
|
|
|
|
|
|
|
def SSUi(self):
|
|
|
|
|
''' set up ui for ShapeString text entry '''
|
|
|
|
|
self.hideXYZ()
|
|
|
|
|
self.labelSString.show()
|
|
|
|
|
self.SStringValue.show()
|
|
|
|
|
self.SStringValue.setText('')
|
|
|
|
|
todo.delay(self.SStringValue.setFocus,None)
|
|
|
|
|
self.continueCmd.hide()
|
|
|
|
|
|
|
|
|
|
def SSizeUi(self):
|
|
|
|
|
''' set up ui for ShapeString size entry '''
|
|
|
|
|
self.labelSString.hide()
|
|
|
|
|
self.SStringValue.hide()
|
|
|
|
|
self.continueCmd.hide()
|
|
|
|
|
self.labelSSize.show()
|
|
|
|
|
self.SSizeValue.setText(FreeCAD.Units.Quantity(1,FreeCAD.Units.Length).UserString)
|
|
|
|
|
self.SSizeValue.show()
|
|
|
|
|
todo.delay(self.SSizeValue.setFocus,None)
|
|
|
|
|
|
|
|
|
|
def STrackUi(self):
|
|
|
|
|
''' set up ui for ShapeString tracking entry '''
|
|
|
|
|
self.labelSSize.hide()
|
|
|
|
|
self.SSizeValue.hide()
|
|
|
|
|
self.labelSTrack.show()
|
|
|
|
|
self.STrackValue.setText(FreeCAD.Units.Quantity(0,FreeCAD.Units.Length).UserString)
|
|
|
|
|
self.STrackValue.show()
|
|
|
|
|
todo.delay(self.STrackValue.setFocus,None)
|
|
|
|
|
|
|
|
|
|
def SFileUi(self):
|
|
|
|
|
''' set up UI for ShapeString font file selection '''
|
|
|
|
|
self.labelSTrack.hide()
|
|
|
|
|
self.STrackValue.hide()
|
|
|
|
|
if not self.FFileValue.text():
|
|
|
|
|
self.FFileValue.setText(Draft.getParam("FontFile",""))
|
|
|
|
|
self.labelFFile.show()
|
|
|
|
|
self.FFileValue.show()
|
|
|
|
|
self.chooserButton.show()
|
|
|
|
|
todo.delay(self.FFileValue.setFocus,None)
|
|
|
|
|
|
|
|
|
|
def switchUi(self,store=True):
|
|
|
|
|
if store:
|
|
|
|
|
self.state = []
|
|
|
|
|
@@ -1184,17 +968,10 @@ class DraftToolBar:
|
|
|
|
|
self.state = None
|
|
|
|
|
|
|
|
|
|
def setTitle(self,title,icon="Draft_Draft"):
|
|
|
|
|
if self.taskmode:
|
|
|
|
|
self.baseWidget.setWindowTitle(title)
|
|
|
|
|
self.baseWidget.setWindowIcon(QtGui.QIcon(":/icons/"+icon+".svg"))
|
|
|
|
|
else: # self.taskmode == 0 Draft toolbar is obsolete and has been disabled (February 2020)
|
|
|
|
|
self.cmdlabel.setText(title)
|
|
|
|
|
self.baseWidget.setWindowTitle(title)
|
|
|
|
|
self.baseWidget.setWindowIcon(QtGui.QIcon(":/icons/"+icon+".svg"))
|
|
|
|
|
|
|
|
|
|
def selectUi(self,extra=None, on_close_call=None):
|
|
|
|
|
if not self.taskmode:
|
|
|
|
|
# self.taskmode == 0 Draft toolbar is obsolete and has been disabled (February 2020)
|
|
|
|
|
self.labelx.setText(translate("draft", "Pick Object"))
|
|
|
|
|
self.labelx.show()
|
|
|
|
|
self.makeDumbTask(extra, on_close_call)
|
|
|
|
|
|
|
|
|
|
def editUi(self):
|
|
|
|
|
@@ -1216,10 +993,6 @@ class DraftToolBar:
|
|
|
|
|
self.isCopy.setChecked(p.GetBool("copymodeValue",False))
|
|
|
|
|
self.continueCmd.show()
|
|
|
|
|
|
|
|
|
|
# def vertUi(self,addmode=True):
|
|
|
|
|
# self.addButton.setChecked(addmode)
|
|
|
|
|
# self.delButton.setChecked(not(addmode))
|
|
|
|
|
|
|
|
|
|
def checkLocal(self):
|
|
|
|
|
"""checks if x,y,z coords must be displayed as local or global"""
|
|
|
|
|
if not self.globalMode and self.relativeMode:
|
|
|
|
|
@@ -1239,22 +1012,13 @@ class DraftToolBar:
|
|
|
|
|
self.labely.setText(translate("draft", "Global Y"))
|
|
|
|
|
self.labelz.setText(translate("draft", "Global Z"))
|
|
|
|
|
|
|
|
|
|
# def setEditButtons(self,mode):
|
|
|
|
|
# self.addButton.setEnabled(mode)
|
|
|
|
|
# self.delButton.setEnabled(mode)
|
|
|
|
|
|
|
|
|
|
# def setBezEditButtons(self,mode):
|
|
|
|
|
# self.sharpButton.setEnabled(mode)
|
|
|
|
|
# self.tangentButton.setEnabled(mode)
|
|
|
|
|
# self.symmetricButton.setEnabled(mode)
|
|
|
|
|
|
|
|
|
|
def setNextFocus(self):
|
|
|
|
|
def isThere(widget):
|
|
|
|
|
if widget.isEnabled() and widget.isVisible():
|
|
|
|
|
return True
|
|
|
|
|
else:
|
|
|
|
|
return False
|
|
|
|
|
if (not self.taskmode) or self.isTaskOn:
|
|
|
|
|
if self.isTaskOn:
|
|
|
|
|
if isThere(self.xValue):
|
|
|
|
|
self.setFocus()
|
|
|
|
|
elif isThere(self.yValue):
|
|
|
|
|
@@ -1315,74 +1079,6 @@ class DraftToolBar:
|
|
|
|
|
# Processing functions
|
|
|
|
|
#---------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
def getcol(self):
|
|
|
|
|
"""opens a color picker dialog"""
|
|
|
|
|
print("draft: warning: getcol() is obsolete")
|
|
|
|
|
return
|
|
|
|
|
oldColor = self.color
|
|
|
|
|
self.color=QtGui.QColorDialog.getColor(self.color)
|
|
|
|
|
if not QtGui.QColor.isValid(self.color): #user canceled
|
|
|
|
|
self.color = oldColor
|
|
|
|
|
return
|
|
|
|
|
self.colorPix.fill(self.color)
|
|
|
|
|
self.colorButton.setIcon(QtGui.QIcon(self.colorPix))
|
|
|
|
|
if Draft.getParam("saveonexit",False):
|
|
|
|
|
Draft.setParam("color",self.color.rgb()<<8)
|
|
|
|
|
r = float(self.color.red()/255.0)
|
|
|
|
|
g = float(self.color.green()/255.0)
|
|
|
|
|
b = float(self.color.blue()/255.0)
|
|
|
|
|
col = (r,g,b,0.0)
|
|
|
|
|
for i in FreeCADGui.Selection.getSelection():
|
|
|
|
|
if (i.TypeId == "App::Annotation"):
|
|
|
|
|
i.ViewObject.TextColor=col
|
|
|
|
|
else:
|
|
|
|
|
if "LineColor" in i.ViewObject.PropertiesList:
|
|
|
|
|
i.ViewObject.LineColor = col
|
|
|
|
|
if "PointColor" in i.ViewObject.PropertiesList:
|
|
|
|
|
i.ViewObject.PointColor = col
|
|
|
|
|
|
|
|
|
|
def getfacecol(self):
|
|
|
|
|
"""opens a color picker dialog"""
|
|
|
|
|
print("draft: warning: getfacecol() is obsolete")
|
|
|
|
|
return
|
|
|
|
|
oldColor = self.facecolor
|
|
|
|
|
self.facecolor=QtGui.QColorDialog.getColor(self.facecolor)
|
|
|
|
|
if not QtGui.QColor.isValid(self.facecolor): #user canceled
|
|
|
|
|
self.facecolor = oldColor
|
|
|
|
|
return
|
|
|
|
|
self.facecolorPix.fill(self.facecolor)
|
|
|
|
|
self.facecolorButton.setIcon(QtGui.QIcon(self.facecolorPix))
|
|
|
|
|
if Draft.getParam("saveonexit",False):
|
|
|
|
|
FreeCAD.ParamGet("User parameter:BaseApp/Preferences/View")\
|
|
|
|
|
.SetUnsigned("DefaultShapeColor",self.facecolor.rgb()<<8)
|
|
|
|
|
r = float(self.facecolor.red()/255.0)
|
|
|
|
|
g = float(self.facecolor.green()/255.0)
|
|
|
|
|
b = float(self.facecolor.blue()/255.0)
|
|
|
|
|
col = (r,g,b,0.0)
|
|
|
|
|
for i in FreeCADGui.Selection.getSelection():
|
|
|
|
|
if "ShapeColor" in i.ViewObject.PropertiesList:
|
|
|
|
|
i.ViewObject.ShapeColor = col
|
|
|
|
|
|
|
|
|
|
def setwidth(self,val):
|
|
|
|
|
print("draft: warning: setwidth() is obsolete")
|
|
|
|
|
return
|
|
|
|
|
self.linewidth = float(val)
|
|
|
|
|
if Draft.getParam("saveonexit",False):
|
|
|
|
|
Draft.setParam("linewidth",int(val))
|
|
|
|
|
for i in FreeCADGui.Selection.getSelection():
|
|
|
|
|
if "LineWidth" in i.ViewObject.PropertiesList:
|
|
|
|
|
i.ViewObject.LineWidth = float(val)
|
|
|
|
|
|
|
|
|
|
def setfontsize(self,val):
|
|
|
|
|
print("draft: warning: setfontsize() is obsolete")
|
|
|
|
|
return
|
|
|
|
|
self.fontsize = float(val)
|
|
|
|
|
if Draft.getParam("saveonexit",False):
|
|
|
|
|
Draft.setParam("textheight",float(val))
|
|
|
|
|
for i in FreeCADGui.Selection.getSelection():
|
|
|
|
|
if "FontSize" in i.ViewObject.PropertiesList:
|
|
|
|
|
i.ViewObject.FontSize = float(val)
|
|
|
|
|
|
|
|
|
|
def setContinue(self,val):
|
|
|
|
|
if self.continueCmd.isVisible():
|
|
|
|
|
self.continueMode = bool(val)
|
|
|
|
|
@@ -1391,12 +1087,6 @@ class DraftToolBar:
|
|
|
|
|
if self.hasFill.isVisible():
|
|
|
|
|
self.fillmode = bool(val)
|
|
|
|
|
|
|
|
|
|
def apply(self):
|
|
|
|
|
print("draft: warning: apply() is obsolete")
|
|
|
|
|
return
|
|
|
|
|
for i in FreeCADGui.Selection.getSelection():
|
|
|
|
|
Draft.formatObject(i)
|
|
|
|
|
|
|
|
|
|
def checkx(self):
|
|
|
|
|
if self.yValue.isEnabled():
|
|
|
|
|
self.yValue.setFocus()
|
|
|
|
|
@@ -1539,7 +1229,6 @@ class DraftToolBar:
|
|
|
|
|
FreeCAD.Console.PrintMessage(
|
|
|
|
|
translate("draft", "Please enter a font file."))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def finish(self, cont=None):
|
|
|
|
|
"""finish button action"""
|
|
|
|
|
if self.sourceCmd:
|
|
|
|
|
@@ -1727,7 +1416,7 @@ class DraftToolBar:
|
|
|
|
|
|
|
|
|
|
def displayPoint(self, point=None, last=None, plane=None, mask=None):
|
|
|
|
|
"""this function displays the passed coords in the x, y, and z widgets"""
|
|
|
|
|
if self.taskmode and (not self.isTaskOn):
|
|
|
|
|
if not self.isTaskOn:
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
if not plane:
|
|
|
|
|
@@ -1886,10 +1575,7 @@ class DraftToolBar:
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
def isConstructionMode(self):
|
|
|
|
|
if self.tray or (not self.taskmode):
|
|
|
|
|
return self.constrButton.isChecked()
|
|
|
|
|
else:
|
|
|
|
|
return False
|
|
|
|
|
return self.tray is not None and self.constrButton.isChecked()
|
|
|
|
|
|
|
|
|
|
def drawPage(self):
|
|
|
|
|
self.sourceCmd.draw()
|
|
|
|
|
@@ -1958,45 +1644,6 @@ class DraftToolBar:
|
|
|
|
|
def popupTriggered(self,action):
|
|
|
|
|
self.sourceCmd.proceed(str(action.text()))
|
|
|
|
|
|
|
|
|
|
# def setAddMode(self,bool):
|
|
|
|
|
# if self.addButton.isChecked():
|
|
|
|
|
# self.delButton.setChecked(False)
|
|
|
|
|
# self.symmetricButton.setChecked(False)
|
|
|
|
|
# self.sharpButton.setChecked(False)
|
|
|
|
|
# self.tangentButton.setChecked(False)
|
|
|
|
|
|
|
|
|
|
# def setDelMode(self,bool):
|
|
|
|
|
# if self.delButton.isChecked():
|
|
|
|
|
# self.addButton.setChecked(False)
|
|
|
|
|
# self.symmetricButton.setChecked(False)
|
|
|
|
|
# self.sharpButton.setChecked(False)
|
|
|
|
|
# self.tangentButton.setChecked(False)
|
|
|
|
|
|
|
|
|
|
# def setSharpMode(self,bool):
|
|
|
|
|
# if self.sharpButton.isChecked():
|
|
|
|
|
# self.tangentButton.setChecked(False)
|
|
|
|
|
# self.symmetricButton.setChecked(False)
|
|
|
|
|
# self.addButton.setChecked(False)
|
|
|
|
|
# self.delButton.setChecked(False)
|
|
|
|
|
|
|
|
|
|
# def setTangentMode(self,bool):
|
|
|
|
|
# if self.tangentButton.isChecked():
|
|
|
|
|
# self.sharpButton.setChecked(False)
|
|
|
|
|
# self.symmetricButton.setChecked(False)
|
|
|
|
|
# self.addButton.setChecked(False)
|
|
|
|
|
# self.delButton.setChecked(False)
|
|
|
|
|
|
|
|
|
|
# def setSymmetricMode(self,bool):
|
|
|
|
|
# if self.symmetricButton.isChecked():
|
|
|
|
|
# self.sharpButton.setChecked(False)
|
|
|
|
|
# self.tangentButton.setChecked(False)
|
|
|
|
|
# self.addButton.setChecked(False)
|
|
|
|
|
# self.delButton.setChecked(False)
|
|
|
|
|
|
|
|
|
|
# def setArc3PtMode(self,bool):
|
|
|
|
|
# if self.arc3PtButton.isChecked():
|
|
|
|
|
# self.arc3PtButton.setChecked(True)
|
|
|
|
|
|
|
|
|
|
def setRadiusValue(self,val,unit=None):
|
|
|
|
|
#print("DEBUG: setRadiusValue val: ", val, " unit: ", unit)
|
|
|
|
|
if not isinstance(val, (int, float)): #??some code passes strings or ???
|
|
|
|
|
@@ -2036,16 +1683,6 @@ class DraftToolBar:
|
|
|
|
|
self.autoGroupButton.setToolTip(translate("draft", "Autogroup off"))
|
|
|
|
|
self.autoGroupButton.setDown(False)
|
|
|
|
|
|
|
|
|
|
def show(self):
|
|
|
|
|
if not self.taskmode:
|
|
|
|
|
# self.taskmode == 0 Draft toolbar is obsolete and has been disabled (February 2020)
|
|
|
|
|
self.draftWidget.setVisible(True)
|
|
|
|
|
|
|
|
|
|
def hide(self):
|
|
|
|
|
if not self.taskmode:
|
|
|
|
|
# self.taskmode == 0 Draft toolbar is obsolete and has been disabled (February 2020)
|
|
|
|
|
self.draftWidget.setVisible(False)
|
|
|
|
|
|
|
|
|
|
def getXPM(self,iconname,size=16):
|
|
|
|
|
i = QtGui.QIcon(":/icons/"+iconname+".svg")
|
|
|
|
|
p = i.pixmap(size,size)
|
|
|
|
|
@@ -2183,24 +1820,6 @@ class DraftToolBar:
|
|
|
|
|
def shouldShow(self):
|
|
|
|
|
return (FreeCAD.ActiveDocument is not None) and (FreeCADGui.Selection.getSelection() != [])
|
|
|
|
|
|
|
|
|
|
# OBSOLETE
|
|
|
|
|
#class DraftTrayWatcher:
|
|
|
|
|
# def __init__(self,traywidget):
|
|
|
|
|
# self.form = traywidget
|
|
|
|
|
# self.widgets = [self.form]
|
|
|
|
|
# def shouldShow(self):
|
|
|
|
|
# return True
|
|
|
|
|
#self.traywidget = QtGui.QWidget()
|
|
|
|
|
#self.tray = QtGui.QVBoxLayout(self.traywidget)
|
|
|
|
|
#self.tray.setObjectName("traylayout")
|
|
|
|
|
#self.toptray = QtGui.QHBoxLayout()
|
|
|
|
|
#self.bottomtray = QtGui.QHBoxLayout()
|
|
|
|
|
#self.tray.addLayout(self.toptray)
|
|
|
|
|
#self.tray.addLayout(self.bottomtray)
|
|
|
|
|
#self.setupTray()
|
|
|
|
|
#self.setupStyle()
|
|
|
|
|
#w = DraftTrayWatcher(self.traywidget)
|
|
|
|
|
#FreeCADGui.Control.addTaskWatcher([w,DraftCreateWatcher(),DraftModifyWatcher()])
|
|
|
|
|
FreeCADGui.Control.addTaskWatcher([DraftCreateWatcher(),DraftModifyWatcher()])
|
|
|
|
|
|
|
|
|
|
def changeEvent(self, event):
|
|
|
|
|
@@ -2209,26 +1828,18 @@ class DraftToolBar:
|
|
|
|
|
self.ui.retranslateUi(self)
|
|
|
|
|
|
|
|
|
|
def Activated(self):
|
|
|
|
|
if self.taskmode:
|
|
|
|
|
self.setWatchers()
|
|
|
|
|
if hasattr(self,"tray"):
|
|
|
|
|
self.tray.show()
|
|
|
|
|
else: # self.taskmode == 0 Draft toolbar is obsolete and has been disabled (February 2020)
|
|
|
|
|
self.draftWidget.setVisible(True)
|
|
|
|
|
self.draftWidget.toggleViewAction().setVisible(True)
|
|
|
|
|
self.setWatchers()
|
|
|
|
|
if hasattr(self,"tray"):
|
|
|
|
|
self.tray.show()
|
|
|
|
|
|
|
|
|
|
def Deactivated(self):
|
|
|
|
|
if (FreeCAD.activeDraftCommand is not None):
|
|
|
|
|
self.continueMode = False
|
|
|
|
|
FreeCAD.activeDraftCommand.finish()
|
|
|
|
|
if self.taskmode:
|
|
|
|
|
FreeCADGui.Control.clearTaskWatcher()
|
|
|
|
|
#self.tray = None
|
|
|
|
|
if hasattr(self,"tray"):
|
|
|
|
|
self.tray.hide()
|
|
|
|
|
else: # self.taskmode == 0 Draft toolbar is obsolete and has been disabled (February 2020)
|
|
|
|
|
self.draftWidget.setVisible(False)
|
|
|
|
|
self.draftWidget.toggleViewAction().setVisible(False)
|
|
|
|
|
FreeCADGui.Control.clearTaskWatcher()
|
|
|
|
|
#self.tray = None
|
|
|
|
|
if hasattr(self,"tray"):
|
|
|
|
|
self.tray.hide()
|
|
|
|
|
|
|
|
|
|
def reset_ui_values(self):
|
|
|
|
|
"""Method to reset task panel values"""
|
|
|
|
|
|