@@ -206,7 +206,7 @@ QHash<int, QByteArray> IndicatorsModel::roleNames() const
206206 roles[IndicatorsModelRole::WidgetSource] = "widgetSource";
207207 roles[IndicatorsModelRole::PageSource] = "pageSource";
208208 roles[IndicatorsModelRole::IndicatorProperties] = "indicatorProperties";
209− roles[IndicatorsModelRole::IsValid] = "isValid";
209+ roles[IndicatorsModelRole::IsVisible] = "isVisible";
210210 }
211211 return roles;
212212}
@@ -269,8 +269,8 @@ QVariant IndicatorsModel::data(const QModelIndex &index, int role) const
269269 return QVariant(indicator->indicatorProperties());
270270 }
271271 break;
272− case IndicatorsModelRole::IsValid:
273− return (indicator ? true : false);
272+ case IndicatorsModelRole::IsVisible:
273+ return (indicator ? indicator->isVisible() : false);
274274 case IndicatorsModelRole::Title:
275275 case IndicatorsModelRole::Description:
276276 case IndicatorsModelRole::WidgetSource:
@@ -282,6 +282,34 @@ QVariant IndicatorsModel::data(const QModelIndex &index, int role) const
282282 return QVariant();
283283}
284284
285+void IndicatorsModel::setData(int row, const QVariant& value, int role)
286+{
287+ setData(index(row, 0), value, role);
288+}
289+
290+bool IndicatorsModel::setData(const QModelIndex & index, const QVariant & value, int role)
291+{
292+ if (!index.isValid() || index.row() >= m_indicators.size())
293+ return false;
294+
295+ Indicator::Ptr indicator = m_indicators[index.row()];
296+
297+ switch (role)
298+ {
299+ case IndicatorsModelRole::IsVisible:
300+ if (indicator) {
301+ if (indicator->setVisible(value.toBool())) {
302+ dataChanged(index, index, QVector<int>() << role);
303+ }
304+ return true;
305+ }
306+ break;
307+ default:
308+ break;
309+ }
310+ return false;
311+}
312+
285313QVariant IndicatorsModel::indicatorData(const Indicator::Ptr& indicator, int role) const
286314{
287315 if (indicator && m_parsed_indicator_data.contains(indicator->identifier()))