summaryrefslogtreecommitdiff
path: root/src/plugins/qtsupport
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@digia.com>2013-12-11 17:50:17 +0100
committerTobias Hunger <tobias.hunger@digia.com>2013-12-11 17:51:25 +0100
commit1e71d63caddfacdd12d7e847f3daa167b856ec9f (patch)
tree17638381a37f26832367ca933ffddcdd9e671b94 /src/plugins/qtsupport
parent96a0e5eea3ab0651a939e150eaeda403ad6a17b1 (diff)
downloadqt-creator-1e71d63caddfacdd12d7e847f3daa167b856ec9f.tar.gz
Qt: Recognize issues with translations as build issues
Change-Id: I6ef0750d78ab2c935a34a047ffd49bc72c746dc2 Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Diffstat (limited to 'src/plugins/qtsupport')
-rw-r--r--src/plugins/qtsupport/qtparser.cpp24
-rw-r--r--src/plugins/qtsupport/qtparser.h1
2 files changed, 24 insertions, 1 deletions
diff --git a/src/plugins/qtsupport/qtparser.cpp b/src/plugins/qtsupport/qtparser.cpp
index 42bab6995f..a4ad361e4d 100644
--- a/src/plugins/qtsupport/qtparser.cpp
+++ b/src/plugins/qtsupport/qtparser.cpp
@@ -39,10 +39,12 @@ using ProjectExplorer::Task;
#define FILE_PATTERN "^(([A-Za-z]:)?[^:]+\\.[^:]+)"
QtParser::QtParser() :
- m_mocRegExp(QLatin1String(FILE_PATTERN"[:\\(](\\d+)\\)?:\\s([Ww]arning|[Ee]rror):\\s(.+)$"))
+ m_mocRegExp(QLatin1String(FILE_PATTERN"[:\\(](\\d+)\\)?:\\s([Ww]arning|[Ee]rror):\\s(.+)$")),
+ m_translationRegExp(QLatin1String("^([Ww]arning|[Ee]rror):\\s+(.*) in '(.*)'$"))
{
setObjectName(QLatin1String("QtParser"));
m_mocRegExp.setMinimal(true);
+ m_translationRegExp.setMinimal(true);
}
void QtParser::stdError(const QString &line)
@@ -63,6 +65,17 @@ void QtParser::stdError(const QString &line)
emit addTask(task);
return;
}
+ if (m_translationRegExp.indexIn(lne) > -1) {
+ Task::TaskType type = Task::Warning;
+ if (m_translationRegExp.cap(1) == QLatin1String("Error"))
+ type = Task::Error;
+ Task task(type, m_translationRegExp.cap(2),
+ Utils::FileName::fromUserInput(m_translationRegExp.cap(3)) /* filename */,
+ -1,
+ ProjectExplorer::Constants::TASK_CATEGORY_COMPILE);
+ emit addTask(task);
+ return;
+ }
IOutputParser::stdError(line);
}
@@ -150,6 +163,15 @@ void QtSupportPlugin::testQtOutputParser_data()
Utils::FileName::fromUserInput(QLatin1String("E:/sandbox/creator/loaden/src/libs/utils/iwelcomepage.h")), 54,
ProjectExplorer::Constants::TASK_CATEGORY_COMPILE))
<< QString();
+ QTest::newRow("translation")
+ << QString::fromLatin1("Warning: dropping duplicate messages in '/some/place/qtcreator_fr.qm'")
+ << OutputParserTester::STDERR
+ << QString() << QString()
+ << (QList<ProjectExplorer::Task>() << Task(Task::Warning,
+ QLatin1String("dropping duplicate messages"),
+ Utils::FileName::fromUserInput(QLatin1String("/some/place/qtcreator_fr.qm")), -1,
+ ProjectExplorer::Constants::TASK_CATEGORY_COMPILE))
+ << QString();
}
void QtSupportPlugin::testQtOutputParser()
diff --git a/src/plugins/qtsupport/qtparser.h b/src/plugins/qtsupport/qtparser.h
index a91b67e17b..a0c3738aa5 100644
--- a/src/plugins/qtsupport/qtparser.h
+++ b/src/plugins/qtsupport/qtparser.h
@@ -47,6 +47,7 @@ public:
private:
QRegExp m_mocRegExp;
+ QRegExp m_translationRegExp;
};
} // namespace ProjectExplorer