From 73b66f5d080052ebcd705b3ab940456c43ddd32c Mon Sep 17 00:00:00 2001 From: Kai Koehne <kai.koehne@nokia.com> Date: Fri, 10 Jun 2011 16:34:06 +0200 Subject: [PATCH] Analyzer: Use Utils::OutputFormat everywhere Replace hard distinction between 'out', 'err' with flexible OutputFormat. Also make sure that QmlProfiler shows application output. Change-Id: I130c71884321e4c59c9a75f0836c37a7f0e805c4 Reviewed-on: http://codereview.qt.nokia.com/458 Reviewed-by: Christiaan Janssen <christiaan.janssen@nokia.com> --- src/libs/valgrind/valgrindprocess.cpp | 20 +++++++--- src/libs/valgrind/valgrindprocess.h | 6 ++- src/libs/valgrind/valgrindrunner.cpp | 6 +-- src/libs/valgrind/valgrindrunner.h | 4 +- .../analyzerbase/analyzerruncontrol.cpp | 15 ++----- src/plugins/analyzerbase/analyzerruncontrol.h | 3 +- src/plugins/analyzerbase/ianalyzerengine.h | 5 +-- src/plugins/qmlprofiler/qmlprofilerengine.cpp | 4 +- src/plugins/valgrind/callgrindengine.cpp | 2 +- src/plugins/valgrind/memcheckengine.cpp | 3 +- src/plugins/valgrind/valgrindengine.cpp | 39 +++++++------------ src/plugins/valgrind/valgrindengine.h | 3 +- 12 files changed, 50 insertions(+), 60 deletions(-) diff --git a/src/libs/valgrind/valgrindprocess.cpp b/src/libs/valgrind/valgrindprocess.cpp index 16fc5999dfc..c57877cd3dd 100644 --- a/src/libs/valgrind/valgrindprocess.cpp +++ b/src/libs/valgrind/valgrindprocess.cpp @@ -128,14 +128,14 @@ void LocalValgrindProcess::readyReadStandardError() { const QByteArray b = m_process.readAllStandardError(); if (!b.isEmpty()) - emit standardErrorReceived(b); + emit processOutput(b, Utils::StdErrFormat); } void LocalValgrindProcess::readyReadStandardOutput() { const QByteArray b = m_process.readAllStandardOutput(); if (!b.isEmpty()) - emit standardOutputReceived(b); + emit processOutput(b, Utils::StdOutFormat); } //////////////////////// @@ -202,9 +202,9 @@ void RemoteValgrindProcess::connected() m_process = m_connection->createRemoteProcess(cmd.toUtf8()); connect(m_process.data(), SIGNAL(errorOutputAvailable(QByteArray)), - this, SIGNAL(standardErrorReceived(QByteArray))); + this, SLOT(standardError(QByteArray))); connect(m_process.data(), SIGNAL(outputAvailable(QByteArray)), - this, SIGNAL(standardOutputReceived(QByteArray))); + this, SLOT(standardOutput(QByteArray))); connect(m_process.data(), SIGNAL(closed(int)), this, SLOT(closed(int))); connect(m_process.data(), SIGNAL(started()), @@ -242,7 +242,7 @@ void RemoteValgrindProcess::processStarted() m_findPID = m_connection->createRemoteProcess(cmd.toUtf8()); connect(m_findPID.data(), SIGNAL(errorOutputAvailable(QByteArray)), - this, SIGNAL(standardErrorReceived(QByteArray))); + this, SLOT(standardOutput(QByteArray))); connect(m_findPID.data(), SIGNAL(outputAvailable(QByteArray)), this, SLOT(findPIDOutputReceived(QByteArray))); m_findPID->start(); @@ -263,6 +263,16 @@ void RemoteValgrindProcess::findPIDOutputReceived(const QByteArray &output) } } +void RemoteValgrindProcess::standardOutput(const QByteArray &output) +{ + emit processOutput(output, Utils::StdOutFormat); +} + +void RemoteValgrindProcess::standardError(const QByteArray &output) +{ + emit processOutput(output, Utils::StdErrFormat); +} + void RemoteValgrindProcess::error(Utils::SshError error) { switch (error) { diff --git a/src/libs/valgrind/valgrindprocess.h b/src/libs/valgrind/valgrindprocess.h index 0e4552d35cf..903f931ecd7 100644 --- a/src/libs/valgrind/valgrindprocess.h +++ b/src/libs/valgrind/valgrindprocess.h @@ -40,6 +40,7 @@ #include <utils/qtcprocess.h> #include <utils/ssh/sshremoteprocess.h> #include <utils/ssh/sshconnection.h> +#include <utils/outputformat.h> namespace Valgrind { @@ -73,8 +74,7 @@ signals: void started(); void finished(int, QProcess::ExitStatus); void error(QProcess::ProcessError); - void standardOutputReceived(const QByteArray &); - void standardErrorReceived(const QByteArray &); + void processOutput(const QByteArray &, Utils::OutputFormat format); }; /** @@ -149,6 +149,8 @@ private slots: void error(Utils::SshError error); void processStarted(); void findPIDOutputReceived(const QByteArray &output); + void standardOutput(const QByteArray &output); + void standardError(const QByteArray &output); private: Utils::SshConnectionParameters m_params; diff --git a/src/libs/valgrind/valgrindrunner.cpp b/src/libs/valgrind/valgrindrunner.cpp index 18263846e38..8fdb69542e3 100644 --- a/src/libs/valgrind/valgrindrunner.cpp +++ b/src/libs/valgrind/valgrindrunner.cpp @@ -97,10 +97,8 @@ void ValgrindRunner::Private::run(ValgrindProcess *_process) valgrindArgs << QLatin1String("--dsymutil=yes"); #endif - QObject::connect(process, SIGNAL(standardOutputReceived(QByteArray)), - q, SIGNAL(standardOutputReceived(QByteArray))); - QObject::connect(process, SIGNAL(standardErrorReceived(QByteArray)), - q, SIGNAL(standardErrorReceived(QByteArray))); + QObject::connect(process, SIGNAL(processOutput(QByteArray,Utils::OutputFormat)), + q, SIGNAL(processOutputReceived(QByteArray,Utils::OutputFormat))); QObject::connect(process, SIGNAL(started()), q, SLOT(processStarted())); QObject::connect(process, SIGNAL(finished(int, QProcess::ExitStatus)), diff --git a/src/libs/valgrind/valgrindrunner.h b/src/libs/valgrind/valgrindrunner.h index 9a588bc482c..09563533ca7 100644 --- a/src/libs/valgrind/valgrindrunner.h +++ b/src/libs/valgrind/valgrindrunner.h @@ -36,6 +36,7 @@ #define VALGRIND_RUNNER_H #include <QtCore/QProcess> +#include <utils/outputformat.h> #include "valgrind_global.h" @@ -85,8 +86,7 @@ protected: virtual QString tool() const = 0; signals: - void standardOutputReceived(const QByteArray &); - void standardErrorReceived(const QByteArray &); + void processOutputReceived(const QByteArray &, Utils::OutputFormat); void processErrorReceived(const QString &, QProcess::ProcessError); void started(); void finished(); diff --git a/src/plugins/analyzerbase/analyzerruncontrol.cpp b/src/plugins/analyzerbase/analyzerruncontrol.cpp index 22198afe9f2..e5ef66d76d7 100644 --- a/src/plugins/analyzerbase/analyzerruncontrol.cpp +++ b/src/plugins/analyzerbase/analyzerruncontrol.cpp @@ -76,10 +76,8 @@ AnalyzerRunControl::AnalyzerRunControl(const AnalyzerStartParameters &sp, IAnalyzerTool *tool = AnalyzerManager::instance()->currentTool(); d->m_engine = tool->createEngine(sp, runConfiguration); - connect(d->m_engine, SIGNAL(standardErrorReceived(QString)), - SLOT(receiveStandardError(QString))); - connect(d->m_engine, SIGNAL(standardOutputReceived(QString)), - SLOT(receiveStandardOutput(QString))); + connect(d->m_engine, SIGNAL(outputReceived(QString,Utils::OutputFormat)), + SLOT(receiveOutput(QString,Utils::OutputFormat))); connect(d->m_engine, SIGNAL(taskToBeAdded(ProjectExplorer::Task::TaskType,QString,QString,int)), SLOT(addTask(ProjectExplorer::Task::TaskType,QString,QString,int))); connect(d->m_engine, SIGNAL(finished()), @@ -138,14 +136,9 @@ QIcon AnalyzerRunControl::icon() const return QIcon(QLatin1String(":/images/analyzer_start_small.png")); } -void AnalyzerRunControl::receiveStandardOutput(const QString &text) +void AnalyzerRunControl::receiveOutput(const QString &text, Utils::OutputFormat format) { - appendMessage(text, Utils::StdOutFormat); -} - -void AnalyzerRunControl::receiveStandardError(const QString &text) -{ - appendMessage(text, Utils::StdErrFormat); + appendMessage(text, format); } void AnalyzerRunControl::addTask(ProjectExplorer::Task::TaskType type, const QString &description, diff --git a/src/plugins/analyzerbase/analyzerruncontrol.h b/src/plugins/analyzerbase/analyzerruncontrol.h index c3d6f9f21cc..59a2a2e7209 100644 --- a/src/plugins/analyzerbase/analyzerruncontrol.h +++ b/src/plugins/analyzerbase/analyzerruncontrol.h @@ -64,8 +64,7 @@ public: QIcon icon() const; private slots: - void receiveStandardOutput(const QString &); - void receiveStandardError(const QString &); + void receiveOutput(const QString &, Utils::OutputFormat format); void addTask(ProjectExplorer::Task::TaskType type, const QString &description, const QString &file, int line); diff --git a/src/plugins/analyzerbase/ianalyzerengine.h b/src/plugins/analyzerbase/ianalyzerengine.h index 6e13564c759..31bf2e19a1b 100644 --- a/src/plugins/analyzerbase/ianalyzerengine.h +++ b/src/plugins/analyzerbase/ianalyzerengine.h @@ -40,6 +40,7 @@ #include <projectexplorer/task.h> #include <utils/ssh/sshconnection.h> +#include <utils/outputformat.h> #include <QtCore/QObject> #include <QtCore/QString> @@ -76,9 +77,7 @@ public: signals: /// should be emitted when the debuggee outputted something - void standardOutputReceived(const QString &); - /// should be emitted when the debuggee outputted an error - void standardErrorReceived(const QString &); + void outputReceived(const QString &, Utils::OutputFormat format); /// can be emitted when you want to show a task, e.g. to display an error void taskToBeAdded(ProjectExplorer::Task::TaskType type, const QString &description, const QString &file, int line); diff --git a/src/plugins/qmlprofiler/qmlprofilerengine.cpp b/src/plugins/qmlprofiler/qmlprofilerengine.cpp index b0a893dd11d..f70f27753eb 100644 --- a/src/plugins/qmlprofiler/qmlprofilerengine.cpp +++ b/src/plugins/qmlprofiler/qmlprofilerengine.cpp @@ -245,9 +245,9 @@ void QmlProfilerEngine::filterApplicationMessage(const QString &msg) } -void QmlProfilerEngine::logApplicationMessage(const QString &msg, Utils::OutputFormat /*format*/) +void QmlProfilerEngine::logApplicationMessage(const QString &msg, Utils::OutputFormat format) { - qDebug() << "app: " << msg; + emit outputReceived(msg, format); filterApplicationMessage(msg); } diff --git a/src/plugins/valgrind/callgrindengine.cpp b/src/plugins/valgrind/callgrindengine.cpp index ab6d266c618..9fc18f85f0b 100644 --- a/src/plugins/valgrind/callgrindengine.cpp +++ b/src/plugins/valgrind/callgrindengine.cpp @@ -101,7 +101,7 @@ Valgrind::ValgrindRunner * CallgrindEngine::runner() void CallgrindEngine::start() { - emit standardOutputReceived(tr("Profiling %1").arg(executable())); + emit outputReceived(tr("Profiling %1\n").arg(executable()), Utils::NormalMessageFormat); ValgrindEngine::start(); } diff --git a/src/plugins/valgrind/memcheckengine.cpp b/src/plugins/valgrind/memcheckengine.cpp index 96d6edd32ca..10e82fc1dbc 100644 --- a/src/plugins/valgrind/memcheckengine.cpp +++ b/src/plugins/valgrind/memcheckengine.cpp @@ -79,7 +79,8 @@ void MemcheckEngine::start() { m_runner.setParser(&m_parser); - emit standardOutputReceived(tr("Analyzing memory of %1").arg(executable())); + emit outputReceived(tr("Analyzing memory of %1\n").arg(executable()), + Utils::NormalMessageFormat); ValgrindEngine::start(); } diff --git a/src/plugins/valgrind/valgrindengine.cpp b/src/plugins/valgrind/valgrindengine.cpp index 71c9a9743a0..38cee266933 100644 --- a/src/plugins/valgrind/valgrindengine.cpp +++ b/src/plugins/valgrind/valgrindengine.cpp @@ -88,9 +88,9 @@ void ValgrindEngine::start() m_progressWatcher->setFuture(m_progress->future()); #if VALGRIND_DEBUG_OUTPUT - emit standardOutputReceived(tr("Valgrind options: %1").arg(toolArguments().join(" "))); - emit standardOutputReceived(tr("Working directory: %1").arg(m_workingDirectory)); - emit standardOutputReceived(tr("Command-line arguments: %1").arg(m_commandLineArguments)); + emit outputReceived(tr("Valgrind options: %1").arg(toolArguments().join(" ")), Utils::DebugFormat); + emit outputReceived(tr("Working directory: %1").arg(m_workingDirectory), Utils::DebugFormat); + emit outputReceived(tr("Command-line arguments: %1").arg(m_commandLineArguments), Utils::DebugFormat); #endif const AnalyzerStartParameters &sp = startParameters(); @@ -104,10 +104,8 @@ void ValgrindEngine::start() runner()->setDebuggeeArguments(sp.debuggeeArgs); runner()->setEnvironment(sp.environment); - connect(runner(), SIGNAL(standardOutputReceived(QByteArray)), - SLOT(receiveStandardOutput(QByteArray))); - connect(runner(), SIGNAL(standardErrorReceived(QByteArray)), - SLOT(receiveStandardError(QByteArray))); + connect(runner(), SIGNAL(processOutputReceived(QByteArray,Utils::OutputFormat)), + SLOT(receiveProcessOutput(QByteArray,Utils::OutputFormat))); connect(runner(), SIGNAL(processErrorReceived(QString, QProcess::ProcessError)), SLOT(receiveProcessError(QString, QProcess::ProcessError))); connect(runner(), SIGNAL(finished()), @@ -142,29 +140,20 @@ void ValgrindEngine::handleProgressFinished() void ValgrindEngine::runnerFinished() { - emit standardOutputReceived(tr("** Analyzing finished **")); + emit outputReceived(tr("** Analyzing finished **\n"), Utils::NormalMessageFormat); emit finished(); m_progress->reportFinished(); - disconnect(runner(), SIGNAL(standardOutputReceived(QByteArray)), - this, SLOT(receiveStandardOutput(QByteArray))); - disconnect(runner(), SIGNAL(standardErrorReceived(QByteArray)), - this, SLOT(receiveStandardError(QByteArray))); - disconnect(runner(), SIGNAL(processErrorReceived(QString, QProcess::ProcessError)), - this, SLOT(receiveProcessError(QString, QProcess::ProcessError))); + disconnect(runner(), SIGNAL(processOutputReceived(QByteArray,Utils::OutputFormat)), + this, SLOT(receiveProcessOutput(QByteArray,Utils::OutputFormat))); disconnect(runner(), SIGNAL(finished()), this, SLOT(runnerFinished())); } -void ValgrindEngine::receiveStandardOutput(const QByteArray &b) +void ValgrindEngine::receiveProcessOutput(const QByteArray &b, Utils::OutputFormat format) { - emit standardOutputReceived(QString::fromLocal8Bit(b)); -} - -void ValgrindEngine::receiveStandardError(const QByteArray &b) -{ - emit standardErrorReceived(QString::fromLocal8Bit(b)); + emit outputReceived(QString::fromLocal8Bit(b), format); } void ValgrindEngine::receiveProcessError(const QString &error, QProcess::ProcessError e) @@ -172,14 +161,14 @@ void ValgrindEngine::receiveProcessError(const QString &error, QProcess::Process if (e == QProcess::FailedToStart) { const QString &valgrind = m_settings->subConfig<ValgrindSettings>()->valgrindExecutable(); if (!valgrind.isEmpty()) { - emit standardErrorReceived(tr("** Error: \"%1\" could not be started: %2 **").arg(valgrind).arg(error)); + emit outputReceived(tr("** Error: \"%1\" could not be started: %2 **\n").arg(valgrind).arg(error), Utils::ErrorMessageFormat); } else { - emit standardErrorReceived(tr("** Error: no valgrind executable set **")); + emit outputReceived(tr("** Error: no valgrind executable set **\n"), Utils::ErrorMessageFormat); } } else if (m_isStopping && e == QProcess::Crashed) { // process gets killed on stop - emit standardErrorReceived(tr("** Process Terminated **")); + emit outputReceived(tr("** Process Terminated **\n"), Utils::ErrorMessageFormat); } else { - emit standardErrorReceived(QString("** %1 **").arg(error)); + emit outputReceived(QString("** %1 **\n").arg(error), Utils::ErrorMessageFormat); } if (m_isStopping) diff --git a/src/plugins/valgrind/valgrindengine.h b/src/plugins/valgrind/valgrindengine.h index a34273d3f07..2a790a59ed7 100644 --- a/src/plugins/valgrind/valgrindengine.h +++ b/src/plugins/valgrind/valgrindengine.h @@ -83,8 +83,7 @@ private slots: void handleProgressFinished(); void runnerFinished(); - void receiveStandardOutput(const QByteArray &); - void receiveStandardError(const QByteArray &); + void receiveProcessOutput(const QByteArray &, Utils::OutputFormat); void receiveProcessError(const QString &, QProcess::ProcessError); private: -- GitLab