forked from qt-creator/qt-creator
QmlProfiler: removed fixed height
This commit is contained in:
@@ -153,11 +153,13 @@ Rectangle {
|
||||
anchors.bottom: canvas.top
|
||||
contentWidth: view.totalWidth
|
||||
contentHeight: view.height
|
||||
flickableDirection: Flickable.HorizontalFlick
|
||||
|
||||
TimelineView {
|
||||
id: view
|
||||
|
||||
width: flick.width; height: flick.height
|
||||
width: flick.width;
|
||||
height: 50 * 5;
|
||||
|
||||
startX: flick.contentX
|
||||
onStartXChanged: {
|
||||
@@ -239,6 +241,20 @@ Rectangle {
|
||||
}
|
||||
}
|
||||
|
||||
VerticalScrollbar {
|
||||
id: verticalScrollbar
|
||||
|
||||
flickable: flick
|
||||
anchors.top: parent.top
|
||||
anchors.right : flick.right
|
||||
anchors.bottom : canvas.top
|
||||
anchors.topMargin: 1
|
||||
anchors.bottomMargin: 1
|
||||
anchors.rightMargin: 0
|
||||
anchors.leftMargin: 0
|
||||
width: 10
|
||||
}
|
||||
|
||||
//popup showing the details for the hovered range
|
||||
RangeDetails {
|
||||
id: rangeDetails
|
||||
@@ -248,8 +264,8 @@ Rectangle {
|
||||
id: labels
|
||||
width: 150
|
||||
color: "#dcdcdc"
|
||||
anchors.top: root.top
|
||||
anchors.bottom: canvas.top
|
||||
y: -flick.contentY
|
||||
height: flick.contentHeight
|
||||
|
||||
Column {
|
||||
//### change to use Repeater + Plotter.names?
|
||||
|
||||
96
src/plugins/qmlprofiler/qml/VerticalScrollbar.qml
Normal file
96
src/plugins/qmlprofiler/qml/VerticalScrollbar.qml
Normal file
@@ -0,0 +1,96 @@
|
||||
import QtQuick 1.0
|
||||
|
||||
Item {
|
||||
property variant flickable: this;
|
||||
property int viewPosition: 0;
|
||||
property int viewSize: ( flickable.height>=0 ? flickable.height : 0 );
|
||||
property int contentSize: ( flickable.contentHeight >= 0 ? flickable.contentHeight : 0 );
|
||||
|
||||
id: verticalScrollbar
|
||||
|
||||
onViewPositionChanged: flickable.contentY = viewPosition;
|
||||
onViewSizeChanged: {
|
||||
if ((contentSize > viewSize) && (viewPosition > contentSize - viewSize))
|
||||
viewPosition = contentSize - viewSize;
|
||||
}
|
||||
|
||||
onContentSizeChanged: {
|
||||
contentSizeDecreased();
|
||||
}
|
||||
|
||||
function contentSizeDecreased() {
|
||||
if ((contentSize > viewSize) && (viewPosition > contentSize - viewSize))
|
||||
viewPosition = contentSize - viewSize;
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: groove
|
||||
height: parent.height - 4
|
||||
width: 6
|
||||
color: "#FFFFFF"
|
||||
radius: 3
|
||||
border.width: 1
|
||||
border.color: "#666666"
|
||||
anchors.top: parent.top
|
||||
anchors.topMargin: 2
|
||||
anchors.bottom: parent.bottom
|
||||
anchors.bottomMargin: 2
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
y: 2
|
||||
}
|
||||
|
||||
// the scrollbar
|
||||
Item {
|
||||
id: bar
|
||||
height: parent.height
|
||||
width: parent.width
|
||||
y: Math.floor( (verticalScrollbar.contentSize > 0 ? verticalScrollbar.viewPosition * verticalScrollbar.height / verticalScrollbar.contentSize : 0));
|
||||
|
||||
Rectangle {
|
||||
id: handle
|
||||
height: {
|
||||
if (verticalScrollbar.contentSize > 0) {
|
||||
if (verticalScrollbar.viewSize > verticalScrollbar.contentSize || parent.height < 0) {
|
||||
verticalScrollbar.visible = false;
|
||||
return parent.height;
|
||||
} else {
|
||||
verticalScrollbar.visible = true;
|
||||
return Math.floor(verticalScrollbar.viewSize / verticalScrollbar.contentSize * parent.height);
|
||||
}
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
width: parent.width
|
||||
y:0
|
||||
border.color: "#666666"
|
||||
border.width: 1
|
||||
radius: 3
|
||||
|
||||
gradient: Gradient {
|
||||
GradientStop { position: 0.20; color: "#CCCCCC" }
|
||||
GradientStop { position: 0.23; color: "#AAAAAA" }
|
||||
GradientStop { position: 0.85; color: "#888888" }
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
property int dragging:0;
|
||||
property int originalY:0;
|
||||
|
||||
anchors.fill: parent
|
||||
onPressed: { dragging = 1; originalY = mouse.y; }
|
||||
onReleased: { dragging = 0; }
|
||||
onPositionChanged: {
|
||||
if (dragging) {
|
||||
var newY = mouse.y - originalY + bar.y;
|
||||
if (newY<0) newY=0;
|
||||
if (newY>verticalScrollbar.height - handle.height)
|
||||
newY=verticalScrollbar.height - handle.height;
|
||||
verticalScrollbar.viewPosition = (newY * verticalScrollbar.contentSize / verticalScrollbar.height);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -12,5 +12,6 @@
|
||||
<file>RecordButton.qml</file>
|
||||
<file>ToolButton.qml</file>
|
||||
<file>analyzer_category_small.png</file>
|
||||
<file>VerticalScrollbar.qml</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
||||
@@ -50,7 +50,8 @@ OTHER_FILES += \
|
||||
qml/RangeMover.qml \
|
||||
qml/RecordButton.qml \
|
||||
qml/ToolButton.qml \
|
||||
qml/MainView.js
|
||||
qml/MainView.js \
|
||||
qml/VerticalScrollbar.qml
|
||||
|
||||
FORMS += \
|
||||
qmlprofilerattachdialog.ui
|
||||
|
||||
@@ -289,7 +289,7 @@ TraceWindow::TraceWindow(QWidget *parent)
|
||||
setLayout(groupLayout);
|
||||
|
||||
// Maximum height: 5 rows of 50 pixels + scrollbar of 50 pixels
|
||||
setFixedHeight(300);
|
||||
// setFixedHeight(300);
|
||||
}
|
||||
|
||||
TraceWindow::~TraceWindow()
|
||||
|
||||
Reference in New Issue
Block a user