Finishing position picker for objects having a position.
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
391cf61e36
commit
4afe0d4d63
4 changed files with 62 additions and 11 deletions
|
@ -35,7 +35,7 @@ Popup {
|
|||
height: logo.height
|
||||
width: logo.width + 10 + welcomeText.width
|
||||
anchors.top: parent.top
|
||||
anchors.topMargin: 50
|
||||
anchors.topMargin: (parent.width-width)/2
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
Image {
|
||||
|
|
|
@ -155,6 +155,7 @@ ApplicationWindow {
|
|||
}
|
||||
|
||||
PickLocationOverlay {
|
||||
id: positionPicker
|
||||
anchors.fill: parent
|
||||
canvas: parent
|
||||
}
|
||||
|
|
|
@ -120,6 +120,32 @@ ListView {
|
|||
}
|
||||
}
|
||||
|
||||
Button {
|
||||
id: pointerButton
|
||||
width: parent.height - 10
|
||||
height: width
|
||||
anchors.right: deleteButton.left
|
||||
anchors.rightMargin: 5
|
||||
anchors.topMargin: 5
|
||||
icon.name: 'position'
|
||||
property bool hasXProp: Objects.types[objType].properties().hasOwnProperty('x')
|
||||
property bool hasYProp: Objects.types[objType].properties().hasOwnProperty('y')
|
||||
visible: hasXProp || hasYProp
|
||||
ToolTip.visible: hovered
|
||||
ToolTip.text: 'Set ' + Objects.types[objType].displayType() + ' position.'
|
||||
|
||||
onClicked: {
|
||||
positionPicker.objType = objType
|
||||
positionPicker.objName = Objects.currentObjects[objType][index].name
|
||||
positionPicker.pickX = hasXProp
|
||||
positionPicker.pickY = hasYProp
|
||||
positionPicker.propertyX = 'x'
|
||||
positionPicker.propertyY = 'y'
|
||||
positionPicker.visible = true
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Button {
|
||||
id: deleteButton
|
||||
width: parent.height - 10
|
||||
|
@ -131,7 +157,7 @@ ListView {
|
|||
|
||||
onClicked: {
|
||||
history.addToHistory(new HistoryLib.DeleteObject(
|
||||
objEditor.obj.name, objEditor.objType, objEditor.obj.export()
|
||||
Objects.currentObjects[objType][index].name, objType, Objects.currentObjects[objType][index].export()
|
||||
))
|
||||
Objects.currentObjects[objType][index].delete()
|
||||
Objects.currentObjects[objType].splice(index, 1)
|
||||
|
|
|
@ -33,6 +33,7 @@ Item {
|
|||
property bool pickX: true
|
||||
property string propertyX: 'x'
|
||||
property string propertyY: 'y'
|
||||
property alias precision: precisionSlider.value
|
||||
|
||||
Rectangle {
|
||||
color: sysPalette.window
|
||||
|
@ -47,7 +48,7 @@ Item {
|
|||
cursorShape: Qt.CrossCursor
|
||||
onClicked: {
|
||||
if(parent.pickX) {
|
||||
var newValue = canvas.px2x(picker.mouseX).toFixed(2)
|
||||
var newValue = canvas.px2x(picker.mouseX).toFixed(parent.precision)
|
||||
newValue = {
|
||||
'Expression': () => new MathLib.Expression(newValue),
|
||||
'number': () => parseFloat(newValue)
|
||||
|
@ -61,7 +62,7 @@ Item {
|
|||
objectLists.update()
|
||||
}
|
||||
if(parent.pickY) {
|
||||
var newValue = canvas.px2y(picker.mouseY).toFixed(2)
|
||||
var newValue = canvas.px2y(picker.mouseY).toFixed(parent.precision)
|
||||
newValue = {
|
||||
'Expression': () => new MathLib.Expression(newValue),
|
||||
'number': () => parseFloat(newValue)
|
||||
|
@ -78,11 +79,33 @@ Item {
|
|||
}
|
||||
}
|
||||
|
||||
Row {
|
||||
height: precisionSlider.height
|
||||
Text {
|
||||
text: " Pointer precision: "
|
||||
color: 'black'
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
|
||||
Slider {
|
||||
id: precisionSlider
|
||||
from: 0
|
||||
value: 2
|
||||
to: 10
|
||||
stepSize: 1
|
||||
ToolTip {
|
||||
parent: precisionSlider.handle
|
||||
visible: precisionSlider.pressed
|
||||
text: precisionSlider.value.toFixed(0)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: xCursor
|
||||
width: 1
|
||||
height: parent.height
|
||||
color: sysPalette.windowText
|
||||
color: 'black'
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: picker.mouseX
|
||||
|
@ -93,25 +116,26 @@ Item {
|
|||
id: yCursor
|
||||
width: parent.width
|
||||
height: 1
|
||||
color: sysPalette.windowText
|
||||
color: 'black'
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
anchors.topMargin: picker.mouseY
|
||||
visible: parent.pickY
|
||||
}
|
||||
|
||||
Label {
|
||||
Text {
|
||||
x: picker.mouseX - width - 5
|
||||
y: picker.mouseY - height - 5
|
||||
property double mouseX: canvas.px2x(picker.mouseX).toFixed(2)
|
||||
property double mouseY: canvas.px2y(picker.mouseY).toFixed(2)
|
||||
property double mouseX: canvas.px2x(picker.mouseX).toFixed(parent.precision)
|
||||
property double mouseY: canvas.px2y(picker.mouseY).toFixed(parent.precision)
|
||||
color: 'black'
|
||||
text: {
|
||||
if(parent.pickX && parent.pickY)
|
||||
return `(${mouseX}, ${mouseY})`
|
||||
if(parent.pickX)
|
||||
return mouseX + ''
|
||||
return `X = ${mouseX}`
|
||||
if(parent.pickY)
|
||||
return mouseY + ''
|
||||
return `Y = ${mouseY}`
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue