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

Method MoveNodeUp

Modules/QtWidgets/src/mitkRenderWindowLayerController.cpp:229–274  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

227}
228
229bool mitk::RenderWindowLayerController::MoveNodeUp(DataNode* dataNode, const BaseRenderer* renderer /*= nullptr*/)
230{
231 if (nullptr == dataNode)
232 {
233 return false;
234 }
235
236 // get the layer stack of the current renderer
237 RenderWindowLayerUtilities::LayerStack stackedLayers = RenderWindowLayerUtilities::GetLayerStack(m_DataStorage, renderer);
238 if (!stackedLayers.empty())
239 {
240 // get the current layer value of the given data node
241 int currentLayer;
242 bool wasFound = dataNode->GetIntProperty("layer", currentLayer, renderer);
243 if (wasFound)
244 {
245 // get the current layer in the map of stacked layers
246 RenderWindowLayerUtilities::LayerStack::const_iterator layerStackIterator = stackedLayers.find(currentLayer);
247 if (layerStackIterator != stackedLayers.end() && layerStackIterator != stackedLayers.begin())
248 {
249 // found the element in the map, at different position than 'begin' ->
250 // current node is not on the topmost layer and therefore can be moved one layer up
251 // swap the layers of the dataNode and the dataNode on the next higher layer (previous map element)
252 RenderWindowLayerUtilities::LayerStack::const_iterator prevLayerStackIterator = std::prev(layerStackIterator);
253 dataNode->SetIntProperty("layer", prevLayerStackIterator->first, renderer);
254 prevLayerStackIterator->second->SetIntProperty("layer", currentLayer, renderer);
255 dataNode->Modified();
256 if (nullptr == renderer)
257 {
258 mitk::RenderingManager::GetInstance()->RequestUpdateAll();
259
260 }
261 else
262 {
263 mitk::RenderingManager::GetInstance()->RequestUpdate(renderer->GetRenderWindow());
264 }
265 return true;
266 }
267 // else: layer stack does not contain a layer with the 'currentLayer'data node or
268 // layer is already the topmost layer node
269 }
270 // else: data node has no layer information
271 }
272 // else: do not work with empty layer stack
273 return false;
274}
275
276bool mitk::RenderWindowLayerController::MoveNodeDown(DataNode* dataNode, const BaseRenderer* renderer /*= nullptr*/)
277{

Callers

nothing calls this directly

Calls 10

emptyMethod · 0.45
GetIntPropertyMethod · 0.45
findMethod · 0.45
endMethod · 0.45
beginMethod · 0.45
SetIntPropertyMethod · 0.45
ModifiedMethod · 0.45
RequestUpdateAllMethod · 0.45
RequestUpdateMethod · 0.45
GetRenderWindowMethod · 0.45

Tested by

no test coverage detected