@@ -22,10 +22,18 @@
24#include "abstractfilteroption.h"
24#include "abstractfilteroption.h"
25+#include "showallfilteroption.h"
26−GenericOptionsModel::GenericOptionsModel(QObject *parent)
27+GenericOptionsModel::GenericOptionsModel(bool showAllOption, QObject *parent)
27 : QAbstractListModel(parent)
28 : QAbstractListModel(parent)
32+ auto showAll = ShowAllFilterOption("TODO", this);
33+ connect(showAll, SIGNAL(activeChanged(bool)), this, SLOT(onOptionChanged()));
34+ connect(showAll, SIGNAL(activeChanged(bool)), this, SLOT(onShowAllClicked(bool)));
35+ addOption(showAll, 0);
31GenericOptionsModel::~GenericOptionsModel()
39GenericOptionsModel::~GenericOptionsModel()
@@ -52,7 +60,7 @@ QVariant GenericOptionsModel::data(const QModelIndex& index, int role) const
52 return QVariant();
60 return QVariant();
55− auto filterOption = m_options[index.row()];
63+ auto filterOption = (m_showAll != nullptr && index.row() == 0) ? m_showAll : m_options[index.row()];
56 switch (role)
64 switch (role)
58 case GenericOptionsModel::RoleId:
66 case GenericOptionsModel::RoleId:
@@ -73,7 +81,7 @@ QVariant GenericOptionsModel::data(const QModelIndex& index, int role) const
74int GenericOptionsModel::rowCount(const QModelIndex& /* parent */) const
82int GenericOptionsModel::rowCount(const QModelIndex& /* parent */) const
76− return m_options.size ();
84+ return m_options.size;
79void GenericOptionsModel::setActive(int idx, bool value)
87void GenericOptionsModel::setActive(int idx, bool value)
@@ -103,6 +111,11 @@ AbstractFilterOption* GenericOptionsModel::getRawOption(QVector<AbstractFilterOp
103 return nullptr;
111 return nullptr;
114+void GenericOptionsModel::onShowAllClicked(bool active)
116+ ensureTheOnlyActive(m_options[0]);
106void GenericOptionsModel::ensureTheOnlyActive(AbstractFilterOption *activeOption)
119void GenericOptionsModel::ensureTheOnlyActive(AbstractFilterOption *activeOption)
108 if (activeOption->active()) {
121 if (activeOption->active()) {