14#include <usGetModuleContext.h>
18 : QWidget(parent), m_Controls(nullptr), m_StatusLabels(nullptr), m_NavigationDatas(nullptr), m_NavDatasNewFlag(false), m_previewToolStorage(nullptr)
20 m_ShowPositions =
false;
21 m_ShowQuaternions =
false;
22 m_Alignment = Qt::AlignHCenter;
39 m_ShowPositions = enable;
47 m_ShowQuaternions = enable;
55 m_Alignment = alignment;
65 if (m_StatusLabels!=
nullptr) {
delete m_StatusLabels;}
66 if (m_NavigationDatas !=
nullptr)
68 m_NavigationDatas->clear();
69 if (m_NavDatasNewFlag)
71 delete m_NavigationDatas;
81 m_Controls =
new Ui::QmitkToolTrackingStatusWidgetControls;
89 m_Context = us::GetModuleContext();
91 std::string m_Filter =
"(" + us::ServiceConstants::OBJECTCLASS() +
"=" +
"org.mitk.services.NavigationToolStorage" +
")";
98 if ((event.GetType() == us::ServiceEvent::MODIFIED) && (m_previewToolStorage.IsNotNull())) {this->
PreShowTools(m_previewToolStorage);}
107 m_NavigationDatas = navDatas;
108 m_previewToolStorage =
nullptr;
113 if(m_NavigationDatas ==
nullptr)
115 m_NavigationDatas =
new std::vector<mitk::NavigationData::Pointer>();
116 m_NavDatasNewFlag =
true;
117 m_previewToolStorage =
nullptr;
120 m_NavigationDatas->push_back(nd);
125 if(m_NavigationDatas ==
nullptr || m_NavigationDatas->size() <= 0)
134 for(
unsigned int i = 0; i < m_NavigationDatas->size(); i++)
136 navData = m_NavigationDatas->at(i).GetPointer();
137 QString name(navData->GetName());
142 mitk::Point3D position = navData->GetPosition();
143 pos =
" [" + QString::number(position[0],
'f',posPrecision) +
";" + QString::number(position[1],
'f',posPrecision) +
";" + QString::number(position[2],
'f',posPrecision) +
"]";
145 if (m_ShowQuaternions)
147 mitk::Quaternion quaternion = navData->GetOrientation();
148 quat =
" / [qx:" + QString::number(quaternion.x(),
'f',quatPrecision) +
";qy:" + QString::number(quaternion.y(),
'f',quatPrecision) +
";qz:" + QString::number(quaternion.z(),
'f',quatPrecision) +
";qr:" + QString::number(quaternion.r()) +
"]";
151 if(!(m_StatusLabels->at(i)->text() == name+pos+quat))
152 m_StatusLabels->at(i)->setText(name+pos+quat);
155 m_StatusLabels->at(i)->setStyleSheet(
"QLabel{background-color: #1F641C }");
157 m_StatusLabels->at(i)->setStyleSheet(
"QLabel{background-color: #ff7878 }");
165 if(m_NavigationDatas ==
nullptr || m_NavigationDatas->size() <= 0)
172 m_StatusLabels =
new QVector<QLabel*>();
176 for(
unsigned int i = 0; i < m_NavigationDatas->size(); i++)
178 navData = m_NavigationDatas->at(i).GetPointer();
180 QString name(navData->GetName());
182 label =
new QLabel(name,
this);
183 label->setObjectName(name);
184 label->setAlignment(m_Alignment | Qt::AlignVCenter);
185 label->setFrameStyle(QFrame::Panel | QFrame::Sunken);
187 m_StatusLabels->append(label);
189 m_Controls->m_VerticalLayout->addWidget(m_StatusLabels->at(i));
190 else m_Controls->m_GridLayout->addWidget(m_StatusLabels->at(i),i,0);
199 for(
unsigned int i = 0; i < toolStorage->GetToolCount(); i++)
201 QString name(toolStorage->GetTool(i)->GetToolName().c_str());
203 label =
new QLabel(name,
this);
204 label->setObjectName(name);
205 label->setAlignment(m_Alignment | Qt::AlignVCenter);
206 label->setFrameStyle(QFrame::Panel | QFrame::Sunken);
207 label->setStyleSheet(
"QLabel{background-color: #dddddd; color: #000000 }");
209 else m_Controls->m_GridLayout->addWidget(label);
211 m_previewToolStorage = toolStorage;
220 if(m_StatusLabels !=
nullptr && m_StatusLabels->size() > 0)
222 delete m_StatusLabels;
223 m_StatusLabels =
new QVector< QLabel* >();
226 if(m_NavigationDatas !=
nullptr && m_NavigationDatas->size() > 0)
228 if (m_NavDatasNewFlag)
230 delete m_NavigationDatas;
231 m_NavDatasNewFlag =
false;
233 m_NavigationDatas =
new std::vector<mitk::NavigationData::Pointer>();
234 m_NavDatasNewFlag =
true;
241void QmitkToolTrackingStatusWidget::RemoveGuiLabels()
247 QWidget* actWidget =
m_Controls->m_GridLayout->itemAt(0)->widget();
248 m_Controls->m_GridLayout->removeWidget(actWidget);
251 else if (
m_Controls->m_VerticalLayout->count() > 0)
253 QWidget* actWidget =
m_Controls->m_VerticalLayout->itemAt(0)->widget();
254 m_Controls->m_VerticalLayout->removeWidget(actWidget);
260void QmitkToolTrackingStatusWidget::AddEmptyLabel()
263 QLabel* label =
new QLabel(
"No tools loaded yet.",
this);
264 label->setObjectName(
"No tools loaded yet.");
265 label->setAlignment(m_Alignment | Qt::AlignVCenter);
266 label->setFrameStyle(QFrame::Panel | QFrame::Sunken);
267 label->setStyleSheet(
"QLabel{background-color: #dddddd; color: #000000 }");
269 else m_Controls->m_GridLayout->addWidget(label);
virtual bool IsDataValid() const
returns true if the object contains valid data