diff options
author | Thomas Hartmann <thomas.hartmann@qt.io> | 2022-05-18 18:37:33 +0200 |
---|---|---|
committer | Thomas Hartmann <thomas.hartmann@qt.io> | 2022-05-19 10:00:21 +0000 |
commit | 72b6673069bb5fd9a761ad738524462600de53ba (patch) | |
tree | 381da91905c1e146a43c4465812352e7eb0e9334 | |
parent | 816a9d62282ca58d0373e88bb066fb8fc8c3efd8 (diff) |
QmlDesigner: Collect usage time for more views
This collects the time for:
property editor
states editor
item library
asset library
text editor
Change-Id: I07cb5a75f1e007555f0d03d2518246a27e60f305
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
11 files changed, 109 insertions, 11 deletions
diff --git a/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.cpp b/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.cpp index 85f7cfc854..992096b438 100644 --- a/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.cpp +++ b/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.cpp @@ -110,6 +110,19 @@ bool AssetsLibraryWidget::eventFilter(QObject *obj, QEvent *event) return QObject::eventFilter(obj, event); } +void AssetsLibraryWidget::focusOutEvent(QFocusEvent *focusEvent) +{ + QmlDesignerPlugin::emitUsageStatisticsTime(Constants::EVENT_ASSETSLIBRARY_TIME, + m_usageTimer.elapsed()); + QFrame::focusOutEvent(focusEvent); +} + +void AssetsLibraryWidget::focusInEvent(QFocusEvent *focusEvent) +{ + m_usageTimer.restart(); + QFrame::focusInEvent(focusEvent); +} + AssetsLibraryWidget::AssetsLibraryWidget(AsynchronousImageCache &asynchronousFontImageCache, SynchronousImageCache &synchronousFontImageCache) : m_itemIconSize(24, 24) diff --git a/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.h b/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.h index 125755409e..c651bc26ce 100644 --- a/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.h +++ b/src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.h @@ -28,13 +28,14 @@ #include <previewtooltip/previewtooltipbackend.h> #include "assetslibrarymodel.h" -#include <QFrame> -#include <QToolButton> +#include <QElapsedTimer> #include <QFileIconProvider> -#include <QQuickWidget> +#include <QFrame> +#include <QPointF> #include <QQmlPropertyMap> +#include <QQuickWidget> #include <QTimer> -#include <QPointF> +#include <QToolButton> #include <memory> @@ -89,6 +90,8 @@ signals: protected: bool eventFilter(QObject *obj, QEvent *event) override; + void focusOutEvent(QFocusEvent *focusEvent) override; + void focusInEvent(QFocusEvent *focusEvent) override; private: void reloadQmlSource(); @@ -114,6 +117,7 @@ private: bool m_updateRetry = false; QString m_filterText; QPoint m_dragStartPoint; + QElapsedTimer m_usageTimer; }; } // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp index 9f6d33e934..5382d74ba7 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp @@ -30,14 +30,14 @@ #include <theme.h> +#include "modelnodeoperations.h" #include <designeractionmanager.h> #include <designermcumanager.h> #include <documentmanager.h> +#include <itemlibraryaddimportmodel.h> #include <itemlibraryimageprovider.h> #include <itemlibraryinfo.h> #include <itemlibrarymodel.h> -#include <itemlibraryaddimportmodel.h> -#include "modelnodeoperations.h" #include <metainfo.h> #include <model.h> #include <rewritingexception.h> @@ -140,6 +140,19 @@ void ItemLibraryWidget::resizeEvent(QResizeEvent *event) isHorizontalLayout = event->size().width() >= HORIZONTAL_LAYOUT_WIDTH_LIMIT; } +void ItemLibraryWidget::focusOutEvent(QFocusEvent *focusEvent) +{ + QmlDesignerPlugin::emitUsageStatisticsTime(Constants::EVENT_ITEMLIBRARY_TIME, + m_usageTimer.elapsed()); + QFrame::focusOutEvent(focusEvent); +} + +void ItemLibraryWidget::focusInEvent(QFocusEvent *focusEvent) +{ + m_usageTimer.restart(); + QFrame::focusInEvent(focusEvent); +} + ItemLibraryWidget::ItemLibraryWidget(AsynchronousImageCache &imageCache, AsynchronousImageCache &asynchronousFontImageCache, SynchronousImageCache &synchronousFontImageCache) diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h index 500b3f7197..5137cd5fcc 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h @@ -32,13 +32,14 @@ #include <utils/dropsupport.h> #include <previewtooltip/previewtooltipbackend.h> -#include <QFrame> -#include <QToolButton> +#include <QElapsedTimer> #include <QFileIconProvider> -#include <QQuickWidget> +#include <QFrame> +#include <QPointF> #include <QQmlPropertyMap> +#include <QQuickWidget> #include <QTimer> -#include <QPointF> +#include <QToolButton> #include <memory> @@ -104,6 +105,8 @@ signals: protected: bool eventFilter(QObject *obj, QEvent *event) override; void resizeEvent(QResizeEvent *event) override; + void focusOutEvent(QFocusEvent *focusEvent) override; + void focusInEvent(QFocusEvent *focusEvent) override; private: void reloadQmlSource(); @@ -132,6 +135,7 @@ private: QString m_filterText; QPoint m_dragStartPoint; bool m_subCompEditMode = false; + QElapsedTimer m_usageTimer; inline static int HORIZONTAL_LAYOUT_WIDTH_LIMIT = 600; }; diff --git a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorwidget.cpp b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorwidget.cpp index 3d9478e7be..bc0bf03077 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorwidget.cpp +++ b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorwidget.cpp @@ -25,6 +25,8 @@ #include "propertyeditorwidget.h" +#include <qmldesignerconstants.h> +#include <qmldesignerplugin.h> namespace QmlDesigner { @@ -32,6 +34,19 @@ PropertyEditorWidget::PropertyEditorWidget(QWidget *parent) : QStackedWidget(par { } +void PropertyEditorWidget::focusOutEvent(QFocusEvent *focusEvent) +{ + QmlDesignerPlugin::emitUsageStatisticsTime(Constants::EVENT_PROPERTYEDITOR_TIME, + m_usageTimer.elapsed()); + QStackedWidget::focusOutEvent(focusEvent); +} + +void PropertyEditorWidget::focusInEvent(QFocusEvent *focusEvent) +{ + m_usageTimer.restart(); + QStackedWidget::focusInEvent(focusEvent); +} + void PropertyEditorWidget::resizeEvent(QResizeEvent * event) { QStackedWidget::resizeEvent(event); diff --git a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorwidget.h b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorwidget.h index 035363433f..54ae81fd33 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorwidget.h +++ b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorwidget.h @@ -25,6 +25,7 @@ #pragma once +#include <QElapsedTimer> #include <QStackedWidget> namespace QmlDesigner { @@ -41,7 +42,12 @@ signals: void resized(); protected: + void focusOutEvent(QFocusEvent *focusEvent) override; + void focusInEvent(QFocusEvent *focusEvent) override; void resizeEvent(QResizeEvent * event) override; + +private: + QElapsedTimer m_usageTimer; }; } //QmlDesigner diff --git a/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp b/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp index b7b391944a..b77fbf2a51 100644 --- a/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp +++ b/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp @@ -30,6 +30,8 @@ #include <designersettings.h> #include <theme.h> +#include <qmldesignerconstants.h> +#include <qmldesignerplugin.h> #include <invalidqmlsourceexception.h> @@ -139,6 +141,19 @@ void StatesEditorWidget::showEvent(QShowEvent *event) update(); } +void StatesEditorWidget::focusOutEvent(QFocusEvent *focusEvent) +{ + QmlDesignerPlugin::emitUsageStatisticsTime(Constants::EVENT_STATESEDITOR_TIME, + m_usageTimer.elapsed()); + QQuickWidget::focusOutEvent(focusEvent); +} + +void StatesEditorWidget::focusInEvent(QFocusEvent *focusEvent) +{ + m_usageTimer.restart(); + QQuickWidget::focusInEvent(focusEvent); +} + void StatesEditorWidget::reloadQmlSource() { QString statesListQmlFilePath = qmlSourcesPath() + QStringLiteral("/StatesList.qml"); diff --git a/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.h b/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.h index b613e600c4..1193dd5e3b 100644 --- a/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.h +++ b/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.h @@ -25,9 +25,10 @@ #pragma once -#include <QQuickWidget> +#include <QElapsedTimer> #include <QPointer> #include <QQmlPropertyMap> +#include <QQuickWidget> QT_BEGIN_NAMESPACE class QShortcut; @@ -59,6 +60,8 @@ public: protected: void showEvent(QShowEvent *) override; + void focusOutEvent(QFocusEvent *focusEvent) override; + void focusInEvent(QFocusEvent *focusEvent) override; private: void reloadQmlSource(); @@ -67,6 +70,7 @@ private: QPointer<StatesEditorView> m_statesEditorView; Internal::StatesEditorImageProvider *m_imageProvider; QShortcut *m_qmlSourceUpdateShortcut; + QElapsedTimer m_usageTimer; }; } diff --git a/src/plugins/qmldesigner/components/texteditor/texteditorwidget.cpp b/src/plugins/qmldesigner/components/texteditor/texteditorwidget.cpp index 1d9902a129..2b19429f93 100644 --- a/src/plugins/qmldesigner/components/texteditor/texteditorwidget.cpp +++ b/src/plugins/qmldesigner/components/texteditor/texteditorwidget.cpp @@ -30,6 +30,7 @@ #include <coreplugin/findplaceholder.h> #include <rewriterview.h> +#include <qmldesignerconstants.h> #include <qmldesignerplugin.h> #include <theme.h> @@ -240,4 +241,17 @@ void TextEditorWidget::dropEvent(QDropEvent *dropEvent) actionManager.handleExternalAssetsDrop(dropEvent->mimeData()); } +void TextEditorWidget::focusOutEvent(QFocusEvent *focusEvent) +{ + QmlDesignerPlugin::emitUsageStatisticsTime(Constants::EVENT_TEXTEDITOR_TIME, + m_usageTimer.elapsed()); + QWidget::focusOutEvent(focusEvent); +} + +void TextEditorWidget::focusInEvent(QFocusEvent *focusEvent) +{ + m_usageTimer.restart(); + QWidget::focusInEvent(focusEvent); +} + } // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/components/texteditor/texteditorwidget.h b/src/plugins/qmldesigner/components/texteditor/texteditorwidget.h index efd51d8afc..e247a7f715 100644 --- a/src/plugins/qmldesigner/components/texteditor/texteditorwidget.h +++ b/src/plugins/qmldesigner/components/texteditor/texteditorwidget.h @@ -26,6 +26,7 @@ #include <texteditor/texteditor.h> +#include <QElapsedTimer> #include <QTimer> #include <QVBoxLayout> #include <QWidget> @@ -69,6 +70,8 @@ protected: bool eventFilter(QObject *object, QEvent *event) override; void dragEnterEvent(QDragEnterEvent *dragEnterEvent) override; void dropEvent(QDropEvent *dropEvent) override; + void focusOutEvent(QFocusEvent *focusEvent) override; + void focusInEvent(QFocusEvent *focusEvent) override; private: void updateSelectionByCursorPosition(); @@ -81,6 +84,7 @@ private: QVBoxLayout *m_layout = nullptr; bool m_blockCursorSelectionSynchronisation = false; bool m_blockRoundTrip = false; + QElapsedTimer m_usageTimer; }; } // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/qmldesignerconstants.h b/src/plugins/qmldesigner/qmldesignerconstants.h index a5c7bbf33d..5be345b1c7 100644 --- a/src/plugins/qmldesigner/qmldesignerconstants.h +++ b/src/plugins/qmldesigner/qmldesignerconstants.h @@ -117,6 +117,12 @@ const char EVENT_3DEDITOR_TIME[] = "3DEditor"; const char EVENT_TIMELINE_TIME[] = "timeline"; const char EVENT_TRANSITIONEDITOR_TIME[] = "transitionEditor"; const char EVENT_CURVEDITOR_TIME[] = "curveEditor"; +const char EVENT_STATESEDITOR_TIME[] = "statesEditor"; +const char EVENT_TEXTEDITOR_TIME[] = "textEditor"; +const char EVENT_PROPERTYEDITOR_TIME[] = "propertyEditor"; +const char EVENT_ASSETSLIBRARY_TIME[] = "assetsLibrary"; +const char EVENT_ITEMLIBRARY_TIME[] = "itemLibrary"; +const char EVENT_TRANSLATIONVIEW_TIME[] = "translationView"; const char PROPERTY_EDITOR_CLASSNAME_PROPERTY[] = "__classNamePrivateInternal"; |