diff options
Diffstat (limited to 'src/qprogressindicator.h')
-rw-r--r-- | src/qprogressindicator.h | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/src/qprogressindicator.h b/src/qprogressindicator.h new file mode 100644 index 00000000..f3f61e66 --- /dev/null +++ b/src/qprogressindicator.h @@ -0,0 +1,108 @@ +#ifndef QPROGRESSINDICATOR_H_ +#define QPROGRESSINDICATOR_H_ + +#include <QColor> +#include <QWidget> + +/*! + \class QProgressIndicator + \brief The QProgressIndicator class lets an application display a progress + indicator to show that a lengthy task is under way. + + Progress indicators are indeterminate and do nothing more than spin to show + that the application is busy. + \sa QProgressBar + */ +class QProgressIndicator : public QWidget { + Q_OBJECT + /** + * @brief QProgressIndicator::delay in miliseconds. + */ + Q_PROPERTY(int delay READ animationDelay WRITE setAnimationDelay) + /** + * @brief QProgressIndicator::displayedWhenStopped render when not spinning. + */ + Q_PROPERTY(bool displayedWhenStopped READ isDisplayedWhenStopped WRITE + setDisplayedWhenStopped) + /** + * @brief QProgressIndicator::color of the component.. + */ + Q_PROPERTY(QColor color READ color WRITE setColor) + +public: + explicit QProgressIndicator(QWidget *parent = 0); + + /*! Returns the delay between animation steps. + \return The number of milliseconds between animation steps. By default, + the animation delay is set to 40 milliseconds. + \sa setAnimationDelay + */ + int animationDelay() const { return m_delay; } + + /*! Returns a Boolean value indicating whether the component is currently + animated. + \return Animation state. + \sa startAnimation stopAnimation + */ + bool isAnimated() const; + + /*! Returns a Boolean value indicating whether the receiver shows itself even + when it is not animating. + \return Return true if the progress indicator shows itself even when it is + not animating. By default, it returns false. + \sa setDisplayedWhenStopped + */ + bool isDisplayedWhenStopped() const; + + /*! Returns the color of the component. + \sa setColor + */ + const QColor &color() const { return m_color; } + + virtual QSize sizeHint() const; + int heightForWidth(int w) const; + +public slots: + /*! Starts the spin animation. + \sa stopAnimation isAnimated + */ + void startAnimation(); + + /*! Stops the spin animation. + \sa startAnimation isAnimated + */ + void stopAnimation(); + + /*! Sets the delay between animation steps. + Setting the \a delay to a value larger than 40 slows the animation, while + setting the \a delay to a smaller value speeds it up. + \param delay The delay, in milliseconds. + \sa animationDelay + */ + void setAnimationDelay(int delay); + + /*! Sets whether the component hides itself when it is not animating. + \param state The animation state. Set false to hide the progress indicator + when it is not animating; otherwise true. + \sa isDisplayedWhenStopped + */ + void setDisplayedWhenStopped(bool state); + + /*! Sets the color of the components to the given color. + \sa color + */ + void setColor(const QColor &color); + +protected: + virtual void timerEvent(QTimerEvent *event); + virtual void paintEvent(QPaintEvent *event); + +private: + int m_angle; + int m_timerId; + int m_delay; + bool m_displayedWhenStopped; + QColor m_color; +}; + +#endif // QPROGRESSINDICATOR_H_ |