This is an automatically generated e-mail. To reply, visit:

On September 25th, 2012, 8 p.m., Eugene Shalygin wrote:

Ups. When master document is opened in editor, then parsing of all other files did not occur. So the patch is not ready
There seems to be a race condition somewhere in master document handling. Time to time it works. When it fails, in KileInfo::retrieveList() list of children for root item is shorter then it should be. Usually it contains one element.

If I go from the beginning with debugger, I can not catch this situation. Sometimes wthout debugger it works also.

Michel, could you please point me where to look for the master document handling? The parsing and loading process contains so many even-slot connections that it is hard to get a complete overview of it.

- Eugene

On September 25th, 2012, 3:06 p.m., Eugene Shalygin wrote:

Review request for Kile.
By Eugene Shalygin.

Updated Sept. 25, 2012, 3:06 p.m.


Kile shedules parsing of all projet items when it opens a project. But because Manager::m_projects does not contain currently loading project at that time, Manager can not resolve projet items to documents and parsing does not happen.

This patch adds curently parsing project to m_projects collection before invoking projectOpenItem() and thus parsing goes. In the next step, in Manager::handleParsingComplete(), TextInfo object is determined via opened documents list, as I understood. To install results for all project items, the patch adds a second branch that determines TextInfo object via KileProjectItem::getInfo() and the item is accessed via Manager::itemFor() (that is why project must be added to m_projects before parsing)

With these changes completion works for all bib items and labels in project even if these files are not opened.

However, project loading time increases significantly.


Manual testing


  • src/kiledocmanager.cpp (1d652c1)

View Diff