From 9ffb707d9d9d478b7538a8cd9ef9ef7c6edae25c Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava Date: Mon, 22 Apr 2013 16:00:27 -0700 Subject: Initial version of the Star Picker Widget. A very simple to use widget: StarWidget *stars = new StarWidget( windowParent); stars->setMaximumStars(10); stars->setCurrentStars( rand()%10); stars->show(); connect(stars, SIGNAL(valueChanged(int)), someObj, SLOT(starsChangedValue(int))); It currently uses a 'star.svg' file on the same folder as the binary. Signed-off-by: Tomaz Canabrava Signed-off-by: Dirk Hohndel --- qt-ui/starwidget.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 qt-ui/starwidget.h (limited to 'qt-ui/starwidget.h') diff --git a/qt-ui/starwidget.h b/qt-ui/starwidget.h new file mode 100644 index 000000000..cdbb3ab5c --- /dev/null +++ b/qt-ui/starwidget.h @@ -0,0 +1,42 @@ +#ifndef STARWIDGET_H +#define STARWIDGET_H + +#include + + +class StarWidget : public QWidget +{ + Q_OBJECT +public: + explicit StarWidget(QWidget* parent = 0, Qt::WindowFlags f = 0); + + int maxStars() const; + int currentStars() const; + bool halfStarsEnabled() const; + + /*reimp*/ QSize sizeHint() const; + + enum {SPACING = 2, IMG_SIZE = 16}; + +Q_SIGNALS: + void valueChanged(int stars); + +public Q_SLOTS: + void setCurrentStars(int value); + void setMaximumStars(int maximum); + void enableHalfStars(bool enabled); + +protected: + /*reimp*/ void mouseReleaseEvent(QMouseEvent* ); + /*reimp*/ void paintEvent(QPaintEvent* ); + +private: + int stars; + int current; + bool halfStar; + QPixmap activeStar; + QPixmap inactiveStar; + QPixmap grayImage(QPixmap *coloredImg); +}; + +#endif // STARWIDGET_H -- cgit v1.2.3-70-g09d2