void Data3DTreeDelegate::setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const { const Data3DTreeModel* pData3DTreeModel = static_cast<const Data3DTreeModel*>(index.model()); const AbstractTreeItem* pAbstractItem = static_cast<const AbstractTreeItem*>(pData3DTreeModel->itemFromIndex(index)); switch(pAbstractItem->type()) { case MetaTreeItemTypes::SurfaceColorGyri: { QColorDialog* pColorDialog = static_cast<QColorDialog*>(editor); QColor color = pColorDialog->currentColor(); QVariant data; data.setValue(color); model->setData(index, data, MetaTreeItemRoles::SurfaceColorGyri); model->setData(index, data, Qt::DecorationRole); return; } case MetaTreeItemTypes::SurfaceColorSulci: { QColorDialog* pColorDialog = static_cast<QColorDialog*>(editor); QColor color = pColorDialog->currentColor(); QVariant data; data.setValue(color); model->setData(index, data, MetaTreeItemRoles::SurfaceColorSulci); model->setData(index, data, Qt::DecorationRole); return; } case MetaTreeItemTypes::RTDataColormapType: { QComboBox* pColorMapType = static_cast<QComboBox*>(editor); QVariant data; data.setValue(pColorMapType->currentText()); model->setData(index, data, MetaTreeItemRoles::RTDataColormapType); model->setData(index, data, Qt::DisplayRole); return; } case MetaTreeItemTypes::RTDataNormalizationValue: { Spline* pSpline = static_cast<Spline*>(editor); QVector3D returnVector; returnVector = pSpline->getThreshold(); QString displayThreshold; displayThreshold = QString("%1,%2,%3").arg(returnVector.x()).arg(returnVector.y()).arg(returnVector.z()); QVariant dataDisplay; dataDisplay.setValue(displayThreshold); model->setData(index, dataDisplay, Qt::DisplayRole); model->setData(index, returnVector, MetaTreeItemRoles::RTDataNormalizationValue); return; } case MetaTreeItemTypes::RTDataTimeInterval: { QSpinBox* pSpinBox = static_cast<QSpinBox*>(editor); QVariant data; data.setValue(pSpinBox->value()); model->setData(index, data, MetaTreeItemRoles::RTDataTimeInterval); model->setData(index, data, Qt::DisplayRole); break; } case MetaTreeItemTypes::RTDataVisualizationType: { QComboBox* pVisType = static_cast<QComboBox*>(editor); QVariant data; data.setValue(pVisType->currentText()); model->setData(index, data, MetaTreeItemRoles::RTDataVisualizationType); model->setData(index, data, Qt::DisplayRole); return; } case MetaTreeItemTypes::SurfaceColor: { QColorDialog* pColorDialog = static_cast<QColorDialog*>(editor); QColor color = pColorDialog->currentColor(); QVariant data; data.setValue(color); model->setData(index, data, MetaTreeItemRoles::SurfaceColor); model->setData(index, data, Qt::DecorationRole); return; } case MetaTreeItemTypes::PointColor: { QColorDialog* pColorDialog = static_cast<QColorDialog*>(editor); QColor color = pColorDialog->currentColor(); QVariant data; data.setValue(color); model->setData(index, data, MetaTreeItemRoles::PointColor); model->setData(index, data, Qt::DecorationRole); return; } case MetaTreeItemTypes::RTDataNumberAverages: { QSpinBox* pSpinBox = static_cast<QSpinBox*>(editor); QVariant data; data.setValue(pSpinBox->value()); model->setData(index, data, MetaTreeItemRoles::RTDataNumberAverages); model->setData(index, data, Qt::DisplayRole); break; } case MetaTreeItemTypes::SurfaceAlpha: { QDoubleSpinBox* pDoubleSpinBox = static_cast<QDoubleSpinBox*>(editor); QVariant data; data.setValue(pDoubleSpinBox->value()); model->setData(index, data, MetaTreeItemRoles::SurfaceAlpha); model->setData(index, data, Qt::DisplayRole); break; } case MetaTreeItemTypes::SurfaceTranslateX: { QDoubleSpinBox* pDoubleSpinBox = static_cast<QDoubleSpinBox*>(editor); QVariant data; data.setValue(pDoubleSpinBox->value()); model->setData(index, data, MetaTreeItemRoles::SurfaceTranslateX); model->setData(index, data, Qt::DisplayRole); break; } case MetaTreeItemTypes::SurfaceTranslateY: { QDoubleSpinBox* pDoubleSpinBox = static_cast<QDoubleSpinBox*>(editor); QVariant data; data.setValue(pDoubleSpinBox->value()); model->setData(index, data, MetaTreeItemRoles::SurfaceTranslateY); model->setData(index, data, Qt::DisplayRole); break; } case MetaTreeItemTypes::SurfaceTranslateZ: { QDoubleSpinBox* pDoubleSpinBox = static_cast<QDoubleSpinBox*>(editor); QVariant data; data.setValue(pDoubleSpinBox->value()); model->setData(index, data, MetaTreeItemRoles::SurfaceTranslateZ); model->setData(index, data, Qt::DisplayRole); break; } case MetaTreeItemTypes::NetworkThreshold: { Spline* pSpline = static_cast<Spline*>(editor); QVector3D returnVector; returnVector = pSpline->getThreshold(); QString displayThreshold; displayThreshold = QString("%1,%2,%3").arg(returnVector.x()).arg(returnVector.y()).arg(returnVector.z()); QVariant dataDisplay; dataDisplay.setValue(displayThreshold); model->setData(index, dataDisplay, Qt::DisplayRole); model->setData(index, returnVector, MetaTreeItemRoles::NetworkThreshold); return; } default: // do nothing; break; } QItemDelegate::setModelData(editor, model, index); }