diff --git a/src/libs/qmljsdebugclient/qmlprofilereventlist.cpp b/src/libs/qmljsdebugclient/qmlprofilereventlist.cpp index b337c2552bd4efc6a7f9b75f01ee196ea05789df..a7e02cc40322ccbe90b893274331e2c2279935a9 100644 --- a/src/libs/qmljsdebugclient/qmlprofilereventlist.cpp +++ b/src/libs/qmljsdebugclient/qmlprofilereventlist.cpp @@ -1672,6 +1672,12 @@ QString QmlProfilerEventList::eventTextForType(int type, int index) const { return d->m_eventDescriptions.values().at(d->m_typeCounts[type]->eventIds[index])->details; } +QString QmlProfilerEventList::eventDisplayNameForType(int type, int index) const { + if (!d->m_typeCounts.contains(type)) + return QString(); + return d->m_eventDescriptions.values().at(d->m_typeCounts[type]->eventIds[index])->displayname; +} + int QmlProfilerEventList::eventIdForType(int type, int index) const { if (!d->m_typeCounts.contains(type)) return -1; diff --git a/src/libs/qmljsdebugclient/qmlprofilereventlist.h b/src/libs/qmljsdebugclient/qmlprofilereventlist.h index ff52c87b170eecf5ec68ec442bd41bbdea35c29b..a9fc0454b9cfcbd44e024276bf3258556dd1d1b3 100644 --- a/src/libs/qmljsdebugclient/qmlprofilereventlist.h +++ b/src/libs/qmljsdebugclient/qmlprofilereventlist.h @@ -150,6 +150,7 @@ public: Q_INVOKABLE int uniqueEventsOfType(int type) const; Q_INVOKABLE int maxNestingForType(int type) const; Q_INVOKABLE QString eventTextForType(int type, int index) const; + Q_INVOKABLE QString eventDisplayNameForType(int type, int index) const; Q_INVOKABLE int eventIdForType(int type, int index) const; Q_INVOKABLE int eventPosInType(int index) const; diff --git a/src/plugins/qmlprofiler/qml/Label.qml b/src/plugins/qmlprofiler/qml/Label.qml index ac6a47ccae43b001ea1fab033e26f06ded310c3b..9d639820ca0f1cf276dfad73861ff465468f8d64 100644 --- a/src/plugins/qmlprofiler/qml/Label.qml +++ b/src/plugins/qmlprofiler/qml/Label.qml @@ -39,6 +39,7 @@ Item { property int typeIndex: index property variant descriptions: [] + property variant extdescriptions: [] property variant eventIds: [] height: root.singleRowHeight @@ -67,17 +68,21 @@ Item { onDataReady: { var desc=[]; var ids=[]; + var extdesc=[]; for (var i=0; i<qmlEventList.uniqueEventsOfType(typeIndex); i++) { desc[i] = qmlEventList.eventTextForType(typeIndex, i); ids[i] = qmlEventList.eventIdForType(typeIndex, i); + extdesc[i] = qmlEventList.eventDisplayNameForType(typeIndex, i) + " : " + desc[i]; } descriptions = desc; eventIds = ids; + extdescriptions = extdesc; updateHeight(); } onDataClear: { descriptions = []; eventIds = []; + extdescriptions = []; updateHeight(); } } @@ -121,6 +126,9 @@ Item { } MouseArea { anchors.fill: parent + hoverEnabled: true + onEntered: changeToolTip(extdescriptions[index]); + onExited: changeToolTip(""); onClicked: { if (mouse.modifiers & Qt.ShiftModifier) view.selectPrevFromId(eventIds[index]); diff --git a/src/plugins/qmlprofiler/qml/MainView.qml b/src/plugins/qmlprofiler/qml/MainView.qml index 158030811b38366a6f3ae64a4bbbbff1a83c8b7f..06e60ccde999bf7ec74b3a8591e0887af9dc6cce 100644 --- a/src/plugins/qmlprofiler/qml/MainView.qml +++ b/src/plugins/qmlprofiler/qml/MainView.qml @@ -73,6 +73,8 @@ Rectangle { property variant selectionRangeStart: selectionRange.startTime property variant selectionRangeEnd: selectionRange.startTime + selectionRange.duration + signal changeToolTip(string text) + // ***** connections with external objects Connections { target: zoomControl diff --git a/src/plugins/qmlprofiler/tracewindow.cpp b/src/plugins/qmlprofiler/tracewindow.cpp index 15ebad97cb2e17dc1995c88b586a28596f60fea1..0903ce7b095cdea99dab3ae8de989d087ff01ae3 100644 --- a/src/plugins/qmlprofiler/tracewindow.cpp +++ b/src/plugins/qmlprofiler/tracewindow.cpp @@ -296,6 +296,7 @@ void TraceWindow::reset(QDeclarativeDebugConnection *conn) connect(this, SIGNAL(globalZoom()), m_mainView->rootObject(), SLOT(globalZoom())); connect(this, SIGNAL(selectNextEventInDisplay(QVariant)), m_mainView->rootObject(), SLOT(selectNextWithId(QVariant))); connect(m_mainView->rootObject(), SIGNAL(selectedEventIdChanged(int)), this, SIGNAL(selectedEventIdChanged(int))); + connect(m_mainView->rootObject(), SIGNAL(changeToolTip(QString)), this, SLOT(updateToolTip(QString))); connect(this, SIGNAL(internalClearDisplay()), m_mainView->rootObject(), SLOT(clearAll())); connect(this,SIGNAL(internalClearDisplay()), m_overview->rootObject(), SLOT(clearDisplay())); @@ -563,5 +564,10 @@ void TraceWindow::updateProfilerState() emit profilerStateChanged(qmlActive, v8Active); } +void TraceWindow::updateToolTip(QString text) +{ + setToolTip(text); +} + } // namespace Internal } // namespace QmlProfiler diff --git a/src/plugins/qmlprofiler/tracewindow.h b/src/plugins/qmlprofiler/tracewindow.h index 9e72faf5c5d9ea698a4f0c4edad6f90ef461ff80..26be955d483d18a6d79aeb452cda3eeadb60e8d1 100644 --- a/src/plugins/qmlprofiler/tracewindow.h +++ b/src/plugins/qmlprofiler/tracewindow.h @@ -126,6 +126,7 @@ public slots: void v8Complete(); void selectNextEvent(int eventId); void updateProfilerState(); + void updateToolTip(QString text); signals: void viewUpdated();