diff options
author | Thomas Hartmann <thomas.hartmann@qt.io> | 2020-11-11 17:33:35 +0100 |
---|---|---|
committer | Thomas Hartmann <thomas.hartmann@qt.io> | 2020-11-13 05:38:20 +0000 |
commit | fb9fb01e341a2d9d466b14c75885e9472417d0cf (patch) | |
tree | dc3b73b79f4cd46fd0119b15ce5d1654fde21ae5 /src/plugins/qmldesigner/components/componentcore | |
parent | 093d5f5ab10d04d928f10a042d27ad6025ccacde (diff) |
QmlDesigner: Collect events for telemetry plugin
For each action/event we want to track we
emit QmlDesignerPlugin::usageStatisticsNotifier() with an identifer.
This allows counting how many states, transitions, timelines were created
and we track every registered action.
More 'trace points' can be added later.
Change-Id: Ibb31e1b7e20d984a10697e05bb4417e7ad1b8980
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Diffstat (limited to 'src/plugins/qmldesigner/components/componentcore')
-rw-r--r-- | src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp | 6 | ||||
-rw-r--r-- | src/plugins/qmldesigner/components/componentcore/modelnodecontextmenu_helper.h | 9 |
2 files changed, 9 insertions, 6 deletions
diff --git a/src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp b/src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp index dbad1d2553..0a8f567c54 100644 --- a/src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp +++ b/src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp @@ -343,7 +343,7 @@ public: parentNode = selectionContext().currentSingleSelectedNode().parentProperty().parentModelNode(); if (!ModelNode::isThisOrAncestorLocked(parentNode)) { - ActionTemplate *selectionAction = new ActionTemplate(QString(), &ModelNodeOperations::select); + ActionTemplate *selectionAction = new ActionTemplate("SELECTION", {}, &ModelNodeOperations::select); selectionAction->setParent(menu()); selectionAction->setText(QString(QT_TRANSLATE_NOOP("QmlDesignerContextMenu", "Select parent: %1")).arg( captionForModelNode(parentNode))); @@ -363,7 +363,7 @@ public: && !ModelNode::isThisOrAncestorLocked(node)) { selectionContext().setTargetNode(node); QString what = QString(QT_TRANSLATE_NOOP("QmlDesignerContextMenu", "Select: %1")).arg(captionForModelNode(node)); - ActionTemplate *selectionAction = new ActionTemplate(what, &ModelNodeOperations::select); + ActionTemplate *selectionAction = new ActionTemplate("SELECT", what, &ModelNodeOperations::select); SelectionContext nodeSelectionContext = selectionContext(); nodeSelectionContext.setTargetNode(node); @@ -546,7 +546,7 @@ public: for (const QmlFlowItemNode &node : QmlFlowViewNode(selectionContext().rootNode()).flowItems()) { if (node != selectionContext().currentSingleSelectedNode().parentProperty().parentModelNode()) { QString what = QString(QT_TRANSLATE_NOOP("QmlDesignerContextMenu", "Connect: %1")).arg(captionForModelNode(node)); - ActionTemplate *connectionAction = new ActionTemplate(what, &ModelNodeOperations::addTransition); + ActionTemplate *connectionAction = new ActionTemplate("CONNECT", what, &ModelNodeOperations::addTransition); SelectionContext nodeSelectionContext = selectionContext(); nodeSelectionContext.setTargetNode(node); diff --git a/src/plugins/qmldesigner/components/componentcore/modelnodecontextmenu_helper.h b/src/plugins/qmldesigner/components/componentcore/modelnodecontextmenu_helper.h index 59029400e5..7fe891fd72 100644 --- a/src/plugins/qmldesigner/components/componentcore/modelnodecontextmenu_helper.h +++ b/src/plugins/qmldesigner/components/componentcore/modelnodecontextmenu_helper.h @@ -29,6 +29,7 @@ #include "abstractaction.h" #include "abstractactiongroup.h" #include "qmlitemnode.h" +#include <qmldesignerplugin.h> #include <coreplugin/actionmanager/command.h> @@ -103,17 +104,19 @@ class ActionTemplate : public DefaultAction { public: - ActionTemplate(const QString &description, SelectionContextOperation action) - : DefaultAction(description), m_action(action) + ActionTemplate(const QByteArray &id, const QString &description, SelectionContextOperation action) + : DefaultAction(description), m_action(action), m_id(id) { } void actionTriggered(bool b) override { + QmlDesignerPlugin::emitUsageStatisticsContextAction(QString::fromUtf8(m_id)); m_selectionContext.setToggled(b); m_action(m_selectionContext); } SelectionContextOperation m_action; + QByteArray m_id; }; class ActionGroup : public AbstractActionGroup @@ -202,7 +205,7 @@ public: SelectionContextOperation selectionAction, SelectionContextPredicate enabled = &SelectionContextFunctors::always, SelectionContextPredicate visibility = &SelectionContextFunctors::always) : - AbstractAction(new ActionTemplate(description, selectionAction)), + AbstractAction(new ActionTemplate(id, description, selectionAction)), m_id(id), m_category(category), m_priority(priority), |