aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/components/componentcore
diff options
context:
space:
mode:
authorThomas Hartmann <thomas.hartmann@qt.io>2020-11-11 17:33:35 +0100
committerThomas Hartmann <thomas.hartmann@qt.io>2020-11-13 05:38:20 +0000
commitfb9fb01e341a2d9d466b14c75885e9472417d0cf (patch)
treedc3b73b79f4cd46fd0119b15ce5d1654fde21ae5 /src/plugins/qmldesigner/components/componentcore
parent093d5f5ab10d04d928f10a042d27ad6025ccacde (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.cpp6
-rw-r--r--src/plugins/qmldesigner/components/componentcore/modelnodecontextmenu_helper.h9
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),