https://bugs.kde.org/show_bug.cgi?id=232837 Aleix Pol changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |FIXED --- Comment #2 from Aleix Pol 2010-08-31 02:12:02 --- commit 4a699f7ed642c94d29649d80676c88abd1da8ff3 Author: Aleix Pol Date: Tue Aug 31 02:01:39 2010 +0200 Update recursively the url on items which it's parent's url has been updated. BUG: 232837 diff --git a/projectmanagers/cmake/cmakemanager.cpp b/projectmanagers/cmake/cmakemanager.cpp index 392be5f..d7c3142 100644 --- a/projectmanagers/cmake/cmakemanager.cpp +++ b/projectmanagers/cmake/cmakemanager.cpp @@ -351,6 +351,8 @@ QList CMakeManager::parse( KDevelop::ProjectFolder m_watchers[item->project()]->addDir(item->url().toLocalFile()); if(folder && folder->type()==KDevelop::ProjectBaseItem::BuildFolder) { + reloadFiles(folder); + kDebug(9042) << "parse:" << folder->url(); KUrl cmakeListsPath(folder->url()); cmakeListsPath.addPath("CMakeLists.txt"); @@ -363,8 +365,6 @@ QList CMakeManager::parse( KDevelop::ProjectFolder } else { - reloadFiles(folder); - KDevelop::ReferencedTopDUContext curr; if(item==item->project()->projectItem()) curr=initializeProject(item->project(), item->project()->projectItem()->url()); @@ -841,11 +841,11 @@ void CMakeManager::reloadFiles(ProjectFolderItem* item) continue; QString current=it->text(); + KUrl fileurl = folderurl; + fileurl.addPath(current); + if(!entries.contains(current)) { - KUrl fileurl = folderurl; - fileurl.addPath(current); - switch(it->type()) { case ProjectBaseItem::File: @@ -859,18 +859,26 @@ void CMakeManager::reloadFiles(ProjectFolderItem* item) break; } } + else if(it->url()!=fileurl) { + it->setUrl(fileurl); + ProjectFolderItem* folder = it->folder(); + + if(folder) + reloadFiles(folder); + } } //We look for new elements foreach( const QString& entry, entries ) { - if( item->hasFileOrFolder( entry ) ) - continue; - KUrl fileurl = folderurl; fileurl.addPath( entry ); - - if( QFileInfo( fileurl.toLocalFile() ).isDir() ) + + if( item->hasFileOrFolder( entry ) ) + { + continue; + } + else if( QFileInfo( fileurl.toLocalFile() ).isDir() ) { fileurl.adjustPath(KUrl::AddTrailingSlash); ProjectFolderItem* pendingfolder = m_pending.take(fileurl); -- Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. _______________________________________________ KDevelop-bugs mailing list KDevelop-bugs@kdevelop.org https://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-bugs