@@ -20,8 +20,11 @@
21#include "ratingsfilter.h"
21#include "ratingsfilter.h"
24+#include "genericlistmodel.h"
23RatingsFilter::RatingsFilter(QObject *parent) :
26RatingsFilter::RatingsFilter(QObject *parent) :
24− Filter(parent), m_unityRatingsFilter(NULL)
27+ Filter(parent), m_unityRatingsFilter(NULL), m_options(nullptr)
@@ -30,6 +33,11 @@ float RatingsFilter::rating() const
30 return m_unityRatingsFilter->rating();
33 return m_unityRatingsFilter->rating();
36+GenericListModel* RatingsFilter::options() const
33void RatingsFilter::setRating(float rating)
41void RatingsFilter::setRating(float rating)
35 m_unityRatingsFilter->rating = rating;
43 m_unityRatingsFilter->rating = rating;
@@ -44,8 +52,27 @@ void RatingsFilter::setUnityFilter(unity::dash::Filter::Ptr filter)
44 Filter::setUnityFilter(filter);
52 Filter::setUnityFilter(filter);
45 m_unityRatingsFilter = std::dynamic_pointer_cast<unity::dash::RatingsFilter>(m_unityFilter);
53 m_unityRatingsFilter = std::dynamic_pointer_cast<unity::dash::RatingsFilter>(m_unityFilter);
59+ m_options = new GenericListModel(this);
60+ for (int i=1; i<=5; i++) {
61+ auto opt = new RatingFilterOption(QString::number(i), i*0.2f, this);
62+ connect(opt, SIGNAL(activeChanged(bool)), this, SLOT(onActiveChanged()));
63+ m_options->addOption(opt);
47 /* Property change signals */
66 /* Property change signals */
48 m_signals << m_unityRatingsFilter->rating.changed.connect(sigc::mem_fun(this, &RatingsFilter::ratingChanged));
67 m_signals << m_unityRatingsFilter->rating.changed.connect(sigc::mem_fun(this, &RatingsFilter::ratingChanged));
70+void RatingsFilter::onActiveChanged()
72+ RatingFilterOption *option = dynamic_cast<RatingFilterOption*>(QObject::sender());
73+ if (option != nullptr) {
74+ setRating(option->value());
51#include "ratingsfilter.moc"
78#include "ratingsfilter.moc"