From f7812edfe1d5b2f944cd987e2e8efdd331c105df Mon Sep 17 00:00:00 2001
From: Roberto Raggi <roberto.raggi@nokia.com>
Date: Mon, 16 Mar 2009 12:42:16 +0100
Subject: [PATCH] Update the project.

---
 .../genericprojectmanager/genericproject.cpp       | 14 +++++++++-----
 src/plugins/genericprojectmanager/genericproject.h |  6 ++----
 .../genericprojectmanager.cpp                      |  5 ++++-
 3 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/src/plugins/genericprojectmanager/genericproject.cpp b/src/plugins/genericprojectmanager/genericproject.cpp
index af4d513fb13..faaba10be03 100644
--- a/src/plugins/genericprojectmanager/genericproject.cpp
+++ b/src/plugins/genericprojectmanager/genericproject.cpp
@@ -178,7 +178,12 @@ void GenericProject::parseProject()
     _projectIncludePaths.removeDuplicates();
 
     _generated = convertToAbsoluteFiles(projectInfo.value(QLatin1String("generated")).toStringList());
-    _defines   = projectInfo.value(QLatin1String("defines")).toStringList();
+
+    _defines.clear();
+
+    QFile configFn(configFileName());
+    if (configFn.open(QFile::ReadOnly))
+        _defines = configFn.readAll();
 
     emit fileListChanged();
 }
@@ -198,6 +203,8 @@ void GenericProject::refresh()
 
         CppTools::CppModelManagerInterface::ProjectInfo pinfo = modelManager->projectInfo(this);
         pinfo.defines = predefinedMacros;
+        pinfo.defines += '\n';
+        pinfo.defines += _defines;
 
         QStringList allIncludePaths, allFrameworkPaths;
 
@@ -259,12 +266,9 @@ QStringList GenericProject::includePaths() const
 void GenericProject::setIncludePaths(const QStringList &includePaths)
 { _includePaths = includePaths; }
 
-QStringList GenericProject::defines() const
+QByteArray GenericProject::defines() const
 { return _defines; }
 
-void GenericProject::setDefines(const QStringList &defines)
-{ _defines = defines; }
-
 void GenericProject::setToolChainId(const QString &toolChainId)
 {
     using namespace ProjectExplorer;
diff --git a/src/plugins/genericprojectmanager/genericproject.h b/src/plugins/genericprojectmanager/genericproject.h
index 236ee752214..54cb7473ce4 100644
--- a/src/plugins/genericprojectmanager/genericproject.h
+++ b/src/plugins/genericprojectmanager/genericproject.h
@@ -90,9 +90,7 @@ public:
     QStringList includePaths() const;
     void setIncludePaths(const QStringList &includePaths);
 
-    QStringList defines() const;
-    void setDefines(const QStringList &defines);
-
+    QByteArray defines() const;
     QStringList allIncludePaths() const;
     QStringList projectIncludePaths() const;
     QStringList files() const;
@@ -124,7 +122,7 @@ private:
     QStringList _generated;
     QStringList _includePaths;
     QStringList _projectIncludePaths;
-    QStringList _defines;
+    QByteArray _defines;
 
     GenericProjectNode* _rootNode;
     ProjectExplorer::ToolChain *_toolChain;
diff --git a/src/plugins/genericprojectmanager/genericprojectmanager.cpp b/src/plugins/genericprojectmanager/genericprojectmanager.cpp
index 61fba763c97..7714a8e5b36 100644
--- a/src/plugins/genericprojectmanager/genericprojectmanager.cpp
+++ b/src/plugins/genericprojectmanager/genericprojectmanager.cpp
@@ -79,7 +79,10 @@ void Manager::unregisterProject(GenericProject *project)
 void Manager::notifyChanged(const QString &fileName)
 {
     foreach (GenericProject *project, _projects) {
-        project->refresh();
+        if (fileName == project->filesFileName()        ||
+                fileName == project->includesFileName() ||
+                fileName == project->configFileName())
+            project->refresh();
     }
 }
 
-- 
GitLab