summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristiaan Janssen <christiaan.janssen@nokia.com>2011-06-27 18:33:20 +0200
committerChristiaan Janssen <christiaan.janssen@nokia.com>2011-06-28 16:35:32 +0200
commit17db97b698c3edf6fa4cce04b7b936d64165b6c9 (patch)
tree20f80189ee24b585e9775cf336913b36da9fd7ec /src
parentddb602536cd6813df57d5ea09483e195e5b12433 (diff)
downloadqt-creator-17db97b698c3edf6fa4cce04b7b936d64165b6c9.tar.gz
QmlProfiler: show ranges in time display
Change-Id: I6f42db3d5de02ee0198ff51aae8421bbdc5ea9c4 Reviewed-on: http://codereview.qt.nokia.com/836 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/qmlprofiler/qml/MainView.qml56
-rw-r--r--src/plugins/qmlprofiler/qml/RangeMover.qml1
-rw-r--r--src/plugins/qmlprofiler/qml/TimeDisplay.qml66
3 files changed, 101 insertions, 22 deletions
diff --git a/src/plugins/qmlprofiler/qml/MainView.qml b/src/plugins/qmlprofiler/qml/MainView.qml
index cdb5cfb6bf..cbdfbc96ad 100644
--- a/src/plugins/qmlprofiler/qml/MainView.qml
+++ b/src/plugins/qmlprofiler/qml/MainView.qml
@@ -439,4 +439,60 @@ Rectangle {
opacity: 0
anchors.top: canvas.top
}
+
+ // the next elements are here because I want them rendered on top of the other
+ Rectangle {
+ id: timeDisplayLabel
+ color: "lightsteelblue"
+ border.color: Qt.darker(color)
+ border.width: 1
+ radius: 2
+ height: Math.max(labels.y-2, timeDisplayText.height);
+ y: timeDisplayEnd.visible ? flick.height - 1 : 1
+ width: timeDisplayText.width + 10 + ( timeDisplayEnd.visible ? timeDisplayCloseControl.width + 10 : 0 )
+ visible: false
+
+ function hideAll() {
+ timeDisplayBegin.visible = false;
+ timeDisplayEnd.visible = false;
+ timeDisplayLabel.visible = false;
+ }
+ Text {
+ id: timeDisplayText
+ x: 5
+ y: parent.height/2 - height/2 + 1
+ font.pointSize: 8
+ }
+
+ Text {
+ id: timeDisplayCloseControl
+ text:"X"
+ anchors.right: parent.right
+ anchors.rightMargin: 3
+ y: parent.height/2 - height/2 + 1
+ visible: timeDisplayEnd.visible
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ timeDisplayLabel.hideAll();
+ }
+ }
+ }
+ }
+
+ Rectangle {
+ id: timeDisplayBegin
+ width: 1
+ color: Qt.rgba(0,0,64,0.7);
+ height: flick.height + labels.y
+ visible: false
+ }
+
+ Rectangle {
+ id: timeDisplayEnd
+ width: 1
+ color: Qt.rgba(0,0,64,0.7);
+ height: flick.height + labels.y
+ visible: false
+ }
}
diff --git a/src/plugins/qmlprofiler/qml/RangeMover.qml b/src/plugins/qmlprofiler/qml/RangeMover.qml
index 936ca54c7b..193921c688 100644
--- a/src/plugins/qmlprofiler/qml/RangeMover.qml
+++ b/src/plugins/qmlprofiler/qml/RangeMover.qml
@@ -43,6 +43,7 @@ Item {
property color darkerColor:"#cc6da1e8"
property real value: (canvas.canvasWindow.x + x) * Plotter.xScale(canvas)
property real zoomWidth: 20
+ onZoomWidthChanged: timeDisplayLabel.hideAll();
function updateZoomControls() {
rightRange.x = rangeMover.width;
diff --git a/src/plugins/qmlprofiler/qml/TimeDisplay.qml b/src/plugins/qmlprofiler/qml/TimeDisplay.qml
index 28c0dd5b7a..026846f900 100644
--- a/src/plugins/qmlprofiler/qml/TimeDisplay.qml
+++ b/src/plugins/qmlprofiler/qml/TimeDisplay.qml
@@ -112,31 +112,53 @@ TiledCanvas {
width: parent.width
height: labels.y
hoverEnabled: true
+
+ function setStartTime(xpos) {
+ var realTime = startTime + xpos * timePerPixel;
+ timeDisplayText.text = detailedPrintTime(realTime);
+ timeDisplayBegin.visible = true;
+ timeDisplayBegin.x = xpos + flick.x;
+ }
+
+ function setEndTime(xpos) {
+ var bt = startTime + (timeDisplayBegin.x - flick.x) * timePerPixel;
+ var et = startTime + xpos * timePerPixel;
+ var timeDisplayBeginTime = Math.min(bt, et);
+ var timeDisplayEndTime = Math.max(bt, et);
+
+ timeDisplayText.text = qsTr("length:")+detailedPrintTime(timeDisplayEndTime-timeDisplayBeginTime);
+ timeDisplayEnd.visible = true;
+ timeDisplayEnd.x = xpos + flick.x
+ }
+
onMousePositionChanged: {
- var realTime = startTime + mouseX * timePerPixel;
- displayText.text = detailedPrintTime(realTime);
- displayRect.x = mouseX
- displayRect.visible = true
+ if (!Plotter.ranges.length)
+ return;
+
+ if (!pressed && timeDisplayEnd.visible)
+ return;
+
+ timeDisplayLabel.x = mouseX + flick.x
+ timeDisplayLabel.visible = true
+
+ if (pressed) {
+ setEndTime(mouseX);
+ } else {
+ setStartTime(mouseX);
+ }
}
- onExited: displayRect.visible = false
- onEntered: root.hideRangeDetails();
- }
- Rectangle {
- id: displayRect
- color: "lightsteelblue"
- border.color: Qt.darker(color)
- border.width: 1
- radius: 2
- height: labels.y - 2
- y: 1
- width: displayText.width + 10
- visible: false
- Text {
- id: displayText
- x: 5
- y: labels.y/2 - 6
- font.pointSize: 8
+ onPressed: {
+ setStartTime(mouseX);
+ }
+
+ onEntered: {
+ root.hideRangeDetails();
+ }
+ onExited: {
+ if ((!pressed) && (!timeDisplayEnd.visible)) {
+ timeDisplayLabel.hideAll();
+ }
}
}
}