Should fix a lot of corner cases, might introduce a few bugs.
Also rename functions/slots to be better named.
Generic Project Manager and CMake Project Manager are missing from this
patch.
...making use of the new code model features. Move code to
separate file. Make it possible to obtain path to generated
header file from project manager.
The wrong category folder (like Sources/Headers) would be deleted from
the project tree, because all category folders had the same path.
The nodes' path is used everywhere for performance optimization.
This has still a few missing things, but this enough to start getting
some feedback. Missing are non qt projects, a solution for the
runconfiguration, a missing black line between the treeview on top and
the project settings at the bottom. Some flickering with removing/adding
widgets to the QScrollArea and not showing the expanded widget if the
Details button is right at the bottom.
A project's existing .pro file could be added to the project, making
the .pro file appear twice in the project tree. This is sub-optimal
because
1. It does not make sense for the .pro file to appear twice.
2. Qt Creator crashes when trying to remove either of the duplicate
.pro files.
This means, creating a new project, we immediately have completion for
the ui file. Also adding stuff to the ui file now changes the codemodel
immediately.
Yet todo, are tests under windows and suppressing a warning if the form
contains a toplevel spacer.
Qt Creator wouldn't find the correct target if shadow building a project
that uses $$OUT_PWD, like for example itemviews-ng.
We didn't set the necessary variable on the ProFileReader *, simplified
the code to always use a ProFileReader created for the exact
profilenode.
Details: This should improve performance a bit. Instead of starting on indexer per .pro file, schedule and compress updates of ui files. And don't update if we have a full project code model update scheduled anyway. Which helps the startup case.
Details: That is we update all generated headers (which are new or
modfied) in the C++ Engine. Big if, this only works if we find the
correct path for the ui header files. Which is known to sometimes not
work, I'll fix that next.