| 370 | } |
| 371 | |
| 372 | void QmitkDataStorageComboBox::Reset() |
| 373 | { |
| 374 | // remove all nodes first |
| 375 | while (!m_Nodes.empty()) |
| 376 | { |
| 377 | // remove last node |
| 378 | // explicitly calling RemoveNode of QmitkDataStorageComboBox since derived classes may prevent the removal of all |
| 379 | // nodes in their respective RemoveNode implementation. This is happening for example in |
| 380 | // QmitkDataStorageComboBoxWithSelectNone. |
| 381 | QmitkDataStorageComboBox::RemoveNode(m_Nodes.size() - 1); |
| 382 | } |
| 383 | |
| 384 | // clear combobox |
| 385 | this->clear(); |
| 386 | |
| 387 | auto dataStorage = m_DataStorage.Lock(); |
| 388 | |
| 389 | if (dataStorage.IsNotNull()) |
| 390 | { |
| 391 | mitk::DataStorage::SetOfObjects::ConstPointer setOfObjects; |
| 392 | |
| 393 | // select all if predicate == nullptr |
| 394 | if (m_Predicate.IsNotNull()) |
| 395 | setOfObjects = dataStorage->GetSubset(m_Predicate); |
| 396 | else |
| 397 | setOfObjects = dataStorage->GetAll(); |
| 398 | |
| 399 | // add all found nodes |
| 400 | for (mitk::DataStorage::SetOfObjects::ConstIterator nodeIt = setOfObjects->Begin(); nodeIt != setOfObjects->End(); |
| 401 | ++nodeIt) // for each dataNode |
| 402 | { |
| 403 | // add node to the node vector and to the combobox |
| 404 | this->AddNode(nodeIt.Value().GetPointer()); |
| 405 | } |
| 406 | } |
| 407 | } |
| 408 | |
| 409 | void QmitkDataStorageComboBox::RemoveNodeAndPropertyLists(int index) |
| 410 | { |