diff options
author | Christiaan Janssen <christiaan.janssen@nokia.com> | 2011-06-27 18:33:20 +0200 |
---|---|---|
committer | Christiaan Janssen <christiaan.janssen@nokia.com> | 2011-06-28 16:35:32 +0200 |
commit | 17db97b698c3edf6fa4cce04b7b936d64165b6c9 (patch) | |
tree | 20f80189ee24b585e9775cf336913b36da9fd7ec /src | |
parent | ddb602536cd6813df57d5ea09483e195e5b12433 (diff) | |
download | qt-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.qml | 56 | ||||
-rw-r--r-- | src/plugins/qmlprofiler/qml/RangeMover.qml | 1 | ||||
-rw-r--r-- | src/plugins/qmlprofiler/qml/TimeDisplay.qml | 66 |
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(); + } } } } |