QmlPuppet: Fix runtime warnings in 3D editor

Fixes: QDS-4491
Change-Id: I462e165ef59111f70c928b7d652ade99c5b3c0d0
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
This commit is contained in:
Miikka Heikkinen
2021-06-08 16:13:18 +03:00
parent dcfc467959
commit b73884bee5
22 changed files with 109 additions and 56 deletions

View File

@@ -67,18 +67,18 @@ DirectionalDraggable {
handleRoot.currentMousePos = screenPos;
}
onPressed: {
onPressed: (mouseArea, screenPos)=> {
_startScale = autoScaler.relativeScale * baseScale;
_startValue = propValue;
updateValue(0, screenPos);
}
onDragged: {
onDragged: (mouseArea, sceneRelativeDistance, relativeDistance, screenPos)=> {
updateValue(relativeDistance, screenPos);
handleRoot.valueChange();
}
onReleased: {
onReleased: (mouseArea, sceneRelativeDistance, relativeDistance, screenPos)=> {
updateValue(relativeDistance, screenPos);
handleRoot.valueCommit();
}

View File

@@ -47,14 +47,14 @@ DirectionalDraggable {
_generalHelper.restartMultiSelection();
}
onDragged: {
onDragged: (mouseArea, sceneRelativeDistance)=> {
targetNode.position = localPos(sceneRelativeDistance);
if (targetNode == multiSelectionNode)
_generalHelper.moveMultiSelection(false);
positionMove();
}
onReleased: {
onReleased: (mouseArea, sceneRelativeDistance)=> {
targetNode.position = localPos(sceneRelativeDistance);
if (targetNode == multiSelectionNode)
_generalHelper.moveMultiSelection(true);

View File

@@ -113,11 +113,11 @@ View3D {
}
}
onPositionChanged: {
onPositionChanged: (mouse)=> {
pick(mouse);
}
onPressed: {
onPressed: (mouse)=> {
pick(mouse);
if (pickObj) {
axisHelperView.editCameraCtrl.focusObject(axisHelperView.selectedNode,

View File

@@ -106,9 +106,15 @@ Model {
dragHelper: rootModel.dragHelper
priority: 5
onPressed: rootModel.handlePressed(mouseAreaYZ, planePos, screenPos)
onDragged: rootModel.handleDragged(mouseAreaYZ, planePos, screenPos)
onReleased: rootModel.handleReleased(mouseAreaYZ, planePos, screenPos)
onPressed: (planePos, screenPos)=> {
rootModel.handlePressed(mouseAreaYZ, planePos, screenPos);
}
onDragged: (planePos, screenPos)=> {
rootModel.handleDragged(mouseAreaYZ, planePos, screenPos);
}
onReleased: (planePos, screenPos)=> {
rootModel.handleReleased(mouseAreaYZ, planePos, screenPos);
}
}
MouseArea3D {
@@ -124,9 +130,15 @@ Model {
dragHelper: rootModel.dragHelper
priority: 5
onPressed: rootModel.handlePressed(mouseAreaXZ, planePos, screenPos)
onDragged: rootModel.handleDragged(mouseAreaXZ, planePos, screenPos)
onReleased: rootModel.handleReleased(mouseAreaXZ, planePos, screenPos)
onPressed: (planePos, screenPos)=> {
rootModel.handlePressed(mouseAreaXZ, planePos, screenPos);
}
onDragged: (planePos, screenPos)=> {
rootModel.handleDragged(mouseAreaXZ, planePos, screenPos);
}
onReleased: (planePos, screenPos)=> {
rootModel.handleReleased(mouseAreaXZ, planePos, screenPos);
}
}
}

View File

@@ -132,7 +132,7 @@ Item {
acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton
hoverEnabled: false
anchors.fill: parent
onPositionChanged: {
onPositionChanged: (mouse)=> {
if (cameraCtrl.camera && mouse.modifiers === Qt.AltModifier && cameraCtrl._dragging) {
var currentPoint = Qt.vector3d(mouse.x, mouse.y, 0);
if (cameraCtrl._button == Qt.LeftButton) {
@@ -150,7 +150,7 @@ Item {
}
}
}
onPressed: {
onPressed: (mouse)=> {
if (cameraCtrl.camera && mouse.modifiers === Qt.AltModifier) {
cameraCtrl._dragging = true;
cameraCtrl._startRotation = cameraCtrl.camera.eulerRotation;
@@ -173,7 +173,7 @@ Item {
onReleased: handleRelease()
onCanceled: handleRelease()
onWheel: {
onWheel: (wheel)=> {
if (cameraCtrl.camera) {
// Empirically determined divisor for nice zoom
cameraCtrl.zoomRelative(wheel.angleDelta.y / -40);

View File

@@ -604,8 +604,12 @@ Item {
view3D: overlayView
dragHelper: gizmoDragHelper
onPropertyValueCommit: viewRoot.commitObjectProperty([targetNode], [propName])
onPropertyValueChange: viewRoot.changeObjectProperty([targetNode], [propName])
onPropertyValueCommit: (propName)=> {
viewRoot.commitObjectProperty([targetNode], [propName]);
}
onPropertyValueChange: (propName)=> {
viewRoot.changeObjectProperty([targetNode], [propName]);
}
}
AutoScaleHelper {
@@ -682,7 +686,7 @@ Item {
property point pressPoint
property bool initialMoveBlock: false
onPressed: {
onPressed: (mouse)=> {
if (viewRoot.editView) {
var pickResult = viewRoot.editView.pick(mouse.x, mouse.y);
handleObjectClicked(_generalHelper.resolvePick(pickResult.objectHit),
@@ -703,7 +707,7 @@ Item {
}
}
}
onPositionChanged: {
onPositionChanged: (mouse)=> {
if (freeDraggerArea) {
if (initialMoveBlock && Math.abs(pressPoint.x - mouse.x) + Math.abs(pressPoint.y - mouse.y) > 10) {
// Don't force press event at actual press, as that puts the gizmo
@@ -728,8 +732,12 @@ Item {
}
}
onReleased: handleRelease(mouse)
onCanceled: handleRelease(mouse)
onReleased: (mouse)=> {
handleRelease(mouse);
}
onCanceled: (mouse)=> {
handleRelease(mouse);
}
}
DropArea {

View File

@@ -98,7 +98,7 @@ DirectionalDraggable {
handleRoot.currentMousePos = screenPos;
}
onPressed: {
onPressed: (mouseArea, screenPos)=> {
_startScale = autoScaler.relativeScale * baseScale * dragScale;
_startFadeScale = fadeScale;
_l = targetNode.linearFade;
@@ -116,12 +116,12 @@ DirectionalDraggable {
updateFade(0, screenPos);
}
onDragged: {
onDragged: (mouseArea, sceneRelativeDistance, relativeDistance, screenPos)=> {
updateFade(relativeDistance, screenPos);
handleRoot.valueChange(_currentProp);
}
onReleased: {
onReleased: (mouseArea, sceneRelativeDistance, relativeDistance, screenPos)=> {
updateFade(relativeDistance, screenPos);
handleRoot.valueCommit(_currentProp);
}

View File

@@ -81,7 +81,7 @@ Item {
MouseArea {
id: iconMouseArea
anchors.fill: parent
onPressed: {
onPressed: (mouse)=> {
// Ignore singleselection mouse presses when we have single object selected
// so that the icon gizmo doesn't hijack mouse clicks meant for other gizmos
if (iconGizmo.selected && !(mouse.modifiers & Qt.ControlModifier)
@@ -90,8 +90,10 @@ Item {
}
}
onClicked: iconGizmo.clicked(iconGizmo.targetNode,
mouse.modifiers & Qt.ControlModifier)
onClicked: (mouse)=> {
iconGizmo.clicked(iconGizmo.targetNode,
mouse.modifiers & Qt.ControlModifier);
}
hoverEnabled: iconGizmo.highlightOnHover && !iconGizmo.selected
acceptedButtons: Qt.LeftButton

View File

@@ -109,8 +109,12 @@ Node {
lightGizmo.currentMousePos = currentMousePos;
lightGizmo.currentLabel = currentLabel;
}
onValueChange: lightGizmo.propertyValueChange(propName)
onValueCommit: lightGizmo.propertyValueCommit(propName)
onValueChange: (propName)=> {
lightGizmo.propertyValueChange(propName);
}
onValueCommit: (propName)=> {
lightGizmo.propertyValueCommit(propName);
}
}
}
@@ -223,8 +227,12 @@ Node {
lightGizmo.currentMousePos = currentMousePos;
lightGizmo.currentLabel = currentLabel;
}
onValueChange: lightGizmo.propertyValueChange(propName)
onValueCommit: lightGizmo.propertyValueCommit(propName)
onValueChange: (propName)=> {
lightGizmo.propertyValueChange(propName);
}
onValueCommit: (propName)=> {
lightGizmo.propertyValueCommit(propName);
}
}
}
Node {
@@ -322,17 +330,17 @@ Node {
targetNode.brightness = currentValue;
}
onPressed: {
onPressed: (mouseArea, screenPos)=> {
_startBrightness = targetNode.brightness;
updateBrightness(0, screenPos);
}
onDragged: {
onDragged: (mouseArea, sceneRelativeDistance, relativeDistance, screenPos)=> {
updateBrightness(relativeDistance, screenPos);
lightGizmo.propertyValueChange("brightness");
}
onReleased: {
onReleased: (mouseArea, sceneRelativeDistance, relativeDistance, screenPos)=> {
updateBrightness(relativeDistance, screenPos);
lightGizmo.propertyValueCommit("brightness");
}

View File

@@ -105,9 +105,15 @@ Model {
active: rootModel.active
dragHelper: rootModel.dragHelper
onPressed: rootModel.handlePressed(mouseArea, planePos)
onDragged: rootModel.handleDragged(mouseArea, planePos)
onReleased: rootModel.handleReleased(mouseArea, planePos)
onPressed: (planePos)=> {
rootModel.handlePressed(mouseArea, planePos);
}
onDragged: (planePos)=> {
rootModel.handleDragged(mouseArea, planePos);
}
onReleased: (planePos)=> {
rootModel.handleReleased(mouseArea, planePos);
}
}
}

View File

@@ -48,14 +48,14 @@ PlanarDraggable {
_generalHelper.restartMultiSelection();
}
onDragged: {
onDragged: (mouseArea, sceneRelativeDistance)=> {
targetNode.position = localPos(sceneRelativeDistance);
if (targetNode == multiSelectionNode)
_generalHelper.moveMultiSelection(false);
positionMove();
}
onReleased: {
onReleased: (mouseArea, sceneRelativeDistance)=> {
targetNode.position = localPos(sceneRelativeDistance);
if (targetNode == multiSelectionNode)
_generalHelper.moveMultiSelection(true);

View File

@@ -46,7 +46,7 @@ PlanarDraggable {
_startScale = targetNode.scale;
}
onDragged: {
onDragged: (mouseArea, sceneRelativeDistance, relativeDistance)=> {
targetNode.scale = mouseArea.getNewScale(_startScale, relativeDistance.times(scale.x),
axisX, axisY);
if (targetNode == multiSelectionNode)
@@ -54,7 +54,7 @@ PlanarDraggable {
scaleChange();
}
onReleased: {
onReleased: (mouseArea, sceneRelativeDistance, relativeDistance)=> {
targetNode.scale = mouseArea.getNewScale(_startScale, relativeDistance.times(scale.x),
axisX, axisY);
if (targetNode == multiSelectionNode)

View File

@@ -279,9 +279,15 @@ Node {
active: rotateGizmo.visible && !rotateGizmo.blocked
dragHelper: rotateGizmo.dragHelper
onPressed: freeRotator.handlePressed(screenPos)
onDragged: freeRotator.handleDragged(screenPos)
onReleased: freeRotator.handleReleased(screenPos)
onPressed: (planePos, screenPos)=> {
freeRotator.handlePressed(screenPos);
}
onDragged: (planePos, screenPos)=> {
freeRotator.handleDragged(screenPos);
}
onReleased: (planePos, screenPos)=> {
freeRotator.handleReleased(screenPos);
}
}
}
}

View File

@@ -151,8 +151,14 @@ Model {
minAngle: 0.05
dragHelper: rotateRing.dragHelper
onPressed: rotateRing.handlePressed(screenPos, angle)
onDragged: rotateRing.handleDragged(screenPos)
onReleased: rotateRing.handleReleased(screenPos)
onPressed: (planePos, screenPos, angle)=> {
rotateRing.handlePressed(screenPos, angle);
}
onDragged: (planePos, screenPos)=> {
rotateRing.handleDragged(screenPos);
}
onReleased: (planePos, screenPos)=> {
rotateRing.handleReleased(screenPos);
}
}
}

View File

@@ -208,7 +208,7 @@ Node {
scaler * _startScale.z);
}
onPressed: {
onPressed: (planePos, screenPos)=> {
if (!scaleGizmo.targetNode)
return;
@@ -221,7 +221,7 @@ Node {
scaleGizmo.targetNode.scale.z);
_startScreenPos = screenPos;
}
onDragged: {
onDragged: (planePos, screenPos)=> {
if (!scaleGizmo.targetNode)
return;
scaleGizmo.targetNode.scale = localScale(screenPos);
@@ -229,7 +229,7 @@ Node {
_generalHelper.scaleMultiSelection(false);
scaleGizmo.scaleChange();
}
onReleased: {
onReleased: (planePos, screenPos)=> {
if (!scaleGizmo.targetNode)
return;

View File

@@ -55,7 +55,7 @@ DirectionalDraggable {
_startScale = targetNode.scale;
}
onDragged: {
onDragged: (mouseArea, sceneRelativeDistance, relativeDistance)=> {
targetNode.scale = mouseArea.getNewScale(_startScale, Qt.vector2d(relativeDistance, 0),
axis, Qt.vector3d(0, 0, 0));
if (targetNode == multiSelectionNode)
@@ -63,7 +63,7 @@ DirectionalDraggable {
scaleChange();
}
onReleased: {
onReleased: (mouseArea, sceneRelativeDistance, relativeDistance)=> {
targetNode.scale = mouseArea.getNewScale(_startScale, Qt.vector2d(relativeDistance, 0),
axis, Qt.vector3d(0, 0, 0));
if (targetNode == multiSelectionNode)

View File

@@ -65,17 +65,17 @@ DirectionalDraggable {
handleRoot.currentMousePos = screenPos;
}
onPressed: {
onPressed: (mouseArea, screenPos)=> {
_startAngle = propValue;
updateAngle(0, screenPos);
}
onDragged: {
onDragged: (mouseArea, sceneRelativeDistance, relativeDistance, screenPos)=> {
updateAngle(relativeDistance, screenPos);
handleRoot.valueChange();
}
onReleased: {
onReleased: (mouseArea, sceneRelativeDistance, relativeDistance, screenPos)=> {
updateAngle(relativeDistance, screenPos);
handleRoot.valueCommit();
}

View File

@@ -148,6 +148,7 @@ QSSGRenderGraphObject *CameraGeometry::updateSpatialNode(QSSGRenderGraphObject *
m_camera->mapToViewport({}, m_viewPortRect.width(), m_viewPortRect.height());
}
setStride(12); // Silence a warning
node = QQuick3DGeometry::updateSpatialNode(node);
QSSGRenderGeometry *geometry = static_cast<QSSGRenderGeometry *>(node);

View File

@@ -105,6 +105,7 @@ void GridGeometry::setIsCenterLine(bool enabled)
QSSGRenderGraphObject *GridGeometry::updateSpatialNode(QSSGRenderGraphObject *node)
{
setStride(12); // Silence a warning
node = QQuick3DGeometry::updateSpatialNode(node);
QSSGRenderGeometry *geometry = static_cast<QSSGRenderGeometry *>(node);
geometry->clear();

View File

@@ -79,6 +79,7 @@ QSSGRenderGraphObject *LightGeometry::updateSpatialNode(QSSGRenderGraphObject *n
if (m_lightType == LightType::Invalid)
return node;
setStride(12); // Silence a warning
node = QQuick3DGeometry::updateSpatialNode(node);
QSSGRenderGeometry *geometry = static_cast<QSSGRenderGeometry *>(node);

View File

@@ -84,6 +84,7 @@ void LineGeometry::setEndPos(const QVector3D &pos)
QSSGRenderGraphObject *LineGeometry::updateSpatialNode(QSSGRenderGraphObject *node)
{
setStride(12); // Silence a warning
node = QQuick3DGeometry::updateSpatialNode(node);
QSSGRenderGeometry *geometry = static_cast<QSSGRenderGeometry *>(node);
geometry->clear();

View File

@@ -154,6 +154,7 @@ QSSGRenderGraphObject *SelectionBoxGeometry::updateSpatialNode(QSSGRenderGraphOb
return node;
}
setStride(12); // Silence a warning
node = QQuick3DGeometry::updateSpatialNode(node);
QSSGRenderGeometry *geometry = static_cast<QSSGRenderGeometry *>(node);