diff options
author | Joerg Bornemann <joerg.bornemann@qt.io> | 2017-07-24 11:10:28 +0200 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@qt.io> | 2017-08-03 09:52:57 +0000 |
commit | 3b95913c674edcdf94eea673aa81d4f670231555 (patch) | |
tree | 4c8136e08faeedcd351e75301f6ebe0276988df0 /src/lib/corelib/language/projectresolver.cpp | |
parent | de14d18638b6aaf7c52847fec2e534f50c14b95d (diff) |
Add FileTagger.priority
Enable users to override FileTagger items by creating a conflicting
FileTagger that has a higher numerical priority value.
[ChangeLog] Introduced the property FileTagger.priority, and enable
users to override FileTagger items.
Change-Id: Idc6f5d003b7ad468f03a2eae5d19404c1f3eb06b
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/lib/corelib/language/projectresolver.cpp')
-rw-r--r-- | src/lib/corelib/language/projectresolver.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/lib/corelib/language/projectresolver.cpp b/src/lib/corelib/language/projectresolver.cpp index 348b0af42..d1d70e445 100644 --- a/src/lib/corelib/language/projectresolver.cpp +++ b/src/lib/corelib/language/projectresolver.cpp @@ -943,7 +943,9 @@ void ProjectResolver::resolveFileTagger(Item *item, ProjectContext *projectConte if (pattern.isEmpty()) throw ErrorInfo(Tr::tr("A FileTagger pattern must not be empty."), item->location()); } - fileTaggers += FileTagger::create(patterns, fileTags); + + const int priority = m_evaluator->intValue(item, QLatin1String("priority")); + fileTaggers += FileTagger::create(patterns, fileTags, priority); } void ProjectResolver::resolveScanner(Item *item, ProjectResolver::ProjectContext *projectContext) @@ -1185,6 +1187,10 @@ void ProjectResolver::postProcess(const ResolvedProductPtr &product, ProjectContext *projectContext) const { product->fileTaggers += projectContext->fileTaggers; + std::sort(std::begin(product->fileTaggers), std::end(product->fileTaggers), + [] (const FileTaggerConstPtr &a, const FileTaggerConstPtr &b) { + return a->priority() > b->priority(); + }); for (const RulePtr &rule : qAsConst(projectContext->rules)) { RulePtr clonedRule = rule->clone(); clonedRule->product = product.get(); |