forked from qt-creator/qt-creator
QmlDesigner: Fix camera view and split view interaction
Fixed camera view position on each split preset and also made sure camera view is drawn over the splitter if they overlap. Fixes: QDS-15328 Change-Id: I820f8d3071bc23b5d537dc337b75deccae606409 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
This commit is contained in:
@@ -140,11 +140,13 @@ Item {
|
|||||||
_generalHelper.storeToolState(sceneId, "activePreset", activePreset);
|
_generalHelper.storeToolState(sceneId, "activePreset", activePreset);
|
||||||
_generalHelper.requestOverlayUpdate();
|
_generalHelper.requestOverlayUpdate();
|
||||||
applyViewportPreset()
|
applyViewportPreset()
|
||||||
|
cameraView.updateSnapping()
|
||||||
}
|
}
|
||||||
onActiveViewportChanged: {
|
onActiveViewportChanged: {
|
||||||
_generalHelper.storeToolState(sceneId, "activeViewport", activeViewport);
|
_generalHelper.storeToolState(sceneId, "activeViewport", activeViewport);
|
||||||
cameraControls[activeViewport].forceActiveFocus();
|
cameraControls[activeViewport].forceActiveFocus();
|
||||||
notifyActiveViewportChange(activeViewport);
|
notifyActiveViewportChange(activeViewport);
|
||||||
|
cameraView.updateSnapping()
|
||||||
}
|
}
|
||||||
|
|
||||||
onActiveSceneChanged: updateActiveScene()
|
onActiveSceneChanged: updateActiveScene()
|
||||||
@@ -760,7 +762,6 @@ Item {
|
|||||||
updateViewRects();
|
updateViewRects();
|
||||||
updateSplitResizers();
|
updateSplitResizers();
|
||||||
|
|
||||||
cameraView.updateSnapping();
|
|
||||||
viewRoot.updateMouseCursor();
|
viewRoot.updateMouseCursor();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1078,7 +1079,7 @@ Item {
|
|||||||
border.width: 2
|
border.width: 2
|
||||||
border.color: "#57B9FC"
|
border.color: "#57B9FC"
|
||||||
color: "transparent"
|
color: "transparent"
|
||||||
z: 1000 // Edge case to make sure selection rect drawn over everything
|
z: 500
|
||||||
}
|
}
|
||||||
|
|
||||||
// Vertical divider (left/right)
|
// Vertical divider (left/right)
|
||||||
@@ -1335,21 +1336,25 @@ Item {
|
|||||||
preferredCamera: _generalHelper.activeScenePreferredCamera
|
preferredCamera: _generalHelper.activeScenePreferredCamera
|
||||||
preferredSize: Qt.size(viewRoot.width * 0.3, viewRoot.height * 0.3)
|
preferredSize: Qt.size(viewRoot.width * 0.3, viewRoot.height * 0.3)
|
||||||
viewPortSize: Qt.size(viewRoot.viewPortRect.width, viewRoot.viewPortRect.height)
|
viewPortSize: Qt.size(viewRoot.viewPortRect.width, viewRoot.viewPortRect.height)
|
||||||
|
z: 1000
|
||||||
|
|
||||||
function updateSnapping() {
|
function updateSnapping() {
|
||||||
const rect = viewRoot.viewRects[viewRoot.activeViewport];
|
switch (viewRoot.activePreset) {
|
||||||
if (!rect || !rect.visible)
|
case "Single":
|
||||||
return;
|
cameraView.snapLeft = true
|
||||||
|
break
|
||||||
const centerX = rect.x + rect.width / 2;
|
case "2Vertical":
|
||||||
cameraView.snapLeft = centerX < viewContainer.width / 2;
|
cameraView.snapLeft = viewRoot.activeViewport == 1
|
||||||
}
|
break
|
||||||
|
case "2Horizontal":
|
||||||
Connections {
|
cameraView.snapLeft = true
|
||||||
target: viewRoot
|
break
|
||||||
function onActiveViewportChanged()
|
case "Quad":
|
||||||
{
|
cameraView.snapLeft = viewRoot.activeViewport != 2
|
||||||
cameraView.updateSnapping()
|
break
|
||||||
|
case "3Left1Right":
|
||||||
|
cameraView.snapLeft = false
|
||||||
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user