An error occurred while loading the file. Please try again.
-
Christian Kandeler authored
This could happen because insertContents() is called once for every run of the content provider, even if an invalidation happens in between. Example sequence: run() invalidate() [removes result of first run] run() insertContents() [queued for first run, retrieves result of second run] insertContents() [queued for second run, retrieves empty data] We now check in insertContents() whether the content provider has a valid root item and do nothing if it does not. This means that insertContents() will never replace the current model data with empty data; only invalidateContents() can do that from now on. Further improvements: - Only call insertContents() if the run was not aborted; this reduces the number of useless objects in the event queue. - Remove the m_rootItem member; it was only used in the run() function. - Only add the root item to the list at the end of a successful run; there is no reason this object should be accessible from the outside while there are still children being added to it. Change-Id: I80e2ea93dd9bbc8ab7f406c989b61f16f11b6eea Reviewed-by:
Karsten Heimrich <karsten.heimrich@digia.com>
a1751e3d