Fixed numeric input in Arch Walls coordinates
This commit is contained in:
parent
8d01d70038
commit
26602b2aa3
|
@ -98,7 +98,7 @@ class _CommandWall:
|
|||
import DraftTrackers
|
||||
self.points = []
|
||||
self.tracker = DraftTrackers.boxTracker()
|
||||
FreeCADGui.Snapper.getPoint(callback=self.getPoint,extradlg=TaskArchWall())
|
||||
FreeCADGui.Snapper.getPoint(callback=self.getPoint)
|
||||
|
||||
def getPoint(self,point,obj):
|
||||
"this function is called by the snapper when it has a 3D point"
|
||||
|
|
|
@ -136,7 +136,7 @@ class DraftLineEdit(QtGui.QLineEdit):
|
|||
QtGui.QLineEdit.keyPressEvent(self, event)
|
||||
|
||||
class DraftTaskPanel:
|
||||
def __init__(self,widget,extradlg=None):
|
||||
def __init__(self,widget):
|
||||
self.form = widget
|
||||
def getStandardButtons(self):
|
||||
return int(QtGui.QDialogButtonBox.Cancel)
|
||||
|
@ -155,6 +155,7 @@ class DraftToolBar:
|
|||
self.tray = None
|
||||
self.sourceCmd = None
|
||||
self.cancel = None
|
||||
self.pointcallback = None
|
||||
self.taskmode = Draft.getParam("UiMode")
|
||||
self.paramcolor = Draft.getParam("color")>>8
|
||||
self.color = QtGui.QColor(self.paramcolor)
|
||||
|
@ -171,7 +172,7 @@ class DraftToolBar:
|
|||
self.fillmode = Draft.getParam("fillmode")
|
||||
|
||||
if self.taskmode:
|
||||
# only a dummy widget, since widgets are created on demand
|
||||
# add only a dummy widget, since widgets are created on demand
|
||||
self.baseWidget = QtGui.QWidget()
|
||||
else:
|
||||
# create the draft Toolbar
|
||||
|
@ -251,6 +252,12 @@ class DraftToolBar:
|
|||
layout.addWidget(chk)
|
||||
return chk
|
||||
|
||||
def _combo (self,name,layout,hide=True):
|
||||
cb = QtGui.QComboBox(self.baseWidget)
|
||||
cb.setObjectName(name)
|
||||
if hide: cb.hide()
|
||||
layout.addWidget(cb)
|
||||
|
||||
def setupToolBar(self,task=False):
|
||||
"sets the draft toolbar up"
|
||||
|
||||
|
@ -311,6 +318,21 @@ class DraftToolBar:
|
|||
self.resetPlaneButton = self._pushbutton("none", self.layout)
|
||||
self.isCopy = self._checkbox("isCopy",self.layout,checked=False)
|
||||
|
||||
# options buttons for other workbenches
|
||||
|
||||
op1 = QtGui.QHBoxLayout()
|
||||
self.layout.addLayout(op1)
|
||||
self.labelop1 = self._label("labelop1", op1)
|
||||
self.valueop1 = self._lineedit("valueop1", op1)
|
||||
op2 = QtGui.QHBoxLayout()
|
||||
self.layout.addLayout(op2)
|
||||
self.labelop2 = self._label("labelop2", op2)
|
||||
self.valueop2 = self._lineedit("valueop2", op2)
|
||||
op3 = QtGui.QHBoxLayout()
|
||||
self.layout.addLayout(op3)
|
||||
self.labelop3 = self._label("labelop3", op3)
|
||||
self.valueop3 = self._combo("valueop3", op3)
|
||||
|
||||
# spacer
|
||||
if not self.taskmode:
|
||||
spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding,
|
||||
|
@ -463,7 +485,7 @@ class DraftToolBar:
|
|||
# Interface modes
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
def taskUi(self,title,extradlg=None):
|
||||
def taskUi(self,title,):
|
||||
if self.taskmode:
|
||||
self.isTaskOn = True
|
||||
todo.delay(FreeCADGui.Control.closeDialog,None)
|
||||
|
@ -472,7 +494,7 @@ class DraftToolBar:
|
|||
self.layout = QtGui.QVBoxLayout(self.baseWidget)
|
||||
self.setupToolBar(task=True)
|
||||
self.retranslateUi(self.baseWidget)
|
||||
self.panel = DraftTaskPanel(self.baseWidget,extradlg)
|
||||
self.panel = DraftTaskPanel(self.baseWidget)
|
||||
todo.delay(FreeCADGui.Control.showDialog,self.panel)
|
||||
else:
|
||||
self.setTitle(title)
|
||||
|
@ -510,9 +532,10 @@ class DraftToolBar:
|
|||
self.labelx.setText(translate("draft", "Center X"))
|
||||
self.continueCmd.show()
|
||||
|
||||
def pointUi(self,title=translate("draft","Point"),cancel=None,extradlg=None):
|
||||
def pointUi(self,title=translate("draft","Point"),cancel=None,extra=None,getcoords=None,rel=False):
|
||||
if cancel: self.cancel = cancel
|
||||
self.taskUi(title,extradlg)
|
||||
if getcoords: self.pointcallback = getcoords
|
||||
self.taskUi(title)
|
||||
self.xValue.setEnabled(True)
|
||||
self.yValue.setEnabled(True)
|
||||
self.labelx.setText(translate("draft", "X"))
|
||||
|
@ -522,9 +545,14 @@ class DraftToolBar:
|
|||
self.xValue.show()
|
||||
self.yValue.show()
|
||||
self.zValue.show()
|
||||
if rel: self.isRelative.show()
|
||||
if extra: self.extraUi(extra)
|
||||
self.xValue.setFocus()
|
||||
self.xValue.selectAll()
|
||||
|
||||
def extraUi(self):
|
||||
pass
|
||||
|
||||
def offsetUi(self):
|
||||
self.taskUi(translate("draft","Offset"))
|
||||
self.radiusUi()
|
||||
|
@ -537,6 +565,8 @@ class DraftToolBar:
|
|||
def offUi(self):
|
||||
todo.delay(FreeCADGui.Control.closeDialog,None)
|
||||
self.cancel = None
|
||||
self.sourceCmd = None
|
||||
self.pointcallback = None
|
||||
if self.taskmode:
|
||||
self.isTaskOn = False
|
||||
self.baseWidget = QtGui.QWidget()
|
||||
|
@ -571,6 +601,12 @@ class DraftToolBar:
|
|||
self.textValue.hide()
|
||||
self.continueCmd.hide()
|
||||
self.occOffset.hide()
|
||||
self.labelop1.hide()
|
||||
self.valueop1.hide()
|
||||
self.labelop2.hide()
|
||||
self.valueop2.hide()
|
||||
self.labelop3.hide()
|
||||
self.valueop3.hide()
|
||||
|
||||
def trimUi(self,title=translate("draft","Trim")):
|
||||
self.taskUi(title)
|
||||
|
@ -793,7 +829,7 @@ class DraftToolBar:
|
|||
|
||||
def validatePoint(self):
|
||||
"function for checking and sending numbers entered manually"
|
||||
if self.sourceCmd != None:
|
||||
if self.sourceCmd or self.pointcallback:
|
||||
if (self.labelRadius.isVisible()):
|
||||
try:
|
||||
rad=float(self.radiusValue.text())
|
||||
|
@ -831,6 +867,9 @@ class DraftToolBar:
|
|||
numx = v.x
|
||||
numy = v.y
|
||||
numz = v.z
|
||||
if self.pointcallback:
|
||||
self.pointcallback(FreeCAD.Vector(numx,numy,numz),self.isRelative.isChecked())
|
||||
else:
|
||||
self.sourceCmd.numericInput(numx,numy,numz)
|
||||
|
||||
def finish(self):
|
||||
|
|
|
@ -675,10 +675,19 @@ class Snapper:
|
|||
if movecallback:
|
||||
movecallback(self.pt)
|
||||
|
||||
def getcoords(point,relative=False):
|
||||
self.pt = point
|
||||
if relative and last:
|
||||
self.pt = last.add(point)
|
||||
accept()
|
||||
|
||||
def click(event_cb):
|
||||
event = event_cb.getEvent()
|
||||
if event.getButton() == 1:
|
||||
if event.getState() == coin.SoMouseButtonEvent.DOWN:
|
||||
accept()
|
||||
|
||||
def accept():
|
||||
self.view.removeEventCallbackPivy(coin.SoMouseButtonEvent.getClassTypeId(),self.callbackClick)
|
||||
self.view.removeEventCallbackPivy(coin.SoLocation2Event.getClassTypeId(),self.callbackMove)
|
||||
obj = FreeCADGui.Snapper.lastSnappedObject
|
||||
|
@ -704,7 +713,7 @@ class Snapper:
|
|||
callback(None)
|
||||
|
||||
# adding 2 callback functions
|
||||
self.ui.pointUi(cancel=cancel,extradlg=extradlg)
|
||||
self.ui.pointUi(cancel=cancel,getcoords=getcoords,rel=bool(last))
|
||||
self.callbackClick = self.view.addEventCallbackPivy(coin.SoMouseButtonEvent.getClassTypeId(),click)
|
||||
self.callbackMove = self.view.addEventCallbackPivy(coin.SoLocation2Event.getClassTypeId(),move)
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user