diff --git a/src/plugins/qmlprofiler/qml/CategoryLabel.qml b/src/plugins/qmlprofiler/qml/CategoryLabel.qml index cf4588c6b75..872483bb8e7 100644 --- a/src/plugins/qmlprofiler/qml/CategoryLabel.qml +++ b/src/plugins/qmlprofiler/qml/CategoryLabel.qml @@ -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); + } } } } diff --git a/src/plugins/qmlprofiler/timelinerenderer.cpp b/src/plugins/qmlprofiler/timelinerenderer.cpp index 518aff5f2b8..13d7462ff4f 100644 --- a/src/plugins/qmlprofiler/timelinerenderer.cpp +++ b/src/plugins/qmlprofiler/timelinerenderer.cpp @@ -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(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); }