39 if ( m_CombinedModality.IsNotNull() && m_CombinedModality->GetUltrasoundDevice().IsNotNull() )
41 m_CombinedModality->GetUltrasoundDevice()->RemovePropertyChangedListener(m_ListenerDeviceChanged);
44 m_CombinedModality = combinedModality;
45 if ( m_CombinedModality.IsNotNull() )
47 m_ControlInterfaceBMode = m_CombinedModality->GetControlInterfaceBMode();
51 if ( m_CombinedModality->GetUltrasoundDevice()->GetDeviceState() <
mitk::USDevice::State_Connected ) { m_CombinedModality->GetUltrasoundDevice()->Connect(); }
52 if ( m_CombinedModality->GetUltrasoundDevice()->GetDeviceState() ==
mitk::USDevice::State_Connected ) { m_CombinedModality->GetUltrasoundDevice()->Activate(); }
54 if ( m_CombinedModality->GetUltrasoundDevice().IsNotNull() )
56 m_CombinedModality->GetUltrasoundDevice()->AddPropertyChangedListener(m_ListenerDeviceChanged);
62 this->beginResetModel();
63 this->endResetModel();
94 if ( role != Qt::DisplayRole ) {
return QVariant(QVariant::Invalid); }
96 if ( orientation == Qt::Horizontal )
100 case 0:
return QVariant(
"Depth");
101 case 1:
return QVariant(
"Calibrated");
102 case 2:
return QVariant(
"");
106 return QVariant(QVariant::Invalid);
118 if ( m_CombinedModality.IsNull() ) {
return QVariant(QVariant::Invalid); }
120 std::vector<double> scanningDepthValues = m_ControlInterfaceBMode.IsNull() ?
121 std::vector<double>(1,0) : m_ControlInterfaceBMode->GetScanningDepthValues();
124 if (index.row() >= this->rowCount()
125 || index.column() >= this->columnCount())
127 return QVariant(QVariant::Invalid);
130 double currentDepth = 0;
131 if ( m_ControlInterfaceBMode.IsNotNull() ) { currentDepth = m_ControlInterfaceBMode->GetScanningDepth(); }
133 bool isCalibratedForCurrentDepth =
134 m_CombinedModality->GetCalibration(QString::number(scanningDepthValues.at(index.row())).toStdString()).IsNotNull();
138 case Qt::BackgroundRole:
140 if ( isCalibratedForCurrentDepth )
142 return QVariant(QBrush(QColor(125, 255, 125)));
146 return QVariant(QBrush(QColor(255, 125, 125)));
152 if ( scanningDepthValues.at(index.row()) == currentDepth )
160 return QVariant::Invalid;
164 case Qt::DecorationRole:
166 if ( index.column() == 2 )
168 if ( isCalibratedForCurrentDepth )
170 return QIcon(
":/USNavigation/process-stop.png");
177 case Qt::DisplayRole:
179 switch ( index.column() )
183 return QVariant::fromValue<double>(scanningDepthValues.at(index.row()));
187 if ( m_ControlInterfaceBMode.IsNull() )
191 return QVariant(m_CombinedModality->GetCalibration().IsNotNull());
195 return QVariant(isCalibratedForCurrentDepth);
206 case Qt::ToolTipRole:
208 if ( index.column() == 2 && isCalibratedForCurrentDepth )
210 return QVariant(QString(
"Remove calibration for depth ") + QString::number(scanningDepthValues.at(index.row())) +
" on mouse click.");
216 return QVariant(QVariant::Invalid);
222 if ( m_CombinedModality.IsNull() || index.column() != 2 || value !=
false )
225 if ( m_ControlInterfaceBMode.IsNull() )
227 m_CombinedModality->RemoveCalibration();
231 m_CombinedModality->RemoveCalibration(QString::number(m_ControlInterfaceBMode->GetScanningDepthValues().at(index.row())).toStdString());
234 emit dataChanged(this->index(index.row(), 0), this->index(index.row(), 1));