From 02488eebe43a840b90b6ee7d950c15c8a79ec853 Mon Sep 17 00:00:00 2001
From: Roberto Raggi <roberto.raggi@trolltech.com>
Date: Mon, 8 Dec 2008 14:48:51 +0100
Subject: [PATCH] More cleanup in the CppPreprocessor.

---
 src/plugins/cpptools/cppmodelmanager.cpp | 24 ++++++++++++------------
 src/plugins/cpptools/cppmodelmanager.h   |  8 ++++----
 2 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp
index e8359da2b5b..a165614a594 100644
--- a/src/plugins/cpptools/cppmodelmanager.cpp
+++ b/src/plugins/cpptools/cppmodelmanager.cpp
@@ -115,7 +115,6 @@ public:
     void setWorkingCopy(const QMap<QString, QByteArray> &workingCopy);
     void setIncludePaths(const QStringList &includePaths);
     void setFrameworkPaths(const QStringList &frameworkPaths);
-    void addIncludePath(const QString &path);
     void setProjectFiles(const QStringList &files);
     void run(QString &fileName);
     void operator()(QString &fileName);
@@ -170,9 +169,6 @@ void CppPreprocessor::setIncludePaths(const QStringList &includePaths)
 void CppPreprocessor::setFrameworkPaths(const QStringList &frameworkPaths)
 { m_frameworkPaths = frameworkPaths; }
 
-void CppPreprocessor::addIncludePath(const QString &path)
-{ m_includePaths.append(path); }
-
 void CppPreprocessor::setProjectFiles(const QStringList &files)
 { m_projectFiles = files; }
 
@@ -488,14 +484,14 @@ void CppModelManager::ensureUpdated()
     if (! m_dirty)
         return;
 
-    m_projectFiles = updateProjectFiles();
-    m_includePaths = updateIncludePaths();
-    m_frameworkPaths = updateFrameworkPaths();
-    m_definedMacros = updateDefinedMacros();
+    m_projectFiles = internalProjectFiles();
+    m_includePaths = internalIncludePaths();
+    m_frameworkPaths = internalFrameworkPaths();
+    m_definedMacros = internalDefinedMacros();
     m_dirty = false;
 }
 
-QStringList CppModelManager::updateProjectFiles() const
+QStringList CppModelManager::internalProjectFiles() const
 {
     QStringList files;
     QMapIterator<ProjectExplorer::Project *, ProjectInfo> it(m_projects);
@@ -504,10 +500,11 @@ QStringList CppModelManager::updateProjectFiles() const
         ProjectInfo pinfo = it.value();
         files += pinfo.sourceFiles;
     }
+    files.removeDuplicates();
     return files;
 }
 
-QStringList CppModelManager::updateIncludePaths() const
+QStringList CppModelManager::internalIncludePaths() const
 {
     QStringList includePaths;
     QMapIterator<ProjectExplorer::Project *, ProjectInfo> it(m_projects);
@@ -516,10 +513,11 @@ QStringList CppModelManager::updateIncludePaths() const
         ProjectInfo pinfo = it.value();
         includePaths += pinfo.includePaths;
     }
+    includePaths.removeDuplicates();
     return includePaths;
 }
 
-QStringList CppModelManager::updateFrameworkPaths() const
+QStringList CppModelManager::internalFrameworkPaths() const
 {
     QStringList frameworkPaths;
     QMapIterator<ProjectExplorer::Project *, ProjectInfo> it(m_projects);
@@ -528,10 +526,11 @@ QStringList CppModelManager::updateFrameworkPaths() const
         ProjectInfo pinfo = it.value();
         frameworkPaths += pinfo.frameworkPaths;
     }
+    frameworkPaths.removeDuplicates();
     return frameworkPaths;
 }
 
-QByteArray CppModelManager::updateDefinedMacros() const
+QByteArray CppModelManager::internalDefinedMacros() const
 {
     QByteArray macros;
     QMapIterator<ProjectExplorer::Project *, ProjectInfo> it(m_projects);
@@ -588,6 +587,7 @@ void CppModelManager::updateProjectInfo(const ProjectInfo &pinfo)
         return;
 
     m_projects.insert(pinfo.project, pinfo);
+    m_dirty = true;
 }
 
 QFuture<void> CppModelManager::refreshSourceFiles(const QStringList &sourceFiles)
diff --git a/src/plugins/cpptools/cppmodelmanager.h b/src/plugins/cpptools/cppmodelmanager.h
index 6bc7d0c1c55..3b2f4e19993 100644
--- a/src/plugins/cpptools/cppmodelmanager.h
+++ b/src/plugins/cpptools/cppmodelmanager.h
@@ -133,10 +133,10 @@ private:
     }
 
     void ensureUpdated();
-    QStringList updateProjectFiles() const;
-    QStringList updateIncludePaths() const;
-    QStringList updateFrameworkPaths() const;
-    QByteArray updateDefinedMacros() const;
+    QStringList internalProjectFiles() const;
+    QStringList internalIncludePaths() const;
+    QStringList internalFrameworkPaths() const;
+    QByteArray internalDefinedMacros() const;
 
     static void parse(QFutureInterface<void> &future,
                       CppPreprocessor *preproc,
-- 
GitLab