18 #include "visibleindicatorsmodel.h"
19 #include "indicators.h"
21 VisibleIndicatorsModel::VisibleIndicatorsModel(QObject *parent)
22 : QIdentityProxyModel(parent),
25 QObject::connect(
this, SIGNAL(rowsAboutToBeInserted(QModelIndex,
int,
int)),
this, SLOT(onBeginRowInserted(QModelIndex,
int,
int)));
26 QObject::connect(
this, SIGNAL(rowsInserted(QModelIndex,
int,
int)),
this, SLOT(onRowInserted(QModelIndex,
int,
int)));
29 QHash<int, QByteArray> VisibleIndicatorsModel::roleNames()
const
31 static QHash<int, QByteArray> roles;
34 roles[IndicatorsModelRole::Identifier] =
"identifier";
35 roles[IndicatorsModelRole::Position] =
"position";
36 roles[IndicatorsModelRole::WidgetSource] =
"widgetSource";
37 roles[IndicatorsModelRole::PageSource] =
"pageSource";
38 roles[IndicatorsModelRole::IndicatorProperties] =
"indicatorProperties";
39 roles[IndicatorsModelRole::IsVisible] =
"isVisible";
44 void VisibleIndicatorsModel::setSourceModel(QAbstractItemModel *model)
46 if (sourceModel() != model) {
47 QIdentityProxyModel::setSourceModel(model);
48 Q_EMIT modelChanged();
52 QVariantMap VisibleIndicatorsModel::visible()
const
57 void VisibleIndicatorsModel::onBeginRowInserted(
const QModelIndex&,
int,
int)
62 void VisibleIndicatorsModel::onRowInserted(
const QModelIndex&,
int,
int)
67 void VisibleIndicatorsModel::setVisible(
const QVariantMap& visible)
69 if (m_visible != visible) {
71 Q_EMIT visibleChanged();
74 if (!m_inserting && rowCount() > 0) {
75 Q_EMIT dataChanged(index(0, 0), index(rowCount() - 1, 0), QVector<int>() << IndicatorsModelRole::IsVisible);
80 QVariant VisibleIndicatorsModel::data(
const QModelIndex &index,
int role)
const
82 if (role != IndicatorsModelRole::IsVisible) {
83 return QIdentityProxyModel::data(index, role);
86 if (!index.isValid()) {
90 QString ident = QIdentityProxyModel::data(index, IndicatorsModelRole::Identifier).toString();
91 return m_visible.value(ident,
false).toBool();