diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp index 62ff1b721bcce5652ca4f1bb6104fd7b8ebdaeff..bf201cb8a88a4aef874b049f4ee25ee99089be66 100644 --- a/src/plugins/qt4projectmanager/qt4nodes.cpp +++ b/src/plugins/qt4projectmanager/qt4nodes.cpp @@ -735,7 +735,9 @@ void Qt4PriFileNode::changeFiles(const FileType fileType, QDir priFileDir = QDir(m_qt4ProFileNode->m_projectDir); if (change == AddToProFile) { - ProWriter::addFiles(includeFile, &lines, priFileDir, filePaths, vars); + // Use the first variable for adding. + // Yes, that's broken for adding objective c sources or other stuff. + ProWriter::addFiles(includeFile, &lines, priFileDir, filePaths, vars.first()); notChanged->clear(); } else { // RemoveFromProFile *notChanged = ProWriter::removeFiles(includeFile, &lines, priFileDir, filePaths, vars); diff --git a/src/shared/proparser/prowriter.cpp b/src/shared/proparser/prowriter.cpp index 56f249ad7eda01bbcc3e1e8f6f0859e574be5921..5c480942c1e00d18b60eda171466772daf3ee3b9 100644 --- a/src/shared/proparser/prowriter.cpp +++ b/src/shared/proparser/prowriter.cpp @@ -37,13 +37,13 @@ using namespace Qt4ProjectManager::Internal; void ProWriter::addFiles(ProFile *profile, QStringList *lines, const QDir &proFileDir, const QStringList &filePaths, - const QStringList &vars) + const QString &var) { // Check if variable item exists as child of root item for (ProItem *item = profile->items(); item; item = item->next()) { if (item->kind() == ProItem::VariableKind) { ProVariable *proVar = static_cast<ProVariable*>(item); - if (vars.contains(proVar->variable()) + if (var == proVar->variable() && proVar->variableOperator() != ProVariable::RemoveOperator && proVar->variableOperator() != ProVariable::ReplaceOperator) { @@ -78,7 +78,7 @@ void ProWriter::addFiles(ProFile *profile, QStringList *lines, } // Create & append new variable item - QString added = QLatin1Char('\n') + vars.first() + QLatin1String(" +="); + QString added = QLatin1Char('\n') + var + QLatin1String(" +="); foreach (const QString &filePath, filePaths) added += QLatin1String(" \\\n ") + proFileDir.relativeFilePath(filePath); *lines << added; diff --git a/src/shared/proparser/prowriter.h b/src/shared/proparser/prowriter.h index 26bf4449e3eb71187bcb8aa5d764de37b535a660..f4822657b764050291cedfc04bbec8ce4d6e491b 100644 --- a/src/shared/proparser/prowriter.h +++ b/src/shared/proparser/prowriter.h @@ -47,7 +47,7 @@ class ProWriter public: static void addFiles(ProFile *profile, QStringList *lines, const QDir &proFileDir, const QStringList &filePaths, - const QStringList &vars); + const QString &var); static QStringList removeFiles(ProFile *profile, QStringList *lines, const QDir &proFileDir, const QStringList &filePaths, const QStringList &vars);