MCPcopy Create free account
hub / github.com/MITK/MITK / SetDataStorage

Method SetDataStorage

Modules/QtWidgets/src/QmitkAbstractNodeSelectionWidget.cpp:64–109  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

62}
63
64void QmitkAbstractNodeSelectionWidget::SetDataStorage(mitk::DataStorage* dataStorage)
65{
66 if (m_DataStorage == dataStorage)
67 {
68 return;
69 }
70
71 auto oldStorage = m_DataStorage.Lock();
72 if (oldStorage.IsNotNull())
73 {
74 // remove Listener for the data storage itself
75 oldStorage->RemoveObserver(m_DataStorageDeletedTag);
76
77 // remove "add node listener" from old data storage
78 oldStorage->AddNodeEvent.RemoveListener(
79 mitk::MessageDelegate1<QmitkAbstractNodeSelectionWidget, const mitk::DataNode*>(this, &QmitkAbstractNodeSelectionWidget::NodeAddedToStorage));
80
81 // remove "remove node listener" from old data storage
82 oldStorage->RemoveNodeEvent.RemoveListener(
83 mitk::MessageDelegate1<QmitkAbstractNodeSelectionWidget, const mitk::DataNode*>(this, &QmitkAbstractNodeSelectionWidget::NodeRemovedFromStorage));
84 }
85
86 m_DataStorage = dataStorage;
87
88 auto newStorage = m_DataStorage.Lock();
89
90 if (newStorage.IsNotNull())
91 {
92 // add Listener for the data storage itself
93 auto command = itk::SimpleMemberCommand<QmitkAbstractNodeSelectionWidget>::New();
94 command->SetCallbackFunction(this, &QmitkAbstractNodeSelectionWidget::SetDataStorageDeleted);
95 m_DataStorageDeletedTag = newStorage->AddObserver(itk::DeleteEvent(), command);
96
97 // add "add node listener" for new data storage
98 newStorage->AddNodeEvent.AddListener(
99 mitk::MessageDelegate1<QmitkAbstractNodeSelectionWidget, const mitk::DataNode*>(this, &QmitkAbstractNodeSelectionWidget::NodeAddedToStorage));
100
101 // add remove node listener for new data storage
102 newStorage->RemoveNodeEvent.AddListener(
103 mitk::MessageDelegate1<QmitkAbstractNodeSelectionWidget, const mitk::DataNode*>(this, &QmitkAbstractNodeSelectionWidget::NodeRemovedFromStorage));
104 }
105
106 this->OnDataStorageChanged();
107
108 this->HandleChangeOfInternalSelection({});
109}
110
111void QmitkAbstractNodeSelectionWidget::SetNodePredicate(const mitk::NodePredicateBase* nodePredicate)
112{

Callers

nothing calls this directly

Calls 8

OnDataStorageChangedMethod · 0.95
IsNotNullMethod · 0.80
AddObserverMethod · 0.80
NewFunction · 0.50
LockMethod · 0.45
RemoveListenerMethod · 0.45
AddListenerMethod · 0.45

Tested by

no test coverage detected