From 547f71963131fe5b3f68f9f913fd21e0a7f3da27 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Thu, 1 Jun 2023 14:42:43 +0200 Subject: [PATCH] QmlProject: Add trace point to qmlproject We use the qmldesignerplugin, if the qmldesigner plugin is disabled then nothing is traced. Task-number: QDS-10010 Change-Id: Ifa7f7719efca6a757e69b75937368d7a69a5e460 Reviewed-by: Thomas Hartmann --- .../cmakegen/generatecmakelists.cpp | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/plugins/qmlprojectmanager/cmakegen/generatecmakelists.cpp b/src/plugins/qmlprojectmanager/cmakegen/generatecmakelists.cpp index 7f40fbf5d27..40d634361e0 100644 --- a/src/plugins/qmlprojectmanager/cmakegen/generatecmakelists.cpp +++ b/src/plugins/qmlprojectmanager/cmakegen/generatecmakelists.cpp @@ -19,6 +19,10 @@ #include #include +#include +#include +#include + #include #include @@ -36,6 +40,27 @@ namespace QmlProjectManager { namespace GenerateCmake { +static bool isQmlDesigner(const ExtensionSystem::PluginSpec *spec) +{ + if (!spec) + return false; + + return spec->name().contains("QmlDesigner"); +} + +static void trackUsage(const QString &id) +{ + const auto plugins = ExtensionSystem::PluginManager::plugins(); + const auto it = std::find_if(plugins.begin(), plugins.end(), &isQmlDesigner); + if (it != plugins.end()) { + QObject *qmlDesignerPlugin = (*it)->plugin(); + QMetaObject::invokeMethod(qmlDesignerPlugin, + "usageStatisticsNotifier", + Qt::DirectConnection, + Q_ARG(QString, id)); + } +} + bool operator==(const GeneratableFile &left, const GeneratableFile &right) { return (left.filePath == right.filePath && left.content == right.content); @@ -99,6 +124,8 @@ void generateMenuEntry(QObject *parent) void onGenerateCmakeLists() { + trackUsage("generateCMakeProjectDialogOpened"); + FilePath rootDir = ProjectExplorer::SessionManager::startupProject()->projectDirectory(); int projectDirErrors = isProjectCorrectlyFormed(rootDir); @@ -121,6 +148,8 @@ void onGenerateCmakeLists() cmakeGen.filterFileQueue(confirmedFiles); cmakeGen.execute(); } + + trackUsage("generateCMakeProjectExecuted"); } bool isErrorFatal(int error)