﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	blockedby	blocking	notify_on_close	platform	project
633	Status messages cause havoc by running event loop	Tom Goddard	Tom Goddard	"To get status messages to appear we run the Qt event loop when the status message is changed with an ExcludeUserEvents argument.  Unfortunately this does not prevent bad side-effects from happening during status messages.

Here are two volume examples.

I noticed opening an Imaris volume series causes the first volume to be read twice even though it should be cached after the first read (which took 5 seconds).  But status messages clearly show it being read twice.  Debugging showed that while the first read was in progress, a status message announcing the percentage complete of reading that file causes event processing.  That causes a 0.5 second timer to go off to update the Volume Viewer panel histogram, which in the middle of the previous incomplete file read, starts reading the file a second time.  QTimer is clearly not excluded in the status message event processing.

A second example.  Moving the volume series slider continuously sometimes causes (1 in 100 frames) time to not be hidden, and it remains superimposed with the time that is shown.  Debugging shows that during MapSeries.show_time(t) call a status message is shown, events are processed, and during that event processing a QSlider.valueChanged signal is emitted causing MapSeries.show_time(t2) to be called while still in the previous show_time() call.  This seems like a clear case of a user event (slider motion) even though the event processing has ExcludeUserEvents set.

About 4 hours were spent debugging the above 2 problems with no simple fix.  We need to provide status / progress messaging that does not run the event loop.


"	defect	closed	major		Window Toolkit		fixed		pett@…				all	ChimeraX
