OpenCoverage

qquickmultipointhandler_p.h

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/qtdeclarative/src/qtdeclarative/src/quick/handlers/qquickmultipointhandler_p.h
Source codeSwitch to Preprocessed file
LineSourceCount
1/****************************************************************************-
2**-
3** Copyright (C) 2016 The Qt Company Ltd.-
4** Contact: https://www.qt.io/licensing/-
5**-
6** This file is part of the QtQuick module of the Qt Toolkit.-
7**-
8** $QT_BEGIN_LICENSE:LGPL$-
9** Commercial License Usage-
10** Licensees holding valid commercial Qt licenses may use this file in-
11** accordance with the commercial license agreement provided with the-
12** Software or, alternatively, in accordance with the terms contained in-
13** a written agreement between you and The Qt Company. For licensing terms-
14** and conditions see https://www.qt.io/terms-conditions. For further-
15** information use the contact form at https://www.qt.io/contact-us.-
16**-
17** GNU Lesser General Public License Usage-
18** Alternatively, this file may be used under the terms of the GNU Lesser-
19** General Public License version 3 as published by the Free Software-
20** Foundation and appearing in the file LICENSE.LGPL3 included in the-
21** packaging of this file. Please review the following information to-
22** ensure the GNU Lesser General Public License version 3 requirements-
23** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.-
24**-
25** GNU General Public License Usage-
26** Alternatively, this file may be used under the terms of the GNU-
27** General Public License version 2.0 or (at your option) the GNU General-
28** Public license version 3 or any later version approved by the KDE Free-
29** Qt Foundation. The licenses are as published by the Free Software-
30** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3-
31** included in the packaging of this file. Please review the following-
32** information to ensure the GNU General Public License requirements will-
33** be met: https://www.gnu.org/licenses/gpl-2.0.html and-
34** https://www.gnu.org/licenses/gpl-3.0.html.-
35**-
36** $QT_END_LICENSE$-
37**-
38****************************************************************************/-
39-
40#ifndef QQUICKPOINTERMULTIHANDLER_H-
41#define QQUICKPOINTERMULTIHANDLER_H-
42-
43//-
44// W A R N I N G-
45// --------------
46//-
47// This file is not part of the Qt API. It exists purely as an-
48// implementation detail. This header file may change from version to-
49// version without notice, or even be removed.-
50//-
51// We mean it.-
52//-
53-
54#include "qquickitem.h"-
55#include "qevent.h"-
56#include "qquickhandlerpoint_p.h"-
57#include "qquickpointerdevicehandler_p.h"-
58-
59QT_BEGIN_NAMESPACE-
60-
61class Q_AUTOTEST_EXPORT QQuickMultiPointHandler : public QQuickPointerDeviceHandler-
62{-
63 Q_OBJECT-
64 Q_PROPERTY(int minimumPointCount READ minimumPointCount WRITE setMinimumPointCount NOTIFY minimumPointCountChanged)-
65 Q_PROPERTY(int maximumPointCount READ maximumPointCount WRITE setMaximumPointCount NOTIFY maximumPointCountChanged)-
66 Q_PROPERTY(QQuickHandlerPoint centroid READ centroid NOTIFY centroidChanged)-
67-
68public:-
69 explicit QQuickMultiPointHandler(QObject *parent = nullptr, int minimumPointCount = 2);-
70 ~QQuickMultiPointHandler();-
71-
72 int minimumPointCount() const { return m_minimumPointCount; }
executed 56 times by 1 test: return m_minimumPointCount;
Executed by:
  • tst_multipointtoucharea_interop
56
73 void setMinimumPointCount(int c);-
74-
75 int maximumPointCount() const { return m_maximumPointCount >= 0 ? m_maximumPointCount : m_minimumPointCount; }
executed 6 times by 1 test: return m_maximumPointCount >= 0 ? m_maximumPointCount : m_minimumPointCount;
Executed by:
  • tst_multipointtoucharea_interop
6
76 void setMaximumPointCount(int maximumPointCount);-
77-
78 QQuickHandlerPoint centroid() const { return m_centroid; }
never executed: return m_centroid;
0
79-
80signals:-
81 void minimumPointCountChanged();-
82 void maximumPointCountChanged();-
83 void pointDistanceThresholdChanged();-
84 void centroidChanged();-
85-
86protected:-
87 struct PointData {-
88 PointData() : id(0), angle(0) {}
never executed: end of block
0
89 PointData(quint64 id, qreal angle) : id(id), angle(angle) {}
executed 99 times by 1 test: end of block
Executed by:
  • tst_multipointtoucharea_interop
99
90 quint64 id;-
91 qreal angle;-
92 };-
93-
94 bool wantsPointerEvent(QQuickPointerEvent *event) override;-
95 void handlePointerEventImpl(QQuickPointerEvent *event) override;-
96 void onActiveChanged() override;-
97 bool hasCurrentPoints(QQuickPointerEvent *event);-
98 QVector<QQuickEventPoint *> eligiblePoints(QQuickPointerEvent *event);-
99 qreal averageTouchPointDistance(const QPointF &ref);-
100 qreal averageStartingDistance(const QPointF &ref);-
101 qreal averageTouchPointAngle(const QPointF &ref);-
102 qreal averageStartingAngle(const QPointF &ref);-
103 QVector<PointData> angles(const QPointF &ref) const;-
104 static qreal averageAngleDelta(const QVector<PointData> &old, const QVector<PointData> &newAngles);-
105 void acceptPoints(const QVector<QQuickEventPoint *> &points);-
106 bool grabPoints(QVector<QQuickEventPoint *> points);-
107-
108protected:-
109 QVector<QQuickEventPoint *> m_currentPoints;-
110 QQuickHandlerPoint m_centroid;-
111 int m_minimumPointCount;-
112 int m_maximumPointCount;-
113};-
114-
115QT_END_NAMESPACE-
116-
117QML_DECLARE_TYPE(QQuickMultiPointHandler)-
118-
119#endif // QQUICKPOINTERMULTIHANDLER_H-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.0