aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@digia.com>2014-10-10 18:10:15 +0200
committerUlf Hermann <ulf.hermann@digia.com>2014-10-15 12:25:03 +0300
commit660478b4c8774fc5af06293fa046a9ad1cf7c8e3 (patch)
tree6e610e1178ade79a1a002d655a477decacb8d785
parent63f5ccfc11b432dacbdec9bf6bbb1b75b22b5deb (diff)
Implement the input events model
Change-Id: Ifae1ac725518d1a7fb12b46bd36485cd46ebf082 Reviewed-by: Kai Koehne <kai.koehne@digia.com>
-rw-r--r--plugins/qmlprofilerextension/inputeventsmodel.cpp79
-rw-r--r--plugins/qmlprofilerextension/inputeventsmodel.h16
2 files changed, 88 insertions, 7 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);
+}
+
}
}
diff --git a/plugins/qmlprofilerextension/inputeventsmodel.h b/plugins/qmlprofilerextension/inputeventsmodel.h
index 3b6314d988..64a2e64121 100644
--- a/plugins/qmlprofilerextension/inputeventsmodel.h
+++ b/plugins/qmlprofilerextension/inputeventsmodel.h
@@ -30,17 +30,19 @@ class InputEventsModel : public QmlProfiler::AbstractTimelineModel
class InputEventsModelPrivate;
Q_DECLARE_PRIVATE(InputEventsModel)
+protected:
+ bool accepted(const QmlProfiler::QmlProfilerDataModel::QmlEventTypeData &event) const;
+
public:
InputEventsModel(QObject *parent = 0);
quint64 features() const;
- int rowCount() const {return 0;}
- int selectionId(int) const {return -1;}
- QColor color(int) const {return QColor();}
- QVariantList labels() const {return QVariantList();}
- QVariantMap details(int) const {return QVariantMap();}
- int row(int) const {return -1;}
- void loadData() {}
+ int selectionId(int index) const;
+ QColor color(int index) const;
+ QVariantList labels() const;
+ QVariantMap details(int index) const;
+ int row(int index) const;
+ void loadData();
};
}