QVariant TableModelAnovaModel::data(const QModelIndex &index, int role) const { if (_boundTo == NULL || index.isValid() == false) return QVariant(); if (role == Qt::DisplayRole) { int colNo = index.column(); int rowNo = index.row(); Options *row = _rows.at(rowNo); if (colNo == 0) { OptionTerms *termOption = static_cast<OptionTerms *>(row->get(0)); Term t(termOption->value().front()); return t.asQString(); } } else if (role == Qt::CheckStateRole) { int colNo = index.column(); int rowNo = index.row(); Options *row = _rows.at(rowNo); if (colNo == 1) { OptionBoolean *booleanOption = static_cast<OptionBoolean *>(row->get(1)); return booleanOption->value() ? Qt::Checked : Qt::Unchecked; } } return QVariant(); }
QVariant TableModelVariablesOptions::data(const QModelIndex &index, int role) const { if (_boundTo == NULL) return QVariant(); if (index.column() == 0) { if (role == Qt::DisplayRole) { OptionTerms *option = static_cast<OptionTerms *>(_rows.at(index.row())->get(0)); return Term(option->value().front()).asQString(); } else { return QVariant(); } } else { if (role != Qt::DisplayRole && role != Qt::EditRole) return QVariant(); Option* option = _rows.at(index.row())->get(index.column()); OptionList *list = dynamic_cast<OptionList *>(option); if (list == NULL) return QVariant("WTF"); QString selected = tq(list->value()); if (role == Qt::DisplayRole) return selected; QStringList items = tql(list->options()); QList<QVariant> value; value.append(selected); value.append(items); return value; } }