QmlProfiler: allow interactive resizing of rows in timeline

Task-number: QTCREATORBUG-12337
Change-Id: Ib9ddb128605831841023bb3cc9aed758ed171de9
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
This commit is contained in:
Ulf Hermann
2014-06-18 15:47:20 +02:00
parent 63ca524069
commit f30cbf9711
2 changed files with 20 additions and 2 deletions

View File

@@ -39,6 +39,8 @@ Item {
property var extdescriptions: []
property var eventIds: []
readonly property int dragHeight: 5
function trigger(i) {
return i * bindingTrigger * bindingTrigger;
}
@@ -116,16 +118,28 @@ Item {
verticalAlignment: Text.AlignVCenter
}
MouseArea {
property bool resizing: false
anchors.fill: parent
hoverEnabled: true
cursorShape: (resizing || height - mouseY < dragHeight) ? Qt.SizeVerCursor :
Qt.ArrowCursor;
onEntered: changeToolTip(extdescriptions[index]);
onExited: changeToolTip("");
onPressed: resizing = (height - mouseY < dragHeight);
onReleased: resizing = false;
onClicked: {
if (mouse.modifiers & Qt.ShiftModifier)
view.selectPrevFromId(modelIndex,eventIds[index]);
else
view.selectNextFromId(modelIndex,eventIds[index]);
}
onMouseYChanged: {
if (resizing)
qmlProfilerModelProxy.setRowHeight(modelIndex, index + 1, mouseY);
}
}
}
}

View File

@@ -53,12 +53,16 @@ TimelineRenderer::TimelineRenderer(QQuickPaintedItem *parent) :
void TimelineRenderer::setProfilerModelProxy(QObject *profilerModelProxy)
{
if (m_profilerModelProxy)
if (m_profilerModelProxy) {
disconnect(m_profilerModelProxy, SIGNAL(expandedChanged()), this, SLOT(requestPaint()));
disconnect(m_profilerModelProxy, SIGNAL(rowHeightChanged()), this, SLOT(requestPaint()));
}
m_profilerModelProxy = qobject_cast<TimelineModelAggregator *>(profilerModelProxy);
if (m_profilerModelProxy)
if (m_profilerModelProxy) {
connect(m_profilerModelProxy, SIGNAL(expandedChanged()), this, SLOT(requestPaint()));
connect(m_profilerModelProxy, SIGNAL(rowHeightChanged()), this, SLOT(requestPaint()));
}
emit profilerModelProxyChanged(m_profilerModelProxy);
}