This is an automatically generated e-mail. To reply, visit: http://git.reviewboard.kde.org/r/106567/

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

On September 26th, 2012, 6:42 p.m., Eugene Shalygin wrote:

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.
Seems like it is related not to master document, but to parent-child relation in general. I see that sometimes all child (not only those who belongs to root element directly, but deeper) leak from their parents.

- 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.

Description

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.

Testing

Manual testing

Diffs

  • src/kiledocmanager.cpp (1d652c1)

View Diff