forked from qt-creator/qt-creator
QmlProfiler: prevent details pop-ups to leave screen
Task-number: QTCREATORBUG-8058 Change-Id: Id20e9d0573ee52bd0965a4e56c51df2aee6d2fa2 Reviewed-by: Christian Stenger <christian.stenger@digia.com>
This commit is contained in:
@@ -55,6 +55,28 @@ Item {
|
|||||||
property int relativey : y - yoffset
|
property int relativey : y - yoffset
|
||||||
onYChanged: relativey = y - yoffset
|
onYChanged: relativey = y - yoffset
|
||||||
|
|
||||||
|
// keep inside view
|
||||||
|
Connections {
|
||||||
|
target: root
|
||||||
|
onWidthChanged: fitInView();
|
||||||
|
onCandidateHeightChanged: fitInView();
|
||||||
|
}
|
||||||
|
|
||||||
|
function fitInView() {
|
||||||
|
// don't reposition if it does not fit
|
||||||
|
if (root.width < width || root.candidateHeight < height)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (x + width > root.width)
|
||||||
|
x = root.width - width;
|
||||||
|
if (x < 0)
|
||||||
|
x = 0;
|
||||||
|
if (y + height > root.candidateHeight)
|
||||||
|
y = root.candidateHeight - height;
|
||||||
|
if (y < 0)
|
||||||
|
y = 0;
|
||||||
|
}
|
||||||
|
|
||||||
// shadow
|
// shadow
|
||||||
BorderImage {
|
BorderImage {
|
||||||
property int px: 4
|
property int px: 4
|
||||||
@@ -163,6 +185,10 @@ Item {
|
|||||||
width: col.width + 45
|
width: col.width + 45
|
||||||
height: col.height + 30
|
height: col.height + 30
|
||||||
drag.target: parent
|
drag.target: parent
|
||||||
|
drag.minimumX: 0
|
||||||
|
drag.maximumX: root.width - parent.width
|
||||||
|
drag.minimumY: 0
|
||||||
|
drag.maximumY: root.candidateHeight - parent.height
|
||||||
onClicked: {
|
onClicked: {
|
||||||
root.gotoSourceLocation(file, line, column);
|
root.gotoSourceLocation(file, line, column);
|
||||||
root.recenterOnItem(view.selectedItem);
|
root.recenterOnItem(view.selectedItem);
|
||||||
|
@@ -50,6 +50,28 @@ Item {
|
|||||||
property int relativey : y - yoffset
|
property int relativey : y - yoffset
|
||||||
onYChanged: relativey = y - yoffset
|
onYChanged: relativey = y - yoffset
|
||||||
|
|
||||||
|
// keep inside view
|
||||||
|
Connections {
|
||||||
|
target: root
|
||||||
|
onWidthChanged: fitInView();
|
||||||
|
onCandidateHeightChanged: fitInView();
|
||||||
|
}
|
||||||
|
|
||||||
|
function fitInView() {
|
||||||
|
// don't reposition if it does not fit
|
||||||
|
if (root.width < width || root.candidateHeight < height)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (x + width > root.width)
|
||||||
|
x = root.width - width;
|
||||||
|
if (x < 0)
|
||||||
|
x = 0;
|
||||||
|
if (y + height > root.candidateHeight)
|
||||||
|
y = root.candidateHeight - height;
|
||||||
|
if (y < 0)
|
||||||
|
y = 0;
|
||||||
|
}
|
||||||
|
|
||||||
// shadow
|
// shadow
|
||||||
BorderImage {
|
BorderImage {
|
||||||
property int px: 4
|
property int px: 4
|
||||||
@@ -134,6 +156,10 @@ Item {
|
|||||||
width: col.width + 45
|
width: col.width + 45
|
||||||
height: col.height + 30
|
height: col.height + 30
|
||||||
drag.target: parent
|
drag.target: parent
|
||||||
|
drag.minimumX: 0
|
||||||
|
drag.maximumX: root.width - parent.width
|
||||||
|
drag.minimumY: 0
|
||||||
|
drag.maximumY: root.candidateHeight - parent.height
|
||||||
onClicked: {
|
onClicked: {
|
||||||
if ((selectionRange.x < flick.contentX) ^ (selectionRange.x+selectionRange.width > flick.contentX + flick.width)) {
|
if ((selectionRange.x < flick.contentX) ^ (selectionRange.x+selectionRange.width > flick.contentX + flick.width)) {
|
||||||
root.recenter(selectionRange.startTime + selectionRange.duration/2);
|
root.recenter(selectionRange.startTime + selectionRange.duration/2);
|
||||||
|
Reference in New Issue
Block a user