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

Method MoveNodeToBack

Modules/QtWidgets/src/mitkRenderWindowLayerController.cpp:181–227  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

179}
180
181bool mitk::RenderWindowLayerController::MoveNodeToBack(DataNode* dataNode, const BaseRenderer* renderer /*= nullptr*/)
182{
183 if (nullptr == dataNode)
184 {
185 return false;
186 }
187
188 // get the layer stack of the current renderer
189 RenderWindowLayerUtilities::LayerStack stackedLayers = RenderWindowLayerUtilities::GetLayerStack(m_DataStorage, renderer);
190 if (!stackedLayers.empty())
191 {
192 // get the last value (lowest int-key)
193 int lowermostLayer = stackedLayers.rbegin()->first;
194 // get the current layer value of the given data node
195 int currentLayer;
196 bool wasFound = dataNode->GetIntProperty("layer", currentLayer, renderer);
197 if (wasFound && currentLayer > lowermostLayer)
198 {
199 // move the current data node to the current lowermost layer
200 dataNode->SetIntProperty("layer", lowermostLayer, renderer);
201 // move all other data nodes one layer up
202 for (auto& layer : stackedLayers)
203 {
204 if (layer.second != dataNode && layer.first < currentLayer)
205 {
206 layer.second->SetIntProperty("layer", layer.first + 1, renderer);
207 }
208 // else: current data node is the selected data node or
209 // was previously already above the selected data node
210 }
211 dataNode->Modified();
212 if (nullptr == renderer)
213 {
214 mitk::RenderingManager::GetInstance()->RequestUpdateAll();
215
216 }
217 else
218 {
219 mitk::RenderingManager::GetInstance()->RequestUpdate(renderer->GetRenderWindow());
220 }
221 return true;
222 }
223 // else: data node has no layer information or is already the lowermost layer node
224 }
225 // else: do not work with empty layer stack
226 return false;
227}
228
229bool mitk::RenderWindowLayerController::MoveNodeUp(DataNode* dataNode, const BaseRenderer* renderer /*= nullptr*/)
230{

Callers

nothing calls this directly

Calls 7

emptyMethod · 0.45
GetIntPropertyMethod · 0.45
SetIntPropertyMethod · 0.45
ModifiedMethod · 0.45
RequestUpdateAllMethod · 0.45
RequestUpdateMethod · 0.45
GetRenderWindowMethod · 0.45

Tested by

no test coverage detected