diff options
Diffstat (limited to 'tests/manual/painterpathquickshape/debugpaintitem.h')
-rw-r--r-- | tests/manual/painterpathquickshape/debugpaintitem.h | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/tests/manual/painterpathquickshape/debugpaintitem.h b/tests/manual/painterpathquickshape/debugpaintitem.h new file mode 100644 index 0000000000..a8fb8fa8cb --- /dev/null +++ b/tests/manual/painterpathquickshape/debugpaintitem.h @@ -0,0 +1,79 @@ +// Copyright (C) 2023 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +#ifndef DEBUGPAINTITEM_H +#define DEBUGPAINTITEM_H + +#include <QQuickPaintedItem> +#include <QtQuick/private/qquickpath_p.h> + +class DebugPaintItem : public QQuickPaintedItem +{ + Q_OBJECT + Q_PROPERTY(QQuickPath *shape READ shape WRITE setShape NOTIFY shapeChanged) + Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged) + Q_PROPERTY(qreal pathScale READ pathScale WRITE setPathScale NOTIFY pathScaleChanged) + Q_PROPERTY(Qt::FillRule fillRule READ fillRule WRITE setFillRule NOTIFY fillRuleChanged) + + Q_PROPERTY(QColor strokeColor READ strokeColor WRITE setStrokeColor NOTIFY strokeChanged) + Q_PROPERTY(Qt::PenStyle strokeStyle READ strokeStyle WRITE setStrokeStyle NOTIFY strokeChanged) + Q_PROPERTY(Qt::PenJoinStyle joinStyle READ joinStyle WRITE setJoinStyle NOTIFY strokeChanged) + Q_PROPERTY(Qt::PenCapStyle capStyle READ capStyle WRITE setCapStyle NOTIFY strokeChanged) + Q_PROPERTY(qreal strokeWidth READ strokeWidth WRITE setStrokeWidth NOTIFY strokeChanged) +public: + DebugPaintItem(QQuickItem *item = nullptr); + + void setShape(QQuickPath *path); + QQuickPath *shape() const; + + void setColor(const QColor &color); + QColor color() const; + + void setPathScale(qreal pathScale); + qreal pathScale() const; + + void setFillRule(Qt::FillRule filleRule); + Qt::FillRule fillRule() const; + + QColor strokeColor() const; + void setStrokeColor(const QColor &strokeColor); + + Qt::PenStyle strokeStyle() const; + void setStrokeStyle(Qt::PenStyle penStyle); + + Qt::PenJoinStyle joinStyle() const; + void setJoinStyle(Qt::PenJoinStyle style); + + Qt::PenCapStyle capStyle() const; + void setCapStyle(Qt::PenCapStyle style); + + qreal strokeWidth() const; + void setStrokeWidth(qreal w); + +signals: + void shapeChanged(); + void colorChanged(); + void opacityChanged(); + void pathScaleChanged(); + void fillRuleChanged(); + void strokeChanged(); + +public slots: + void handlePathChanged(); + +protected: + void paint(QPainter *p) override; + +private: + QQuickPath *m_path = nullptr; + QColor m_color = Qt::red; + qreal m_pathScale = 1.0; + Qt::FillRule m_fillRule = Qt::WindingFill; + Qt::PenStyle m_strokeStyle = Qt::NoPen; + QColor m_strokeColor = Qt::transparent; + qreal m_strokeWidth = 1.0; + Qt::PenCapStyle m_capStyle = Qt::FlatCap; + Qt::PenJoinStyle m_joinStyle = Qt::MiterJoin; +}; + +#endif // DEBUGPAINTITEM_H |