aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/qmlprofilerextension/inputeventsmodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/qmlprofilerextension/inputeventsmodel.cpp')
-rw-r--r--plugins/qmlprofilerextension/inputeventsmodel.cpp79
1 files changed, 79 insertions, 0 deletions
diff --git a/plugins/qmlprofilerextension/inputeventsmodel.cpp b/plugins/qmlprofilerextension/inputeventsmodel.cpp
index 31ad5585c9..8ee322c364 100644
--- a/plugins/qmlprofilerextension/inputeventsmodel.cpp
+++ b/plugins/qmlprofilerextension/inputeventsmodel.cpp
@@ -43,5 +43,84 @@ quint64 InputEventsModel::features() const
return 1 << QmlDebug::ProfileInputEvents;
}
+int InputEventsModel::selectionId(int index) const
+{
+ Q_D(const InputEventsModel);
+ return d->modelManager->qmlModel()->getEventTypes()[range(index).typeId].detailType;
+}
+
+QColor InputEventsModel::color(int index) const
+{
+ return colorBySelectionId(index);
+}
+
+QVariantList InputEventsModel::labels() const
+{
+ Q_D(const InputEventsModel);
+ QVariantList result;
+
+ if (d->expanded && !d->hidden && !isEmpty()) {
+ {
+ QVariantMap element;
+ element.insert(QLatin1String("description"), QVariant(tr("Mouse Events")));
+ element.insert(QLatin1String("id"), QVariant(QmlDebug::Mouse));
+ result << element;
+ }
+
+ {
+ QVariantMap element;
+ element.insert(QLatin1String("description"), QVariant(tr("Keyboard Events")));
+ element.insert(QLatin1String("id"), QVariant(QmlDebug::Key));
+ result << element;
+ }
+ }
+
+ return result;
+}
+
+QVariantMap InputEventsModel::details(int index) const
+{
+ QVariantMap result;
+ result.insert(QLatin1String("displayName"),
+ selectionId(index) == QmlDebug::Key ? tr("Keyboard Event") : tr("Mouse Event"));
+ result.insert(QLatin1String("Timestamp"), QmlProfilerBaseModel::formatTime(startTime(index)));
+ return result;
+}
+
+int InputEventsModel::row(int index) const
+{
+ if (!expanded())
+ return 1;
+ return selectionId(index) == QmlDebug::Mouse ? 1 : 2;
+}
+
+void InputEventsModel::loadData()
+{
+ Q_D(InputEventsModel);
+ clear();
+ QmlProfilerDataModel *simpleModel = d->modelManager->qmlModel();
+ if (simpleModel->isEmpty())
+ return;
+
+ const QVector<QmlProfilerDataModel::QmlEventTypeData> &types = simpleModel->getEventTypes();
+ foreach (const QmlProfilerDataModel::QmlEventData &event, simpleModel->getEvents()) {
+ const QmlProfilerDataModel::QmlEventTypeData &type = types[event.typeIndex];
+ if (!accepted(type))
+ continue;
+ insert(event.startTime, 0, event.typeIndex);
+ d->modelManager->modelProxyCountUpdated(d->modelId, count(),
+ simpleModel->getEvents().count());
+ }
+ d->collapsedRowCount = 2;
+ d->expandedRowCount = 3;
+ d->modelManager->modelProxyCountUpdated(d->modelId, 1, 1);
+}
+
+bool InputEventsModel::accepted(const QmlProfilerDataModel::QmlEventTypeData &event) const
+{
+ return AbstractTimelineModel::accepted(event) &&
+ (event.detailType == QmlDebug::Mouse || event.detailType == QmlDebug::Key);
+}
+
}
}