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

Method RestackOverlays

Modules/QtOverlays/src/QmitkOverlayController.cpp:405–467  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

403}
404
405void QmitkOverlayController::RestackOverlays(QmitkOverlay::DisplayPosition pos)
406{
407 OverlayVector::iterator overlayIter;
408 QBoxLayout *layout = dynamic_cast<QBoxLayout *>(m_PositionedOverlays[pos]->layout());
409
410 std::sort(m_AllOverlays.begin(), m_AllOverlays.end());
411
412 for (overlayIter = m_AllOverlays.begin(); overlayIter != m_AllOverlays.end(); overlayIter++)
413 {
414 // do nothing if the overlay is not in the right position
415 if ((*overlayIter)->GetPosition() != pos)
416 {
417 continue;
418 }
419
420 // determine the desired stacking layer
421 // if the overlay-container is empty, simply append the overlay to the list
422 // if it's not empty, use the layer of the overlay
423 unsigned int layer = (*overlayIter)->GetLayer();
424 int stackLayer = 0;
425 if (!layout->isEmpty())
426 {
427 stackLayer = layer;
428 }
429
430 switch (pos)
431 {
432 // same alignment for all lefts, ...
433 case QmitkOverlay::top_Left:
434 {
435 }
436 case QmitkOverlay::middle_Left:
437 {
438 }
439 case QmitkOverlay::bottom_Left:
440 {
441 layout->insertWidget(stackLayer, (*overlayIter)->GetWidget(), 0, Qt::AlignLeft);
442 break;
443 }
444 // ... for all centers, ...
445 case QmitkOverlay::top_Center:
446 {
447 }
448 case QmitkOverlay::bottom_Center:
449 {
450 layout->insertWidget(stackLayer, (*overlayIter)->GetWidget(), 0, Qt::AlignCenter);
451 break;
452 }
453 // ... and for all rights
454 case QmitkOverlay::top_Right:
455 {
456 }
457 case QmitkOverlay::middle_Right:
458 {
459 }
460 case QmitkOverlay::bottom_Right:
461 {
462 layout->insertWidget(stackLayer, (*overlayIter)->GetWidget(), 0, Qt::AlignRight);

Callers 2

AddOverlayMethod · 0.95
RemoveOverlayMethod · 0.95

Calls 5

beginMethod · 0.45
endMethod · 0.45
GetPositionMethod · 0.45
GetLayerMethod · 0.45
GetWidgetMethod · 0.45

Tested by

no test coverage detected