forked from mamont-92/EqRec2Cubemap
-
Notifications
You must be signed in to change notification settings - Fork 0
/
TransformViewer.qml
71 lines (59 loc) · 1.82 KB
/
TransformViewer.qml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import QtQuick 2.9
Rectangle {
id: root
property string imageProvider: ""
property string imageName: ""
default property alias contents: placeholder.children
border.width: 1
border.color: "gray"
function resetItemTransform(){
placeholder.x = 0;
placeholder.y = 0;
if(clipRectangle.width > 0)
placeholder.width = clipRectangle.width
if(clipRectangle.height > 0)
placeholder.height = clipRectangle.height
scaleTransform.xScale = 1.0;
scaleTransform.yScale = 1.0;
}
Rectangle{
id: clipRectangle
clip: true
anchors.fill: parent
anchors.margins: 2
Item{
id: placeholder
x:0
y:0
transform: Scale {
id: scaleTransform
}
MouseArea{
id: mouseArea
property real zoomFactor: 1.2
anchors.fill: parent
drag.target: placeholder
onReleased: placeholder.Drag.drop()
cursorShape: Qt.SizeAllCursor
onWheel: {
if(wheel.angleDelta.y > 0)
var zoomRatio = zoomFactor
else
zoomRatio = 1.0 / zoomFactor
var realX = wheel.x * scaleTransform.xScale
var realY = wheel.y * scaleTransform.yScale
placeholder.x += (1-zoomRatio)*realX
placeholder.y += (1-zoomRatio)*realY
scaleTransform.xScale *=zoomRatio
scaleTransform.yScale *=zoomRatio
}
}
}
onWidthChanged: {
resetItemTransform();
}
onHeightChanged: {
resetItemTransform();
}
}
}