diff options
Diffstat (limited to 'src/quick/util/qquickpath_p.h')
-rw-r--r-- | src/quick/util/qquickpath_p.h | 94 |
1 files changed, 24 insertions, 70 deletions
diff --git a/src/quick/util/qquickpath_p.h b/src/quick/util/qquickpath_p.h index 5a4c72848c..55400d2ddd 100644 --- a/src/quick/util/qquickpath_p.h +++ b/src/quick/util/qquickpath_p.h @@ -1,41 +1,5 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtQuick module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only #ifndef QQUICKPATH_H #define QQUICKPATH_H @@ -62,6 +26,7 @@ QT_REQUIRE_CONFIG(quick_path); #include <private/qtquickglobal_p.h> #include <QtCore/QObject> +#include <QtCore/QHash> #include <QtGui/QPainterPath> #include <QtGui/QFont> @@ -75,7 +40,7 @@ struct QQuickPathData QList<QQuickCurve*> curves; }; -class Q_QUICK_PRIVATE_EXPORT QQuickPathElement : public QObject +class Q_QUICK_EXPORT QQuickPathElement : public QObject { Q_OBJECT QML_ANONYMOUS @@ -86,7 +51,7 @@ Q_SIGNALS: void changed(); }; -class Q_QUICK_PRIVATE_EXPORT QQuickPathAttribute : public QQuickPathElement +class Q_QUICK_EXPORT QQuickPathAttribute : public QQuickPathElement { Q_OBJECT @@ -113,7 +78,7 @@ private: qreal _value = 0; }; -class Q_QUICK_PRIVATE_EXPORT QQuickCurve : public QQuickPathElement +class Q_QUICK_EXPORT QQuickCurve : public QQuickPathElement { Q_OBJECT @@ -157,7 +122,7 @@ private: QQmlNullableValue<qreal> _relativeY; }; -class Q_QUICK_PRIVATE_EXPORT QQuickPathLine : public QQuickCurve +class Q_QUICK_EXPORT QQuickPathLine : public QQuickCurve { Q_OBJECT QML_NAMED_ELEMENT(PathLine) @@ -168,7 +133,7 @@ public: void addToPath(QPainterPath &path, const QQuickPathData &) override; }; -class Q_QUICK_PRIVATE_EXPORT QQuickPathMove : public QQuickCurve +class Q_QUICK_EXPORT QQuickPathMove : public QQuickCurve { Q_OBJECT QML_NAMED_ELEMENT(PathMove) @@ -179,7 +144,7 @@ public: void addToPath(QPainterPath &path, const QQuickPathData &) override; }; -class Q_QUICK_PRIVATE_EXPORT QQuickPathQuad : public QQuickCurve +class Q_QUICK_EXPORT QQuickPathQuad : public QQuickCurve { Q_OBJECT @@ -222,7 +187,7 @@ private: QQmlNullableValue<qreal> _relativeControlY; }; -class Q_QUICK_PRIVATE_EXPORT QQuickPathCubic : public QQuickCurve +class Q_QUICK_EXPORT QQuickPathCubic : public QQuickCurve { Q_OBJECT @@ -290,7 +255,7 @@ private: QQmlNullableValue<qreal> _relativeControl2Y; }; -class Q_QUICK_PRIVATE_EXPORT QQuickPathCatmullRomCurve : public QQuickCurve +class Q_QUICK_EXPORT QQuickPathCatmullRomCurve : public QQuickCurve { Q_OBJECT QML_NAMED_ELEMENT(PathCurve) @@ -301,7 +266,7 @@ public: void addToPath(QPainterPath &path, const QQuickPathData &) override; }; -class Q_QUICK_PRIVATE_EXPORT QQuickPathArc : public QQuickCurve +class Q_QUICK_EXPORT QQuickPathArc : public QQuickCurve { Q_OBJECT Q_PROPERTY(qreal radiusX READ radiusX WRITE setRadiusX NOTIFY radiusXChanged) @@ -351,7 +316,7 @@ private: qreal _xAxisRotation = 0; }; -class Q_QUICK_PRIVATE_EXPORT QQuickPathAngleArc : public QQuickCurve +class Q_QUICK_EXPORT QQuickPathAngleArc : public QQuickCurve { Q_OBJECT Q_PROPERTY(qreal centerX READ centerX WRITE setCenterX NOTIFY centerXChanged) @@ -411,7 +376,7 @@ private: bool _moveToStart = true; }; -class Q_QUICK_PRIVATE_EXPORT QQuickPathSvg : public QQuickCurve +class Q_QUICK_EXPORT QQuickPathSvg : public QQuickCurve { Q_OBJECT Q_PROPERTY(QString path READ path WRITE setPath NOTIFY pathChanged) @@ -432,7 +397,7 @@ private: QString _path; }; -class Q_QUICK_PRIVATE_EXPORT QQuickPathPercent : public QQuickPathElement +class Q_QUICK_EXPORT QQuickPathPercent : public QQuickPathElement { Q_OBJECT Q_PROPERTY(qreal value READ value WRITE setValue NOTIFY valueChanged) @@ -451,7 +416,7 @@ private: qreal _value = 0; }; -class Q_QUICK_PRIVATE_EXPORT QQuickPathPolyline : public QQuickCurve +class Q_QUICK_EXPORT QQuickPathPolyline : public QQuickCurve { Q_OBJECT Q_PROPERTY(QPointF start READ start NOTIFY startChanged) @@ -475,7 +440,7 @@ private: QVector<QPointF> m_path; }; -class Q_QUICK_PRIVATE_EXPORT QQuickPathMultiline : public QQuickCurve +class Q_QUICK_EXPORT QQuickPathMultiline : public QQuickCurve { Q_OBJECT Q_PROPERTY(QPointF start READ start NOTIFY startChanged) @@ -513,7 +478,7 @@ struct QQuickCachedBezier }; class QQuickPathPrivate; -class Q_QUICK_PRIVATE_EXPORT QQuickPath : public QObject, public QQmlParserStatus +class Q_QUICK_EXPORT QQuickPath : public QObject, public QQmlParserStatus { Q_OBJECT @@ -522,6 +487,7 @@ class Q_QUICK_PRIVATE_EXPORT QQuickPath : public QObject, public QQmlParserStatu Q_PROPERTY(qreal startX READ startX WRITE setStartX NOTIFY startXChanged) Q_PROPERTY(qreal startY READ startY WRITE setStartY NOTIFY startYChanged) Q_PROPERTY(bool closed READ isClosed NOTIFY changed) + Q_PROPERTY(bool simplify READ simplify WRITE setSimplify NOTIFY simplifyChanged REVISION(6, 6) FINAL) Q_PROPERTY(QSizeF scale READ scale WRITE setScale NOTIFY scaleChanged REVISION(2, 14)) Q_CLASSINFO("DefaultProperty", "pathElements") QML_NAMED_ELEMENT(Path) @@ -552,10 +518,14 @@ public: QSizeF scale() const; void setScale(const QSizeF &scale); + bool simplify() const; + void setSimplify(bool s); + Q_SIGNALS: void changed(); void startXChanged(); void startYChanged(); + Q_REVISION(6, 6) void simplifyChanged(); Q_REVISION(2, 14) void scaleChanged(); protected: @@ -609,7 +579,7 @@ public: static QPointF sequentialPointAt(const QPainterPath &path, const qreal &pathLength, const QList<AttributePoint> &attributePoints, QQuickCachedBezier &prevBez, qreal p, qreal *angle = nullptr); }; -class Q_QUICK_PRIVATE_EXPORT QQuickPathText : public QQuickPathElement +class Q_QUICK_EXPORT QQuickPathText : public QQuickPathElement { Q_OBJECT Q_PROPERTY(qreal x READ x WRITE setX NOTIFY xChanged) @@ -711,20 +681,4 @@ private: QT_END_NAMESPACE -QML_DECLARE_TYPE(QQuickPathElement) -QML_DECLARE_TYPE(QQuickPathAttribute) -QML_DECLARE_TYPE(QQuickCurve) -QML_DECLARE_TYPE(QQuickPathLine) -QML_DECLARE_TYPE(QQuickPathMove) -QML_DECLARE_TYPE(QQuickPathQuad) -QML_DECLARE_TYPE(QQuickPathCubic) -QML_DECLARE_TYPE(QQuickPathCatmullRomCurve) -QML_DECLARE_TYPE(QQuickPathArc) -QML_DECLARE_TYPE(QQuickPathAngleArc) -QML_DECLARE_TYPE(QQuickPathSvg) -QML_DECLARE_TYPE(QQuickPathPercent) -QML_DECLARE_TYPE(QQuickPathPolyline) -QML_DECLARE_TYPE(QQuickPath) -QML_DECLARE_TYPE(QQuickPathText) - #endif // QQUICKPATH_H |