aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/language
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@digia.com>2014-06-24 11:19:08 +0200
committerChristian Kandeler <christian.kandeler@digia.com>2014-07-02 11:18:42 +0200
commit1cf03765801e3f391323bba3e040a8786017354a (patch)
tree54b2d21267d0de1e800c087e4f8e33176f86c59c /src/lib/corelib/language
parente655304fed77ad45cb083a4f62ba308d734025a3 (diff)
Correctly handle overriding of file tags via an empty list.
Task-number: QBS-633 Change-Id: I4bf750ff94d6fae38fb3fdb49de265caddcd789e Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'src/lib/corelib/language')
-rw-r--r--src/lib/corelib/language/evaluator.cpp4
-rw-r--r--src/lib/corelib/language/evaluator.h2
-rw-r--r--src/lib/corelib/language/projectresolver.cpp5
3 files changed, 7 insertions, 4 deletions
diff --git a/src/lib/corelib/language/evaluator.cpp b/src/lib/corelib/language/evaluator.cpp
index 46f0476e6..692c1254e 100644
--- a/src/lib/corelib/language/evaluator.cpp
+++ b/src/lib/corelib/language/evaluator.cpp
@@ -100,9 +100,9 @@ bool Evaluator::boolValue(const Item *item, const QString &name, bool defaultVal
return v.toBool();
}
-FileTags Evaluator::fileTagsValue(const Item *item, const QString &name)
+FileTags Evaluator::fileTagsValue(const Item *item, const QString &name, bool *propertySet)
{
- return FileTags::fromStringList(stringListValue(item, name));
+ return FileTags::fromStringList(stringListValue(item, name, propertySet));
}
QString Evaluator::stringValue(const Item *item, const QString &name,
diff --git a/src/lib/corelib/language/evaluator.h b/src/lib/corelib/language/evaluator.h
index a17605af1..485ac5557 100644
--- a/src/lib/corelib/language/evaluator.h
+++ b/src/lib/corelib/language/evaluator.h
@@ -57,7 +57,7 @@ public:
bool boolValue(const Item *item, const QString &name, bool defaultValue = false,
bool *propertyWasSet = 0);
- FileTags fileTagsValue(const Item *item, const QString &name);
+ FileTags fileTagsValue(const Item *item, const QString &name, bool *propertySet = 0);
QString stringValue(const Item *item, const QString &name,
const QString &defaultValue = QString(), bool *propertyWasSet = 0);
QStringList stringListValue(const Item *item, const QString &name, bool *propertyWasSet = 0);
diff --git a/src/lib/corelib/language/projectresolver.cpp b/src/lib/corelib/language/projectresolver.cpp
index a7bd12a31..bf01fd0d8 100644
--- a/src/lib/corelib/language/projectresolver.cpp
+++ b/src/lib/corelib/language/projectresolver.cpp
@@ -508,8 +508,11 @@ void ProjectResolver::resolveGroup(Item *item, ProjectContext *projectContext)
}
group->location = item->location();
group->enabled = isEnabled;
- group->fileTags = m_evaluator->fileTagsValue(item, QLatin1String("fileTags"));
+ bool fileTagsSet;
+ group->fileTags = m_evaluator->fileTagsValue(item, QLatin1String("fileTags"), &fileTagsSet);
group->overrideTags = m_evaluator->boolValue(item, QLatin1String("overrideTags"));
+ if (group->overrideTags && group->fileTags.isEmpty() && fileTagsSet)
+ group->fileTags.insert(unknownFileTag());
if (!patterns.isEmpty()) {
SourceWildCards::Ptr wildcards = SourceWildCards::create();