C
Qt Cluster: Rendering and Recovery from Main UI Failure
// Copyright (C) 2020 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause // This file is part of the Qt Safe Renderer module #ifndef CIRCULARINDICATOR_H #define CIRCULARINDICATOR_H #include <QQuickPaintedItem> #include <QPainter> class CircularIndicator : public QQuickPaintedItem { Q_OBJECT Q_PROPERTY(int startAngle READ startAngle WRITE setStartAngle NOTIFY startAngleChanged) Q_PROPERTY(int endAngle READ endAngle WRITE setEndAngle NOTIFY endAngleChanged) Q_PROPERTY(qreal minimumValue READ minimumValue WRITE setMinimumValue NOTIFY minimumValueChanged) Q_PROPERTY(qreal maximumValue READ maximumValue WRITE setMaximumValue NOTIFY maximumValueChanged) Q_PROPERTY(qreal value READ value WRITE setValue NOTIFY valueChanged) Q_PROPERTY(int lineWidth READ lineWidth WRITE setLineWidth NOTIFY lineWidthChanged) Q_PROPERTY(QColor progressColor READ progressColor WRITE setProgressColor NOTIFY progressColorChanged) Q_PROPERTY(QColor backgroundColor READ backgroundColor WRITE setBackgroundColor NOTIFY backgroundColorChanged) Q_PROPERTY(int padding READ padding WRITE setPadding NOTIFY paddingChanged) public: CircularIndicator(QQuickItem *parent = 0); ~CircularIndicator(); int startAngle() const; int endAngle() const; qreal minimumValue() const; qreal maximumValue() const; qreal value() const; int lineWidth() const; QColor progressColor() const; QColor backgroundColor() const; int padding() const; public slots: void setStartAngle(int angle); void setEndAngle(int angle); void setMinimumValue(qreal value); void setMaximumValue(qreal value); void setValue(qreal value); void setLineWidth(int width); void setProgressColor(QColor color); void setBackgroundColor(QColor color); void setPadding(int padding); signals: void startAngleChanged(int); void endAngleChanged(int); void minimumValueChanged(qreal); void maximumValueChanged(qreal); void valueChanged(qreal); void lineWidthChanged(int); void progressColorChanged(QColor); void backgroundColorChanged(QColor); void paddingChanged(int); protected: void paint(QPainter *painter); private: int mStartAngle; int mEndAngle; qreal mMinimumValue; qreal mMaximumValue; qreal mValue; int mLineWidth; QColor mProgressColor; QColor mBackgroundColor; int mPadding; }; #endif // CIRCULARINDICATOR_H