forked from qt-creator/qt-creator
QmlProfiler: Track requested, recorded, and displayed features
This way we can have a central filter menu to hide and show features in any connected views. Change-Id: I8142da0062a23f8166555016de6c7cb38060f725 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
This commit is contained in:
@@ -121,7 +121,8 @@ static QString qmlTypeAsString(Message message, RangeType rangeType)
|
||||
|
||||
QmlProfilerFileReader::QmlProfilerFileReader(QObject *parent) :
|
||||
QObject(parent),
|
||||
m_future(0)
|
||||
m_future(0),
|
||||
m_loadedFeatures(0)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -199,6 +200,37 @@ bool QmlProfilerFileReader::load(QIODevice *device)
|
||||
}
|
||||
}
|
||||
|
||||
quint64 QmlProfilerFileReader::loadedFeatures() const
|
||||
{
|
||||
return m_loadedFeatures;
|
||||
}
|
||||
|
||||
QmlDebug::ProfileFeature featureFromEvent(const QmlProfilerDataModel::QmlEventTypeData &event) {
|
||||
if (event.rangeType < MaximumRangeType)
|
||||
return featureFromRangeType(event.rangeType);
|
||||
|
||||
switch (event.message) {
|
||||
case Event:
|
||||
switch (event.detailType) {
|
||||
case AnimationFrame:
|
||||
return ProfileAnimations;
|
||||
case Key:
|
||||
case Mouse:
|
||||
return ProfileInputEvents;
|
||||
default:
|
||||
return MaximumProfileFeature;
|
||||
}
|
||||
case PixmapCacheEvent:
|
||||
return ProfilePixmapCache;
|
||||
case SceneGraphFrame:
|
||||
return ProfileSceneGraph;
|
||||
case MemoryAllocation:
|
||||
return ProfileMemory;
|
||||
default:
|
||||
return MaximumProfileFeature;
|
||||
}
|
||||
}
|
||||
|
||||
void QmlProfilerFileReader::loadEventData(QXmlStreamReader &stream)
|
||||
{
|
||||
QTC_ASSERT(stream.name() == _("eventData"), return);
|
||||
@@ -308,6 +340,9 @@ void QmlProfilerFileReader::loadEventData(QXmlStreamReader &stream)
|
||||
if (eventIndex >= m_qmlEvents.size())
|
||||
m_qmlEvents.resize(eventIndex + 1);
|
||||
m_qmlEvents[eventIndex] = event;
|
||||
ProfileFeature feature = featureFromEvent(event);
|
||||
if (feature != MaximumProfileFeature)
|
||||
m_loadedFeatures |= (1ULL << static_cast<uint>(feature));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user