[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kdevelop-bugs
Subject:    [Bug 232837] Files cannot be opened after rename a folder
From:       Aleix Pol <aleixpol () kde ! org>
Date:       2010-08-31 0:12:08
Message-ID: 20100831001209.27DCA63756 () immanuel ! kde ! org
[Download RAW message or body]

https://bugs.kde.org/show_bug.cgi?id=232837


Aleix Pol <aleixpol@kde.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |FIXED




--- Comment #2 from Aleix Pol <aleixpol kde org>  2010-08-31 02:12:02 ---
commit 4a699f7ed642c94d29649d80676c88abd1da8ff3
Author: Aleix Pol <aleixpol@kde.org>
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<KDevelop::ProjectFolderItem*> 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<KDevelop::ProjectFolderItem*> 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
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic