I have now pushed another fix for this problem which really comes down to a guarded QPointer being updated too quickly causing a collision with the pointer being manually updated when one of its earlier values is being updated to 0 due to the underlying widget it once pointed to being deleted (via a deleteLater).
There was really no reason to make this a QPointer as we manually update it in our own TabManager delete routines, and it is never shared outside the TabManager except via a signal and we generate said signal so we control it. That the signal is sent and processed **before** the underlying tab widget is ever destructed.
With this change, I can no longer get too fast tabs to fail even when using ctrl-W on 50 images.
If this change does not cause other problems, we should be able to put this to rest.
Please grab a new version and give it a try.
|