| 25 | #include <map> |
| 26 | |
| 27 | QmitkNodeSelectionDialog::QmitkNodeSelectionDialog(QWidget* parent, QString title, QString hint) |
| 28 | : QDialog(parent) |
| 29 | , m_NodePredicate(nullptr) |
| 30 | , m_SelectOnlyVisibleNodes(false) |
| 31 | , m_SelectedNodes(NodeList()) |
| 32 | , m_SelectionMode(QAbstractItemView::SingleSelection) |
| 33 | { |
| 34 | m_Controls = std::make_unique<Ui::QmitkNodeSelectionDialog>(); |
| 35 | m_Controls->setupUi(this); |
| 36 | |
| 37 | m_CheckFunction = [](const NodeList &) { return ""; }; |
| 38 | |
| 39 | auto providers = mitk::DataStorageInspectorGenerator::GetProviders(); |
| 40 | auto visibleProviders = mitk::GetVisibleDataStorageInspectors(); |
| 41 | auto preferredID = mitk::GetPreferredDataStorageInspector(); |
| 42 | |
| 43 | if (visibleProviders.empty()) |
| 44 | { |
| 45 | MITK_DEBUG << "No presets for visible node selection inspectors available. Use fallback (show all available inspectors)"; |
| 46 | unsigned int order = 0; |
| 47 | for (const auto &proIter : providers) |
| 48 | { |
| 49 | visibleProviders.insert(std::make_pair(order, proIter.first)); |
| 50 | ++order; |
| 51 | } |
| 52 | } |
| 53 | |
| 54 | int preferredIndex = 0; |
| 55 | bool preferredFound = false; |
| 56 | for (const auto &proIter : visibleProviders) |
| 57 | { |
| 58 | auto finding = providers.find(proIter.second); |
| 59 | if (finding != providers.end()) |
| 60 | { |
| 61 | if (finding->second->GetInspectorID() != QmitkDataStorageFavoriteNodesInspector::INSPECTOR_ID() && finding->second->GetInspectorID() != QmitkDataStorageSelectionHistoryInspector::INSPECTOR_ID()) |
| 62 | { |
| 63 | auto provider = finding->second; |
| 64 | this->AddPanel(provider, preferredID, preferredFound, preferredIndex); |
| 65 | } |
| 66 | } |
| 67 | else |
| 68 | { |
| 69 | MITK_DEBUG << "No provider registered for inspector that is defined as visible in the preferences. Illegal inspector ID: " << proIter.second; |
| 70 | } |
| 71 | } |
| 72 | |
| 73 | if (mitk::GetShowFavoritesInspector()) |
| 74 | { |
| 75 | auto favoritesPorvider = mitk::DataStorageInspectorGenerator::GetProvider(QmitkDataStorageFavoriteNodesInspector::INSPECTOR_ID()); |
| 76 | if (favoritesPorvider != nullptr) |
| 77 | { |
| 78 | this->AddPanel(favoritesPorvider, preferredID, preferredFound, preferredIndex); |
| 79 | } |
| 80 | } |
| 81 | |
| 82 | if (mitk::GetShowHistoryInspector()) |
| 83 | { |
| 84 | auto historyPorvider = mitk::DataStorageInspectorGenerator::GetProvider(QmitkDataStorageSelectionHistoryInspector::INSPECTOR_ID()); |
nothing calls this directly
no test coverage detected