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

List:       kde-commits
Subject:    [KDevelop] 4add9eb: optimize: remove existing entries from the list an
From:       Milian Wolff <mail () milianw ! de>
Date:       2010-12-14 22:43:12
Message-ID: 20101214224312.25D09A60B0 () git ! kde ! org
[Download RAW message or body]

commit 4add9eb41f6510b48a1ef13faf434ec5ce288b00
branch master
Author: Milian Wolff <mail@milianw.de>
Date:   Tue Dec 14 23:41:37 2010 +0100

    optimize: remove existing entries from the list and don't call potentially slow \
hasFileOrfolder over and over again on them

diff --git a/projectmanagers/cmake/cmakemanager.cpp \
b/projectmanagers/cmake/cmakemanager.cpp index 4de7899..ba95138 100644
--- a/projectmanagers/cmake/cmakemanager.cpp
+++ b/projectmanagers/cmake/cmakemanager.cpp
@@ -847,12 +847,14 @@ void CMakeManager::reloadFiles(ProjectFolderItem* item)
         {
             qDeleteAll(item->project()->itemsForUrl(fileurl));
         }
-        else if(it->url()!=fileurl) {
-            it->setUrl(fileurl);
-            ProjectFolderItem* folder = it->folder();
-            
-            if(folder)
-                reloadFiles(folder);
+        else {
+            if(it->url()!=fileurl) {
+                it->setUrl(fileurl);
+                if(ProjectFolderItem* folder = it->folder())
+                    reloadFiles(folder);
+            }
+            // reduce amount of checks done when looking for new items
+            entries.remove(current);
         }
     }
     
@@ -861,12 +863,11 @@ void CMakeManager::reloadFiles(ProjectFolderItem* item)
     {
         KUrl fileurl = folderurl;
         fileurl.addPath( entry );
-        
-        if( item->hasFileOrFolder( entry ) )
-        {
-            continue;
-        }
-        else if( QFileInfo( fileurl.toLocalFile() ).isDir() )
+
+        // existing entries should have been removed above already
+        Q_ASSERT( !item->hasFileOrFolder( entry ) );
+
+        if( QFileInfo( fileurl.toLocalFile() ).isDir() )
         {
             fileurl.adjustPath(KUrl::AddTrailingSlash);
             ProjectFolderItem* pendingfolder = m_pending.take(fileurl);


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

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