diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp index d98539969afc79073744f6da6b35c387245a1dcb..ac65d225b52fdf37711196d85c4c4159e48067df 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp @@ -87,6 +87,7 @@ void CMakeProject::parseCMakeLists(const QDir &directory) CMakeCbpParser cbpparser; qDebug()<<"Parsing file "<<cbpFile; if (cbpparser.parseCbpFile(cbpFile)) { + m_projectName = cbpparser.projectName(); qDebug()<<"Building Tree"; // TODO do a intelligent updating of the tree buildTree(m_rootNode, cbpparser.fileList()); @@ -200,8 +201,7 @@ ProjectExplorer::FolderNode *CMakeProject::findOrCreateFolder(CMakeProjectNode * QString CMakeProject::name() const { - // TODO - return ""; + return m_projectName; } Core::IFile *CMakeProject::file() const @@ -469,6 +469,8 @@ void CMakeCbpParser::parseProject() readNext(); if (isEndElement()) { return; + } else if (name() == "Option") { + parseOption(); } else if (name() == "Unit") { parseUnit(); } else if (name() == "Build") { @@ -537,6 +539,19 @@ void CMakeCbpParser::parseTargetOption() } } +QString CMakeCbpParser::projectName() const +{ + return m_projectName; +} + +void CMakeCbpParser::parseOption() +{ + if (attributes().hasAttribute("title")) + m_projectName = attributes().value("title").toString(); + if(isStartElement()) + parseUnknownElement(); +} + void CMakeCbpParser::parseMakeCommand() { while (!atEnd()) { diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.h b/src/plugins/cmakeprojectmanager/cmakeproject.h index cad7b5fe5df1dd46042d36edf963380031a6a88a..cdabdf1d0845d1bb77b732352fbed79df44a48d1 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.h +++ b/src/plugins/cmakeprojectmanager/cmakeproject.h @@ -118,6 +118,7 @@ private: CMakeManager *m_manager; QString m_fileName; CMakeFile *m_file; + QString m_projectName; // TODO probably need a CMake specific node structure CMakeProjectNode* m_rootNode; @@ -137,10 +138,12 @@ public: QList<ProjectExplorer::FileNode *> fileList(); QStringList includeFiles(); QList<CMakeTarget> targets(); + QString projectName() const; private: void parseCodeBlocks_project_file(); void parseProject(); void parseBuild(); + void parseOption(); void parseTarget(); void parseTargetOption(); void parseMakeCommand(); @@ -157,6 +160,7 @@ private: CMakeTarget m_target; bool m_targetType; QList<CMakeTarget> m_targets; + QString m_projectName; }; class CMakeFile : public Core::IFile