19: QWidget(parent), m_Controls(nullptr), m_SourceCheckboxes(nullptr), m_NavigationDatas(nullptr), m_SelectedIds(nullptr)
28 delete m_SourceCheckboxes;
29 delete m_NavigationDatas;
37 m_Controls =
new Ui::QmitkTrackingSourcesCheckBoxPanelWidgetControls;
53 if( navDatas !=
nullptr )
54 m_NavigationDatas = navDatas;
60 if(m_NavigationDatas ==
nullptr)
61 m_NavigationDatas =
new std::vector<mitk::NavigationData::Pointer>();
64 m_NavigationDatas->push_back(nd);
68 return m_Controls->m_ActionButton->isChecked();
74 if(m_SelectedIds ==
nullptr)
75 m_SelectedIds =
new std::vector<int>();
77 m_SelectedIds->clear();
79 for (
unsigned int i=0; i < m_SourceCheckboxes->size(); i++)
81 if(m_SourceCheckboxes->at(i)->isChecked())
82 m_SelectedIds->push_back(i);
92 QWidget* actWidget =
m_Controls->m_GridLayout->itemAt(0)->widget();
93 m_Controls->m_GridLayout->removeWidget(actWidget);
97 if(m_SourceCheckboxes !=
nullptr)
98 m_SourceCheckboxes->clear();
100 if(m_NavigationDatas !=
nullptr)
101 m_NavigationDatas->clear();
108 if(m_SelectedIds !=
nullptr && !m_SelectedIds->empty())
109 m_SelectedIds->clear();
114 if( m_SourceCheckboxes !=
nullptr )
115 m_SourceCheckboxes->clear();
117 if( m_NavigationDatas ==
nullptr )
125 for(
unsigned int i=0; i < m_NavigationDatas->size(); i++)
131 QString name(m_NavigationDatas->at(i).GetPointer()->GetName());
133 checkBox =
new QCheckBox(name,
this);
135 connect( checkBox, SIGNAL(toggled(
bool)),
this , SLOT(
OnCheckboxClicked(
bool)) );
137 m_SourceCheckboxes->push_back(checkBox);
138 m_Controls->m_GridLayout->addWidget(checkBox,row,column);
146 for(
unsigned int i=0; i< m_SourceCheckboxes->size(); i++)
148 m_SourceCheckboxes->at(i)->setEnabled(enable);
154 for(
unsigned int i=0; i< m_SourceCheckboxes->size(); i++)
156 m_SourceCheckboxes->at(i)->setChecked(
true);
162 for(
unsigned int i=0; i< m_SourceCheckboxes->size(); i++)
164 m_SourceCheckboxes->at(i)->setChecked(
false);
170 m_SourceCheckboxes->at(idx)->setChecked(
true);
175 m_SourceCheckboxes->at(idx)->setChecked(
false);
181 QCheckBox* sender = qobject_cast< QCheckBox* > (QObject::sender());
183 if( sender ==
nullptr )
184 throw std::invalid_argument(
"No sender found!");
188 for(
unsigned int i=0 ;i < m_SourceCheckboxes->size(); i++)
190 if(sender == m_SourceCheckboxes->at(i))
229 m_Controls->m_ActionButton->setCheckable(
true);
231 m_Controls->m_ActionButton->setCheckable(
false);
238 m_Controls->m_ActionButton->setChecked(
false);
244 bool invalidND =
false;
248 if(!(m_NavigationDatas->at(this->GetSelectedTrackingSourcesIDs()->at(i))->IsDataValid()))
254 QMessageBox::warning(
nullptr,
"Invalid Tracking Data",
"One or more instruments are in invalid tracking state! Requested action can not be performed!");
255 m_Controls->m_ActionButton->setChecked(
false);
267 m_Controls->m_ActionButton->setChecked(
false);