diff --git a/src/libs/timeline/qml/MainView.qml b/src/libs/timeline/qml/MainView.qml
index 43c818adc1c..543691e5bab 100644
--- a/src/libs/timeline/qml/MainView.qml
+++ b/src/libs/timeline/qml/MainView.qml
@@ -318,6 +318,17 @@ Rectangle {
}
}
+ TimelineRulers {
+ contentX: buttonsBar.width - content.x - content.flickableItem.x + content.contentX
+ anchors.left: buttonsBar.right
+ anchors.right: parent.right
+ anchors.top: parent.top
+ height: content.flickableItem.height + buttonsBar.height
+ windowStart: zoomControl.windowStart
+ viewTimePerPixel: selectionRange.viewTimePerPixel
+ scaleHeight: buttonsBar.height
+ }
+
SelectionRangeDetails {
z: 3
x: 200
diff --git a/src/libs/timeline/qml/TimelineRulers.qml b/src/libs/timeline/qml/TimelineRulers.qml
new file mode 100644
index 00000000000..8ee08fc401c
--- /dev/null
+++ b/src/libs/timeline/qml/TimelineRulers.qml
@@ -0,0 +1,128 @@
+/****************************************************************************
+**
+** Copyright (C) 2016 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+****************************************************************************/
+
+import QtQuick 2.0
+
+Item {
+ id: rulersParent
+ property int scaleHeight
+ property double viewTimePerPixel: 1
+ property double contentX
+ property double windowStart
+ clip: true
+
+ ListModel {
+ id: rulersModel
+ }
+
+ MouseArea {
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ height: scaleHeight
+
+ onClicked: {
+ rulersModel.append({
+ timestamp: (mouse.x + contentX) * viewTimePerPixel + windowStart
+ });
+ }
+ }
+
+ Item {
+ id: dragDummy
+ property int index: -1
+ onXChanged: {
+ if (index >= 0) {
+ rulersModel.setProperty(
+ index, "timestamp",
+ (x + contentX) * viewTimePerPixel + windowStart);
+ }
+ }
+ }
+
+ Repeater {
+ model: rulersModel
+
+ Item {
+ id: ruler
+ x: (timestamp - windowStart) / viewTimePerPixel - 1 - contentX
+ y: 0
+ width: 2
+ height: rulersParent.height
+ Rectangle {
+ id: arrow
+ height: scaleHeight
+ width: scaleHeight
+ rotation: 45
+ anchors.verticalCenter: parent.top
+ anchors.horizontalCenter: parent.horizontalCenter
+ color: creatorTheme.Timeline_HandleColor
+ MouseArea {
+ cursorShape: pressed ? Qt.DragMoveCursor : Qt.OpenHandCursor
+ anchors.fill: parent
+ drag.target: dragDummy
+ drag.axis: Drag.XAxis
+ drag.smoothed: false
+ onPressedChanged: {
+ if (!pressed) {
+ dragDummy.index = -1
+ } else {
+ dragDummy.x = ruler.x + 1
+ dragDummy.index = index
+ }
+ }
+ }
+ }
+
+ Rectangle {
+ anchors.left: parent.left
+ anchors.top: arrow.bottom
+ anchors.bottom: parent.bottom
+ width: 2
+ color: creatorTheme.Timeline_HandleColor
+ }
+
+ Rectangle {
+ anchors.top: arrow.bottom
+ anchors.horizontalCenter: ruler.horizontalCenter
+ width: scaleHeight / 4
+ height: width
+ color: creatorTheme.Timeline_PanelBackgroundColor
+
+ Rectangle {
+ anchors.centerIn: parent
+ width: parent.width - 2
+ height: 1
+ color: creatorTheme.Timeline_TextColor
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: rulersModel.remove(index, 1)
+ }
+ }
+ }
+ }
+}
diff --git a/src/libs/timeline/qml/timeline.qrc b/src/libs/timeline/qml/timeline.qrc
index 090ffcdc1c3..18a1933c6f6 100644
--- a/src/libs/timeline/qml/timeline.qrc
+++ b/src/libs/timeline/qml/timeline.qrc
@@ -30,5 +30,6 @@
SynchronousReloader.qml
TimelineText.qml
ImageToolButton.qml
+ TimelineRulers.qml