2 files changed, 49 insertions, 120 deletions
diff --git a/include/ui/CircularProgress.h b/include/ui/CircularProgress.h
deleted file mode 100644
index 291cce1c..00000000
--- a/include/ui/CircularProgress.h
+++ /dev/null
@@ -1,120 +0,0 @@
-#pragma once
-
-#include <QObject>
-#include <QProgressBar>
-
-#include "Theme.h"
-
-class CircularProgressDelegate;
-
-class CircularProgress : public QProgressBar
-{
- Q_OBJECT
-
- Q_PROPERTY(qreal lineWidth WRITE setLineWidth READ lineWidth)
- Q_PROPERTY(qreal size WRITE setSize READ size)
- Q_PROPERTY(QColor color WRITE setColor READ color)
-
-public:
- explicit CircularProgress(QWidget *parent = nullptr);
- ~CircularProgress();
-
- void setProgressType(ui::ProgressType type);
- void setLineWidth(qreal width);
- void setSize(int size);
- void setColor(const QColor &color);
-
- ui::ProgressType progressType() const;
- qreal lineWidth() const;
- int size() const;
- QColor color() const;
-
- QSize sizeHint() const override;
-
-protected:
- void paintEvent(QPaintEvent *event) override;
-
-private:
- CircularProgressDelegate *delegate_;
-
- ui::ProgressType progress_type_;
-
- QColor color_;
-
- // Circle width.
- qreal width_;
-
- // Circle radius.
- int size_;
-
- // Animation duration.
- int duration_;
-};
-
-class CircularProgressDelegate : public QObject
-{
- Q_OBJECT
-
- Q_PROPERTY(qreal dashOffset WRITE setDashOffset READ dashOffset)
- Q_PROPERTY(qreal dashLength WRITE setDashLength READ dashLength)
- Q_PROPERTY(int angle WRITE setAngle READ angle)
-
-public:
- explicit CircularProgressDelegate(CircularProgress *parent);
- ~CircularProgressDelegate();
-
- inline void setDashOffset(qreal offset);
- inline void setDashLength(qreal length);
- inline void setAngle(int angle);
-
- inline qreal dashOffset() const;
- inline qreal dashLength() const;
- inline int angle() const;
-
-private:
- CircularProgress *const progress_;
-
- qreal dash_offset_;
- qreal dash_length_;
-
- int angle_;
-};
-
-inline void
-CircularProgressDelegate::setDashOffset(qreal offset)
-{
- dash_offset_ = offset;
- progress_->update();
-}
-
-inline void
-CircularProgressDelegate::setDashLength(qreal length)
-{
- dash_length_ = length;
- progress_->update();
-}
-
-inline void
-CircularProgressDelegate::setAngle(int angle)
-{
- angle_ = angle;
- progress_->update();
-}
-
-inline qreal
-CircularProgressDelegate::dashOffset() const
-{
- return dash_offset_;
-}
-
-inline qreal
-CircularProgressDelegate::dashLength() const
-{
- return dash_length_;
-}
-
-inline int
-CircularProgressDelegate::angle() const
-{
- return angle_;
-}
diff --git a/include/ui/LoadingIndicator.h b/include/ui/LoadingIndicator.h
new file mode 100644
index 00000000..2641955a
--- /dev/null
+++ b/include/ui/LoadingIndicator.h
@@ -0,0 +1,49 @@
+#pragma once
+
+#include <QColor>
+#include <QPaintEvent>
+#include <QPainter>
+#include <QTimer>
+#include <QWidget>
+
+class LoadingIndicator : public QWidget
+{
+ Q_OBJECT
+
+public:
+ LoadingIndicator(QWidget *parent = 0);
+ virtual ~LoadingIndicator();
+
+ void paintEvent(QPaintEvent *e);
+
+ void start();
+ void stop();
+
+ QColor color()
+ {
+ return color_;
+ }
+ void setColor(QColor color)
+ {
+ color_ = color;
+ }
+
+ int interval()
+ {
+ return interval_;
+ }
+ void setInterval(int interval)
+ {
+ interval_ = interval;
+ }
+
+private slots:
+ void onTimeout();
+
+private:
+ int interval_;
+ int angle_;
+
+ QColor color_;
+ QTimer *timer_;
+};
|