A re-init of the data nodes occurs often during a workflow. The mxn multi widget has some problems with that.
In a typical scenario the user opens a specific number of render windows, shows / hide certain data nodes of the storage to individually display different images. Maybe navigate individually in each render window (zoom, scroll).
If a reinit for all registered render windows is requested, this user defined preset will be reset to the node being reinitialized.
I propose to first gather different actions which lead to an update request.
**Multi Widget (Editor)**
- ~~changing the preferences page of the std- / mxn- multiwidgeteditor~~
- ~~`QmitkStdMultiWidgetEditor::OnPreferencesChanged`: `mitk::RenderingManager::GetInstance()->InitializeViewsByBoundingObjects(GetDataStorage());`~~
- ~~`QmitkMxNMultiWidgetEditor::OnPreferencesChanged`: `mitk::RenderingManager::GetInstance()->InitializeViewsByBoundingObjects(GetDataStorage());`~~
**Segmentation Plugin**
- ~~creating a new segmentation via the segmentation view~~
- ~~`QmitkSegmentationView::CreateNewSegmentation`: `mitk::RenderingManager::GetInstance()->InitializeViews(referenceImage->GetTimeGeometry(), mitk::RenderingManager::REQUEST_UPDATE_ALL, true);`~~ --> was already done in D523
**MultiLabel-Segmentation Plugin**
- updating the UI controls after a different reference (node) / segmentation (node) has been selected in the plugin's node selectors
- updating the UI controls after a layer has been deleted / changed
- `QmitkMultiLabelSegmentationView::UpdateControls`
- ~~re-initializing the views after a new label has been created or after a different segmentation (node) has been selected in the plugin's node selector~~
- ~~`QmitkMultiLabelSegmentationView::ReinitializeViews()`~~ --> was already done in D523 (`ReinitializeViews()` was removed)
**Autocrop action**
- performing the autocrop action
- `QmitkAutocropAction::Run`: `mitk::RenderingManager::GetInstance()->InitializeViews(node->GetData()->GetTimeGeometry(), RenderingManager::REQUEST_UPDATE_ALL, true );` and `mitk::RenderingManager::GetInstance()->RequestUpdateAll();`
--> two request for the same thing (`InitializeViews` already performs a `RequestUpdateAll`)
**Possible solutions**
- allow //locking// specific render windows
- only initialize certain render windows (active / selected, related to used node, ...)