[Bug 64481] classparser does not recognice links or rel. paths to sourcefiles outside project dir

Roberto Raggi roberto at kdevelop.org
Tue Sep 23 14:22:31 UTC 2003

Hash: SHA1

Hi Andreas,

On Tuesday 23 September 2003 13:51, Andreas Koepfle wrote:
> Hi Roberto,
> the following patch fixes it for files with ../ in their file paths in my
> qmake manager projects, by just using the relative path to the files. To
> get it right for the symlinks is harder, as the project file list contains
> the symlink and you want to check if the real file is in the list. Hope to
> help.
I'm afraid that it isn't so simple :) the point is 
PartController::editDocument(..) (defined in kdevelop/src) resolves the link 
before open the editor! so, for instance the problem reporter will not be 
enabled if you call PartController::editDocument("<project-dir>/myfile.h") 
and myfile.h is a link to /usr/include/stdio.h. Maybe a possible solution 
could be to use a dictionary that maps absolute urls to project urls, 
something like

QMap<QString,QString> absoluteFileToProjectFile;
absoluteFileToProjectFile[ URLUtil::canonicalPath(fileName) ] = fileName;

where fileName is a project relative file. This dictionary can be computed 
using KDevProject::allFiles() when the project emits signals 

in this way you can check if a file is a "project file" with
   absoluteFileToProjectFile.contains( absolute-url )
and the classbrowser can use the absoluteFileToProjectFile[ absolute-url ] for 
create the "folders".

ciao robe
Version: GnuPG v1.2.3 (GNU/Linux)


More information about the KDevelop-devel mailing list