void SensorDataTreeItem::initItem() { this->setEditable(false); this->setToolTip("SensorData item"); //Add items QList<QStandardItem*> list; QVariant data; MetaTreeItem* pItemStreamStatus = new MetaTreeItem(MetaTreeItemTypes::StreamStatus, "Stream data on/off"); connect(pItemStreamStatus, &MetaTreeItem::checkStateChanged, this, &SensorDataTreeItem::onCheckStateWorkerChanged); list << pItemStreamStatus; list << new QStandardItem(pItemStreamStatus->toolTip()); this->appendRow(list); pItemStreamStatus->setCheckable(true); pItemStreamStatus->setCheckState(Qt::Unchecked); data.setValue(false); pItemStreamStatus->setData(data, MetaTreeItemRoles::StreamStatus); MetaTreeItem* pItemColormapType = new MetaTreeItem(MetaTreeItemTypes::ColormapType, "Hot"); connect(pItemColormapType, &MetaTreeItem::dataChanged, this, &SensorDataTreeItem::onColormapTypeChanged); list.clear(); list << pItemColormapType; list << new QStandardItem(pItemColormapType->toolTip()); this->appendRow(list); data.setValue(QString("Hot")); pItemColormapType->setData(data, MetaTreeItemRoles::ColormapType); MetaTreeItem* pItemSourceLocNormValue = new MetaTreeItem(MetaTreeItemTypes::DistributedSourceLocThreshold, "0.0, 0.5,10.0"); connect(pItemSourceLocNormValue, &MetaTreeItem::dataChanged, this, &SensorDataTreeItem::onDataNormalizationValueChanged); list.clear(); list << pItemSourceLocNormValue; list << new QStandardItem(pItemSourceLocNormValue->toolTip()); this->appendRow(list); data.setValue(QVector3D(0.0,5.5,15)); pItemSourceLocNormValue->setData(data, MetaTreeItemRoles::DistributedSourceLocThreshold); MetaTreeItem *pItemStreamingInterval = new MetaTreeItem(MetaTreeItemTypes::StreamingTimeInterval, "17"); connect(pItemStreamingInterval, &MetaTreeItem::dataChanged, this, &SensorDataTreeItem::onTimeIntervalChanged); list.clear(); list << pItemStreamingInterval; list << new QStandardItem(pItemStreamingInterval->toolTip()); this->appendRow(list); data.setValue(17); pItemStreamingInterval->setData(data, MetaTreeItemRoles::StreamingTimeInterval); MetaTreeItem *pItemLoopedStreaming = new MetaTreeItem(MetaTreeItemTypes::LoopedStreaming, "Looping on/off"); connect(pItemLoopedStreaming, &MetaTreeItem::checkStateChanged, this, &SensorDataTreeItem::onCheckStateLoopedStateChanged); pItemLoopedStreaming->setCheckable(true); pItemLoopedStreaming->setCheckState(Qt::Checked); list.clear(); list << pItemLoopedStreaming; list << new QStandardItem(pItemLoopedStreaming->toolTip()); this->appendRow(list); MetaTreeItem *pItemAveragedStreaming = new MetaTreeItem(MetaTreeItemTypes::NumberAverages, "1"); connect(pItemAveragedStreaming, &MetaTreeItem::dataChanged, this, &SensorDataTreeItem::onNumberAveragesChanged); list.clear(); list << pItemAveragedStreaming; list << new QStandardItem(pItemAveragedStreaming->toolTip()); this->appendRow(list); data.setValue(1); pItemAveragedStreaming->setData(data, MetaTreeItemRoles::NumberAverages); MetaTreeItem *pItemCancelDistance = new MetaTreeItem(MetaTreeItemTypes::CancelDistance, "0.05"); connect(pItemCancelDistance, &MetaTreeItem::dataChanged, this, &SensorDataTreeItem::onCancelDistanceChanged); list.clear(); list << pItemCancelDistance; list << new QStandardItem(pItemCancelDistance->toolTip()); this->appendRow(list); data.setValue(0.05); pItemCancelDistance->setData(data, MetaTreeItemRoles::CancelDistance); MetaTreeItem* pInterpolationFunction = new MetaTreeItem(MetaTreeItemTypes::InterpolationFunction, "Cubic"); connect(pInterpolationFunction, &MetaTreeItem::dataChanged, this, &SensorDataTreeItem::onInterpolationFunctionChanged); list.clear(); list << pInterpolationFunction; list << new QStandardItem(pInterpolationFunction->toolTip()); this->appendRow(list); data.setValue(QString("Cubic")); pInterpolationFunction->setData(data, MetaTreeItemRoles::InterpolationFunction); }
bool BrainRTSourceLocDataTreeItem::init(const MNEForwardSolution& tForwardSolution, const QByteArray& arraySurfaceVertColor, int iHemi, const VectorXi& vecLabelIds, const QList<FSLIB::Label>& lLabels) { //Set hemisphere information as item's data this->setData(iHemi, Data3DTreeModelItemRoles::RTHemi); //Set data based on clusterd or full source space bool isClustered = tForwardSolution.src[iHemi].isClustered(); if(isClustered) { //Source Space IS clustered switch(iHemi) { case 0: this->setData(0, Data3DTreeModelItemRoles::RTStartIdx); this->setData(tForwardSolution.src[0].cluster_info.centroidSource_rr.size() - 1, Data3DTreeModelItemRoles::RTEndIdx); break; case 1: this->setData(tForwardSolution.src[0].cluster_info.centroidSource_rr.size(), Data3DTreeModelItemRoles::RTStartIdx); this->setData(tForwardSolution.src[0].cluster_info.centroidSource_rr.size() + tForwardSolution.src[1].cluster_info.centroidSource_rr.size() - 1, Data3DTreeModelItemRoles::RTEndIdx); break; } } else { //Source Space is NOT clustered switch(iHemi) { case 0: this->setData(0, Data3DTreeModelItemRoles::RTStartIdx); this->setData(tForwardSolution.src[0].nuse - 1, Data3DTreeModelItemRoles::RTEndIdx); break; case 1: this->setData(tForwardSolution.src[0].nuse, Data3DTreeModelItemRoles::RTStartIdx); this->setData(tForwardSolution.src[0].nuse + tForwardSolution.src[1].nuse - 1, Data3DTreeModelItemRoles::RTEndIdx); break; } } QVariant data; if(iHemi != -1 && iHemi < tForwardSolution.src.size()) { if(isClustered) { //When clustered source space, the idx no's are the annotation labels. Take the .cluster_info.centroidVertno instead. VectorXi clustVertNo(tForwardSolution.src[iHemi].cluster_info.centroidVertno.size()); for(int i = 0; i <clustVertNo.rows(); i++) { clustVertNo(i) = tForwardSolution.src[iHemi].cluster_info.centroidVertno.at(i); } data.setValue(clustVertNo); } else { data.setValue(tForwardSolution.src[iHemi].vertno); } this->setData(data, Data3DTreeModelItemRoles::RTVertNo); } //Add meta information as item children QList<QStandardItem*> list; MetaTreeItem* pItemRTDataStreamStatus = new MetaTreeItem(MetaTreeItemTypes::RTDataStreamStatus, "Stream data on/off"); connect(pItemRTDataStreamStatus, &MetaTreeItem::checkStateChanged, this, &BrainRTSourceLocDataTreeItem::onCheckStateWorkerChanged); list << pItemRTDataStreamStatus; list << new QStandardItem(pItemRTDataStreamStatus->toolTip()); this->appendRow(list); pItemRTDataStreamStatus->setCheckable(true); pItemRTDataStreamStatus->setCheckState(Qt::Unchecked); data.setValue(false); pItemRTDataStreamStatus->setData(data, MetaTreeItemRoles::RTDataStreamStatus); MetaTreeItem* pItemVisuaizationType = new MetaTreeItem(MetaTreeItemTypes::RTDataVisualizationType, "Vertex based"); connect(pItemVisuaizationType, &MetaTreeItem::rtDataVisualizationTypeChanged, this, &BrainRTSourceLocDataTreeItem::onVisualizationTypeChanged); list.clear(); list << pItemVisuaizationType; list << new QStandardItem(pItemVisuaizationType->toolTip()); this->appendRow(list); data.setValue(QString("Single Vertex")); pItemVisuaizationType->setData(data, MetaTreeItemRoles::RTDataVisualizationType); QString sIsClustered = isClustered ? "Clustered" : "Full"; MetaTreeItem* pItemSourceSpaceType = new MetaTreeItem(MetaTreeItemTypes::RTDataSourceSpaceType, sIsClustered); pItemSourceSpaceType->setEditable(false); list.clear(); list << pItemSourceSpaceType; list << new QStandardItem(pItemSourceSpaceType->toolTip()); this->appendRow(list); data.setValue(sIsClustered); pItemSourceSpaceType->setData(data, MetaTreeItemRoles::RTDataSourceSpaceType); MetaTreeItem* pItemColormapType = new MetaTreeItem(MetaTreeItemTypes::RTDataColormapType, "Hot Negative 2"); connect(pItemColormapType, &MetaTreeItem::rtDataColormapTypeChanged, this, &BrainRTSourceLocDataTreeItem::onColormapTypeChanged); list.clear(); list << pItemColormapType; list << new QStandardItem(pItemColormapType->toolTip()); this->appendRow(list); data.setValue(QString("Hot Negative 2")); pItemColormapType->setData(data, MetaTreeItemRoles::RTDataColormapType); MetaTreeItem* pItemSourceLocNormValue = new MetaTreeItem(MetaTreeItemTypes::RTDataNormalizationValue, "10.0"); connect(pItemSourceLocNormValue, &MetaTreeItem::rtDataNormalizationValueChanged, this, &BrainRTSourceLocDataTreeItem::onDataNormalizationValueChanged); list.clear(); list << pItemSourceLocNormValue; list << new QStandardItem(pItemSourceLocNormValue->toolTip()); this->appendRow(list); data.setValue(10.0); pItemSourceLocNormValue->setData(data, MetaTreeItemRoles::RTDataNormalizationValue); MetaTreeItem *pItemStreamingInterval = new MetaTreeItem(MetaTreeItemTypes::RTDataTimeInterval, "1000"); connect(pItemStreamingInterval, &MetaTreeItem::rtDataTimeIntervalChanged, this, &BrainRTSourceLocDataTreeItem::onTimeIntervalChanged); list.clear(); list << pItemStreamingInterval; list << new QStandardItem(pItemStreamingInterval->toolTip()); this->appendRow(list); data.setValue(1000); pItemStreamingInterval->setData(data, MetaTreeItemRoles::RTDataTimeInterval); MetaTreeItem *pItemLoopedStreaming = new MetaTreeItem(MetaTreeItemTypes::RTDataLoopedStreaming, "Looping on/off"); connect(pItemLoopedStreaming, &MetaTreeItem::checkStateChanged, this, &BrainRTSourceLocDataTreeItem::onCheckStateLoopedStateChanged); pItemLoopedStreaming->setCheckable(true); pItemLoopedStreaming->setCheckState(Qt::Checked); list.clear(); list << pItemLoopedStreaming; list << new QStandardItem(pItemLoopedStreaming->toolTip()); this->appendRow(list); MetaTreeItem *pItemAveragedStreaming = new MetaTreeItem(MetaTreeItemTypes::RTDataNumberAverages, "1"); connect(pItemAveragedStreaming, &MetaTreeItem::rtDataNumberAveragesChanged, this, &BrainRTSourceLocDataTreeItem::onNumberAveragesChanged); list.clear(); list << pItemAveragedStreaming; list << new QStandardItem(pItemAveragedStreaming->toolTip()); this->appendRow(list); data.setValue(1); pItemAveragedStreaming->setData(data, MetaTreeItemRoles::RTDataNumberAverages); //set rt data corresponding to the hemisphere m_pSourceLocRtDataWorker->setSurfaceData(arraySurfaceVertColor, this->data(Data3DTreeModelItemRoles::RTVertNo).value<VectorXi>()); m_pSourceLocRtDataWorker->setAnnotationData(vecLabelIds, lLabels); m_bIsInit = true; return true; }