summaryrefslogtreecommitdiff
path: root/src/plugins/cppcheck/cppcheckrunner.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/cppcheck/cppcheckrunner.cpp')
-rw-r--r--src/plugins/cppcheck/cppcheckrunner.cpp43
1 files changed, 7 insertions, 36 deletions
diff --git a/src/plugins/cppcheck/cppcheckrunner.cpp b/src/plugins/cppcheck/cppcheckrunner.cpp
index 458cccd3b8..7b8205aed1 100644
--- a/src/plugins/cppcheck/cppcheckrunner.cpp
+++ b/src/plugins/cppcheck/cppcheckrunner.cpp
@@ -49,10 +49,13 @@ CppcheckRunner::CppcheckRunner(CppcheckTool &tool) :
m_maxArgumentsLength = std::max(argMax.toInt(), m_maxArgumentsLength);
}
- connect(m_process, &QtcProcess::readyReadStandardOutput,
- this, &CppcheckRunner::readOutput);
- connect(m_process, &QtcProcess::readyReadStandardOutput,
- this, &CppcheckRunner::readError);
+ m_process->setStdOutLineCallback([this](const QString &line) {
+ m_tool.parseOutputLine(line);
+ });
+ m_process->setStdErrLineCallback([this](const QString &line) {
+ m_tool.parseErrorLine(line);
+ });
+
connect(m_process, &QtcProcess::started,
this, &CppcheckRunner::handleStarted);
connect(m_process, &QtcProcess::finished,
@@ -158,36 +161,6 @@ void CppcheckRunner::checkQueued()
m_process->start();
}
-void CppcheckRunner::readOutput()
-{
- if (!m_isRunning) // workaround for QTBUG-30929
- handleStarted();
-
- const QByteArray output = m_process->readAllStandardOutput();
- int start = 0;
- int end;
- do {
- end = output.indexOf('\n', start);
- m_tool.parseOutputLine(QString::fromUtf8(output.mid(start, end - start)));
- start = end + 1;
- } while (end >= 0);
-}
-
-void CppcheckRunner::readError()
-{
- if (!m_isRunning) // workaround for QTBUG-30929
- handleStarted();
-
- const QByteArray output = m_process->readAllStandardError();
- int start = 0;
- int end;
- do {
- end = output.indexOf('\n', start);
- m_tool.parseErrorLine(QString::fromUtf8(output.mid(start, end - start)));
- start = end + 1;
- } while (end >= 0);
-}
-
void CppcheckRunner::handleStarted()
{
if (m_isRunning)
@@ -200,8 +173,6 @@ void CppcheckRunner::handleStarted()
void CppcheckRunner::handleFinished(int)
{
if (m_process->error() != QProcess::FailedToStart) {
- readOutput();
- readError();
m_tool.finishParsing();
} else {
const QString message = tr("Cppcheck failed to start: \"%1\".").arg(currentCommand());