This is a kind of followup from this shameful bug report. I opened another report because I filled the last one with so much false information as to make it useless. Now that this is out of the way, here's the real problem.
This condition in LookupTableProperty::SetLookupTable can't work:
if ((m_LookupTable != aLookupTable) || (*m_LookupTable != *aLookupTable)) { m_LookupTable = aLookupTable; Modified(); }
because aLookupTable is always the same pointer as m_LookupTable. I verified in QmitkDataManagerView::ColormapActionToggled and, indeed, we never create a new object, we re-use the old one. That's why the "useless" Modified() in my last report was actually doing something.
The condition above was probably there to avoid useless work but I think the solution is to remove it completely, or to create a new LUT instead of re-using it. What do you think?