QMimeData *TableModelVariables::mimeData(const QModelIndexList &indexes) const { QMimeData *mimeData = new QMimeData(); QByteArray encodedData; QDataStream dataStream(&encodedData, QIODevice::WriteOnly); dataStream << indexes.length(); foreach (const QModelIndex &index, indexes) { if (index.isValid()) { Term term = _variables.at(index.row()); dataStream << term.asQString(); } } TableModelVariables* th1s = (TableModelVariables*) this; th1s->_mimeData = mimeData; mimeData->setData(_mimeType, encodedData); return mimeData; }
QVariant TableModelVariables::data(const QModelIndex &index, int role) const { int row = index.row(); if (role == Qt::DisplayRole) { Term term = _variables.at(row); return QVariant(term.asQString()); } else if (role == Qt::DecorationRole) { Term term = _variables.at(row); int variableType = requestInfo(term, VariableInfo::VariableType).toInt(); switch (variableType) { case Column::ColumnTypeNominalText: return QVariant(_nominalTextIcon); case Column::ColumnTypeNominal: return QVariant(_nominalIcon); case Column::ColumnTypeOrdinal: return QVariant(_ordinalIcon); case Column::ColumnTypeScale: return QVariant(_scaleIcon); default: return QVariant(); } } else { return QVariant(); } }
QMimeData *TableModelAnovaWithinSubjectCells::mimeData(const QModelIndexList &indexes) const { QMimeData *mimeData = new QMimeData(); QByteArray encodedData; QDataStream dataStream(&encodedData, QIODevice::WriteOnly); dataStream << indexes.length(); foreach (const QModelIndex &index, indexes) { if (index.isValid()) { Term term = _variables.at(index.row()); dataStream << term.asQString(); } } mimeData->setData("application/vnd.list.variable", encodedData); return mimeData; }