forked from qt-creator/qt-creator
QmlDesigner: Track usage of graphical views
Change-Id: I0631816980178100dcd61b65d792fc38504199d5 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
This commit is contained in:
@@ -29,6 +29,9 @@
|
||||
#include "graphicsview.h"
|
||||
#include "handleitem.h"
|
||||
|
||||
#include <qmldesignerconstants.h>
|
||||
#include <qmldesignerplugin.h>
|
||||
|
||||
#include <QGraphicsSceneMouseEvent>
|
||||
|
||||
#include <cmath>
|
||||
@@ -425,6 +428,19 @@ void GraphicsScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent)
|
||||
graphicsView()->setZoomY(0.0);
|
||||
}
|
||||
|
||||
void GraphicsScene::focusOutEvent(QFocusEvent *focusEvent)
|
||||
{
|
||||
QmlDesignerPlugin::emitUsageStatisticsTime(Constants::EVENT_CURVEDITOR_TIME,
|
||||
m_usageTimer.elapsed());
|
||||
QGraphicsScene::focusOutEvent(focusEvent);
|
||||
}
|
||||
|
||||
void GraphicsScene::focusInEvent(QFocusEvent *focusEvent)
|
||||
{
|
||||
m_usageTimer.restart();
|
||||
QGraphicsScene::focusInEvent(focusEvent);
|
||||
}
|
||||
|
||||
GraphicsView *GraphicsScene::graphicsView() const
|
||||
{
|
||||
const QList<QGraphicsView *> viewList = views();
|
||||
|
@@ -27,6 +27,7 @@
|
||||
|
||||
#include "keyframeitem.h"
|
||||
|
||||
#include <QElapsedTimer>
|
||||
#include <QGraphicsScene>
|
||||
|
||||
namespace QmlDesigner {
|
||||
@@ -120,6 +121,10 @@ protected:
|
||||
|
||||
void mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent) override;
|
||||
|
||||
void focusOutEvent(QFocusEvent *focusEvent) override;
|
||||
|
||||
void focusInEvent(QFocusEvent *focusEvent) override;
|
||||
|
||||
private:
|
||||
using QGraphicsScene::addItem;
|
||||
|
||||
@@ -140,6 +145,8 @@ private:
|
||||
mutable QRectF m_limits;
|
||||
|
||||
bool m_doNotMoveItems;
|
||||
|
||||
QElapsedTimer m_usageTimer;
|
||||
};
|
||||
|
||||
} // End namespace QmlDesigner.
|
||||
|
@@ -30,6 +30,9 @@
|
||||
#include "nodehints.h"
|
||||
#include "qmlvisualnode.h"
|
||||
|
||||
#include <qmldesignerplugin.h>
|
||||
#include <qmldesignerconstants.h>
|
||||
|
||||
#include <QtCore/qmimedata.h>
|
||||
#include <QPainter>
|
||||
|
||||
@@ -132,4 +135,17 @@ void Edit3DCanvas::dropEvent(QDropEvent *e)
|
||||
}
|
||||
}
|
||||
|
||||
void Edit3DCanvas::focusOutEvent(QFocusEvent *focusEvent)
|
||||
{
|
||||
QmlDesignerPlugin::emitUsageStatisticsTime(Constants::EVENT_3DEDITOR_TIME,
|
||||
m_usageTimer.elapsed());
|
||||
QWidget::focusOutEvent(focusEvent);
|
||||
}
|
||||
|
||||
void Edit3DCanvas::focusInEvent(QFocusEvent *focusEvent)
|
||||
{
|
||||
m_usageTimer.restart();
|
||||
QWidget::focusInEvent(focusEvent);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -29,6 +29,7 @@
|
||||
#include <QtWidgets/qwidget.h>
|
||||
#include <QtGui/qimage.h>
|
||||
#include <QtGui/qevent.h>
|
||||
#include <QTCore/qelapsedtimer.h>
|
||||
#include <QtCore/qpointer.h>
|
||||
|
||||
namespace QmlDesigner {
|
||||
@@ -57,12 +58,15 @@ protected:
|
||||
void resizeEvent(QResizeEvent *e) override;
|
||||
void dragEnterEvent(QDragEnterEvent *e) override;
|
||||
void dropEvent(QDropEvent *e) override;
|
||||
void focusOutEvent(QFocusEvent *focusEvent) override;
|
||||
void focusInEvent(QFocusEvent *focusEvent) override;
|
||||
|
||||
private:
|
||||
QPointer<Edit3DWidget> m_parent;
|
||||
QImage m_image;
|
||||
qint32 m_activeScene = -1;
|
||||
ItemLibraryEntry m_itemLibraryEntry;
|
||||
QElapsedTimer m_usageTimer;
|
||||
};
|
||||
|
||||
} // namespace QmlDesigner
|
||||
|
@@ -28,6 +28,7 @@
|
||||
#include "formeditorwidget.h"
|
||||
#include "formeditoritem.h"
|
||||
#include <nodehints.h>
|
||||
#include <qmldesignerconstants.h>
|
||||
#include <qmldesignerplugin.h>
|
||||
#include <designersettings.h>
|
||||
|
||||
@@ -321,10 +322,21 @@ void FormEditorScene::keyReleaseEvent(QKeyEvent *keyEvent)
|
||||
currentTool()->keyReleaseEvent(keyEvent);
|
||||
}
|
||||
|
||||
void FormEditorScene::focusOutEvent(QFocusEvent *)
|
||||
void FormEditorScene::focusOutEvent(QFocusEvent *focusEvent)
|
||||
{
|
||||
if (currentTool())
|
||||
currentTool()->focusLost();
|
||||
|
||||
QmlDesignerPlugin::emitUsageStatisticsTime(Constants::EVENT_FORMEDITOR_TIME,
|
||||
m_usageTimer.elapsed());
|
||||
|
||||
QGraphicsScene::focusOutEvent(focusEvent);
|
||||
}
|
||||
|
||||
void FormEditorScene::focusInEvent(QFocusEvent *focusEvent)
|
||||
{
|
||||
m_usageTimer.restart();
|
||||
QGraphicsScene::focusInEvent(focusEvent);
|
||||
}
|
||||
|
||||
FormEditorView *FormEditorScene::editorView() const
|
||||
|
@@ -30,6 +30,7 @@
|
||||
#include <QGraphicsScene>
|
||||
#include <QPointer>
|
||||
#include <QHash>
|
||||
#include <QElapsedTimer>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QGraphicsSceneMouseEvent;
|
||||
@@ -119,6 +120,7 @@ protected:
|
||||
void keyReleaseEvent(QKeyEvent *keyEvent) override;
|
||||
|
||||
void focusOutEvent(QFocusEvent *focusEvent) override;
|
||||
void focusInEvent(QFocusEvent *focusEvent) override;
|
||||
|
||||
private:
|
||||
QList<QGraphicsItem *> removeLayerItems(const QList<QGraphicsItem *> &itemList);
|
||||
@@ -135,6 +137,7 @@ private:
|
||||
ModelNode m_dragNode;
|
||||
bool m_showBoundingRects;
|
||||
bool m_annotationVisibility;
|
||||
QElapsedTimer m_usageTimer;
|
||||
};
|
||||
|
||||
} // namespace QmlDesigner
|
||||
|
@@ -42,6 +42,7 @@
|
||||
#include <rewritertransaction.h>
|
||||
#include <rewriterview.h>
|
||||
#include <viewmanager.h>
|
||||
#include <qmldesignerconstants.h>
|
||||
#include <qmldesignerplugin.h>
|
||||
#include <qmlobjectnode.h>
|
||||
#include <qmltimelinekeyframegroup.h>
|
||||
@@ -668,6 +669,19 @@ void TimelineGraphicsScene::keyReleaseEvent(QKeyEvent *keyEvent)
|
||||
QGraphicsScene::keyReleaseEvent(keyEvent);
|
||||
}
|
||||
|
||||
void TimelineGraphicsScene::focusOutEvent(QFocusEvent *focusEvent)
|
||||
{
|
||||
QmlDesignerPlugin::emitUsageStatisticsTime(Constants::EVENT_TIMELINE_TIME,
|
||||
m_usageTimer.elapsed());
|
||||
QGraphicsScene::focusOutEvent(focusEvent);
|
||||
}
|
||||
|
||||
void TimelineGraphicsScene::focusInEvent(QFocusEvent *focusEvent)
|
||||
{
|
||||
m_usageTimer.restart();
|
||||
QGraphicsScene::focusInEvent(focusEvent);
|
||||
}
|
||||
|
||||
void TimelineGraphicsScene::invalidateSections()
|
||||
{
|
||||
for (auto child : m_layout->childItems())
|
||||
|
@@ -30,6 +30,7 @@
|
||||
|
||||
#include <qmltimeline.h>
|
||||
|
||||
#include <QElapsedTimer>
|
||||
#include <QGraphicsScene>
|
||||
|
||||
#include <memory>
|
||||
@@ -193,6 +194,9 @@ protected:
|
||||
void keyPressEvent(QKeyEvent *keyEvent) override;
|
||||
void keyReleaseEvent(QKeyEvent *keyEvent) override;
|
||||
|
||||
void focusOutEvent(QFocusEvent *focusEvent) override;
|
||||
void focusInEvent(QFocusEvent *focusEvent) override;
|
||||
|
||||
private:
|
||||
void copySelectedKeyframes();
|
||||
void pasteSelectedKeyframes();
|
||||
@@ -215,6 +219,7 @@ private:
|
||||
|
||||
// sorted, unique cache of keyframes positions, used for snapping
|
||||
QVector<qreal> m_keyframePositionsCache;
|
||||
QElapsedTimer m_usageTimer;
|
||||
};
|
||||
|
||||
} // namespace QmlDesigner
|
||||
|
@@ -45,6 +45,7 @@
|
||||
#include <rewritertransaction.h>
|
||||
#include <rewriterview.h>
|
||||
#include <viewmanager.h>
|
||||
#include <qmldesignerconstants.h>
|
||||
#include <qmldesignerplugin.h>
|
||||
#include <qmlobjectnode.h>
|
||||
#include <qmltimelinekeyframegroup.h>
|
||||
@@ -401,6 +402,19 @@ void TransitionEditorGraphicsScene::keyReleaseEvent(QKeyEvent *keyEvent)
|
||||
QGraphicsScene::keyReleaseEvent(keyEvent);
|
||||
}
|
||||
|
||||
void TransitionEditorGraphicsScene::focusOutEvent(QFocusEvent *focusEvent)
|
||||
{
|
||||
QmlDesignerPlugin::emitUsageStatisticsTime(Constants::EVENT_TRANSITIONEDITOR_TIME,
|
||||
m_usageTimer.elapsed());
|
||||
QGraphicsScene::focusOutEvent(focusEvent);
|
||||
}
|
||||
|
||||
void TransitionEditorGraphicsScene::focusInEvent(QFocusEvent *focusEvent)
|
||||
{
|
||||
m_usageTimer.restart();
|
||||
QGraphicsScene::focusInEvent(focusEvent);
|
||||
}
|
||||
|
||||
void TransitionEditorGraphicsScene::invalidateSections()
|
||||
{
|
||||
const QList<QGraphicsItem *> children = m_layout->childItems();
|
||||
|
@@ -30,6 +30,7 @@
|
||||
|
||||
#include <qmltimeline.h>
|
||||
|
||||
#include <QElapsedTimer>
|
||||
#include <QGraphicsScene>
|
||||
|
||||
#include <memory>
|
||||
@@ -123,6 +124,9 @@ protected:
|
||||
void keyPressEvent(QKeyEvent *keyEvent) override;
|
||||
void keyReleaseEvent(QKeyEvent *keyEvent) override;
|
||||
|
||||
void focusOutEvent(QFocusEvent *focusEvent) override;
|
||||
void focusInEvent(QFocusEvent *focusEvent) override;
|
||||
|
||||
private:
|
||||
void invalidateSections();
|
||||
QList<QGraphicsItem *> itemsAt(const QPointF &pos);
|
||||
@@ -135,6 +139,7 @@ private:
|
||||
int m_scrollOffset = 0;
|
||||
TimelineToolDelegate m_tools;
|
||||
TransitionEditorPropertyItem *m_selectedProperty = nullptr;
|
||||
QElapsedTimer m_usageTimer;
|
||||
};
|
||||
|
||||
} // namespace QmlDesigner
|
||||
|
@@ -88,6 +88,11 @@ const char EVENT_ACTION_EXECUTED[] = "Action Executed ";
|
||||
const char EVENT_IMPORT_ADDED[] = "Import Added ";
|
||||
const char EVENT_BINDINGEDITOR_OPENED[] = "Binding Editor Opened";
|
||||
const char EVENT_RICHTEXT_OPENED[] = "Richtext Editor Opened";
|
||||
const char EVENT_FORMEDITOR_TIME[] = "Form Editor";
|
||||
const char EVENT_3DEDITOR_TIME[] = "3D Editor";
|
||||
const char EVENT_TIMELINE_TIME[] = "Timeline";
|
||||
const char EVENT_TRANSITIONEDITOR_TIME[] = "Transition Editor";
|
||||
const char EVENT_CURVEDITOR_TIME[] = "Curve Editor";
|
||||
|
||||
namespace Internal {
|
||||
enum { debug = 0 };
|
||||
|
@@ -566,6 +566,11 @@ ImageCache &QmlDesignerPlugin::imageCache()
|
||||
return m_instance->d->viewManager.imageCache();
|
||||
}
|
||||
|
||||
void QmlDesignerPlugin::emitUsageStatisticsTime(const QString &identifier, int elapsed)
|
||||
{
|
||||
emit instance()->usageStatisticsUsageTimer(identifier, elapsed);
|
||||
}
|
||||
|
||||
QmlDesignerPlugin *QmlDesignerPlugin::instance()
|
||||
{
|
||||
return m_instance;
|
||||
|
@@ -85,11 +85,13 @@ public:
|
||||
|
||||
static void emitUsageStatistics(const QString &identifier);
|
||||
static void emitUsageStatisticsContextAction(const QString &identifier);
|
||||
static void emitUsageStatisticsTime(const QString &identifier, int elapsed);
|
||||
|
||||
static ImageCache &imageCache();
|
||||
|
||||
signals:
|
||||
void usageStatisticsNotifier(const QString &identifier);
|
||||
void usageStatisticsUsageTimer(const QString &identifier, int elapsed);
|
||||
|
||||
|
||||
private: // functions
|
||||
|
Reference in New Issue
Block a user