diff --git a/src/plugins/genericprojectmanager/genericproject.cpp b/src/plugins/genericprojectmanager/genericproject.cpp index 86d3fbd69554cb0d140a17898b8ba405e3a338fa..7a0a2c41cb181c0d0a4d6626767bddc8d66bd40f 100644 --- a/src/plugins/genericprojectmanager/genericproject.cpp +++ b/src/plugins/genericprojectmanager/genericproject.cpp @@ -170,18 +170,22 @@ static QStringList readLines(const QString &absoluteFileName) bool GenericProject::addFiles(const QStringList &filePaths) { + // Make sure we can open the file for writing QFile file(filesFileName()); - if (file.open(QFile::Append)) { - QTextStream stream(&file); - QDir baseDir(QFileInfo(m_fileName).dir()); - foreach (const QString &filePath, filePaths) { - stream << baseDir.relativeFilePath(filePath) << "\n"; - } - file.close(); - refresh(GenericProject::Files); - return true; - } - return false; + if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) + return false; + + QStringList newFileList = m_files; + newFileList.append(filePaths); + + QTextStream stream(&file); + QDir baseDir(QFileInfo(m_fileName).dir()); + foreach (const QString &filePath, newFileList) + stream << baseDir.relativeFilePath(filePath) << QLatin1Char('\n'); + + file.close(); + refresh(GenericProject::Files); + return true; } void GenericProject::parseProject(RefreshOptions options)