QmlProfiler: Allow preselection of events to be recorded

This allows us to reduce the amount of data we need to handle
if the user isn't interested in certain categories.

Task-number: QTBUG-41118
Change-Id: Ieaac12fb1dec29d6035642f433bc1a1d49e545c2
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
This commit is contained in:
Ulf Hermann
2014-09-09 18:22:58 +02:00
parent 7290c43da1
commit 6d58de0bad
17 changed files with 214 additions and 19 deletions

View File

@@ -44,6 +44,15 @@
namespace QmlProfiler {
namespace Internal {
static const QmlDebug::ProfileFeature RangeFeatures[QmlDebug::MaximumRangeType] = {
QmlDebug::ProfilePainting,
QmlDebug::ProfileCompiling,
QmlDebug::ProfileCreating,
QmlDebug::ProfileBinding,
QmlDebug::ProfileHandlingSignal,
QmlDebug::ProfileJavaScript
};
class RangeTimelineModel::RangeTimelineModelPrivate : public AbstractTimelineModelPrivate
{
public:
@@ -70,6 +79,12 @@ RangeTimelineModel::RangeTimelineModel(QmlDebug::RangeType rangeType, QObject *p
d->contractedRows = 1;
}
quint64 RangeTimelineModel::features() const
{
Q_D(const RangeTimelineModel);
return 1 << RangeFeatures[d->rangeType];
}
void RangeTimelineModel::clear()
{
Q_D(RangeTimelineModel);
@@ -222,16 +237,19 @@ int RangeTimelineModel::rowCount() const
return d->contractedRows;
}
QString RangeTimelineModel::categoryLabel(int categoryIndex)
QString RangeTimelineModel::categoryLabel(QmlDebug::RangeType rangeType)
{
switch (categoryIndex) {
case 0: return QCoreApplication::translate("MainView", "Painting"); break;
case 1: return QCoreApplication::translate("MainView", "Compiling"); break;
case 2: return QCoreApplication::translate("MainView", "Creating"); break;
case 3: return QCoreApplication::translate("MainView", "Binding"); break;
case 4: return QCoreApplication::translate("MainView", "Handling Signal"); break;
case 5: return QCoreApplication::translate("MainView", "JavaScript"); break;
default: return QString();
switch (rangeType) {
case QmlDebug::Painting:
case QmlDebug::Compiling:
case QmlDebug::Creating:
case QmlDebug::Binding:
case QmlDebug::HandlingSignal:
case QmlDebug::Javascript:
return QCoreApplication::translate("MainView",
QmlProfilerModelManager::featureName(RangeFeatures[rangeType]));
default:
return QString();
}
}