Locked History Attachments

ChangeRequests/3351

Summary of problem description

actual behaviour

Changing rendering relevant properties (e.g. color, opacity) in DataManager's property list does NOT affect rendering until the user manually (e.g. by clicking) moves Qt focus to a property table item other than the recently changed property value.

expected behaviour

Changing e.g. opacity by using the mouse wheel in the displayed spinbox should immediately affect rendering so that the user gets visual feedback for his actions.

Cause of the bug

The table view for a property list uses a QmitkPropertyDelegate to create so called editors. Such editors are able to display to the user certain property values in an editable manner by creating appropriate widgets (e.g. a spinbox, a color dialog, etc.). Editors are created when the user clicks property value cells. Editors "commit" their changed value back to the underlying mitk::Property at some point where they are "finished". There was no piece of code for changing a property value during the "editing" operation...

Proposed solution

Let QmitkPropertyDelegate install a Qt event filter on created editor widgets. When certain events occur (e.g. KeyReleased, MouseReleased...) the current editor value is "committed" to the mitk::Property and rendering is triggered.

Affected classes

QmitkPropertyDelegate.h/.cpp

How will the bugfix get tested?

Starting ExtApp manually, loading Pic3D.pic.gz, changing opacity by using the mouse wheel, changing color to yellow. Changes should take effect immediately.