@@ -22,10 +22,18 @@
2222
2323// local
2424#include "abstractfilteroption.h"
25+#include "showallfilteroption.h"
2526
26−GenericOptionsModel::GenericOptionsModel(QObject *parent)
27+GenericOptionsModel::GenericOptionsModel(bool showAllOption, QObject *parent)
2728 : QAbstractListModel(parent)
2829{
30+ if (showAllOption)
31+ {
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);
36+ }
2937}
3038
3139GenericOptionsModel::~GenericOptionsModel()
@@ -52,7 +60,7 @@ QVariant GenericOptionsModel::data(const QModelIndex& index, int role) const
5260 return QVariant();
5361 }
5462
55− auto filterOption = m_options[index.row()];
63+ auto filterOption = (m_showAll != nullptr && index.row() == 0) ? m_showAll : m_options[index.row()];
5664 switch (role)
5765 {
5866 case GenericOptionsModel::RoleId:
@@ -73,7 +81,7 @@ QVariant GenericOptionsModel::data(const QModelIndex& index, int role) const
7381
7482int GenericOptionsModel::rowCount(const QModelIndex& /* parent */) const
7583{
76− return m_options.size ();
84+ return m_options.size;
7785}
7886
7987void GenericOptionsModel::setActive(int idx, bool value)
@@ -103,6 +111,11 @@ AbstractFilterOption* GenericOptionsModel::getRawOption(QVector<AbstractFilterOp
103111 return nullptr;
104112}
105113
114+void GenericOptionsModel::onShowAllClicked(bool active)
115+{
116+ ensureTheOnlyActive(m_options[0]);
117+}
118+
106119void GenericOptionsModel::ensureTheOnlyActive(AbstractFilterOption *activeOption)
107120{
108121 if (activeOption->active()) {