diff --git a/src/plugins/analyzerbase/analyzerutils.cpp b/src/plugins/analyzerbase/analyzerutils.cpp index 1216f9cfb53..3d4e71747d4 100644 --- a/src/plugins/analyzerbase/analyzerutils.cpp +++ b/src/plugins/analyzerbase/analyzerutils.cpp @@ -33,6 +33,7 @@ #include "analyzerconstants.h" #include +#include #include #include @@ -46,6 +47,7 @@ using namespace Analyzer; using namespace Core; +using namespace ProjectExplorer; static void moveCursorToEndOfName(QTextCursor *tc) { @@ -93,3 +95,10 @@ CPlusPlus::Symbol *AnalyzerUtils::findSymbolUnderCursor() const CPlusPlus::LookupItem &lookupItem = lookupItems.first(); // ### TODO: select best candidate. return lookupItem.declaration(); } + +void AnalyzerUtils::logToIssuesPane(Task::TaskType type, const QString &message) +{ + TaskHub::addTask(type, message, Analyzer::Constants::ANALYZERTASK_ID); + if (type == Task::Error) + TaskHub::requestPopup(); +} diff --git a/src/plugins/analyzerbase/analyzerutils.h b/src/plugins/analyzerbase/analyzerutils.h index 210da4860d8..a7d544e8b5d 100644 --- a/src/plugins/analyzerbase/analyzerutils.h +++ b/src/plugins/analyzerbase/analyzerutils.h @@ -33,15 +33,15 @@ #include "analyzerbase_global.h" -QT_BEGIN_NAMESPACE -class QWidget; -QT_END_NAMESPACE +#include namespace CPlusPlus { class Symbol; } namespace AnalyzerUtils { ANALYZER_EXPORT CPlusPlus::Symbol *findSymbolUnderCursor(); + ANALYZER_EXPORT void logToIssuesPane(ProjectExplorer::Task::TaskType type, + const QString &message); } #endif // ANALYZERUTILS_H diff --git a/src/plugins/valgrind/callgrindtool.cpp b/src/plugins/valgrind/callgrindtool.cpp index c658815aaad..dcd2a1396b2 100644 --- a/src/plugins/valgrind/callgrindtool.cpp +++ b/src/plugins/valgrind/callgrindtool.cpp @@ -88,7 +88,6 @@ #include #include #include -#include #include #include #include @@ -933,8 +932,8 @@ void CallgrindToolPrivate::loadExternalLogFile() QFile logFile(filePath); if (!logFile.open(QIODevice::ReadOnly | QIODevice::Text)) { - QMessageBox::critical(AnalyzerManager::mainWindow(), tr("Internal Error"), - tr("Failed to open file for reading: %1").arg(filePath)); + AnalyzerUtils::logToIssuesPane(Task::Error, + tr("Callgrind: Failed to open file for reading: %1").arg(filePath)); return; } diff --git a/src/plugins/valgrind/memchecktool.cpp b/src/plugins/valgrind/memchecktool.cpp index 4365c077dfc..ebee6c1c3b1 100644 --- a/src/plugins/valgrind/memchecktool.cpp +++ b/src/plugins/valgrind/memchecktool.cpp @@ -36,6 +36,7 @@ #include "valgrindplugin.h" #include +#include #include #include @@ -83,7 +84,6 @@ #include #include #include -#include #include #include #include @@ -493,8 +493,8 @@ void MemcheckTool::loadExternalXmlLogFile() QFile *logFile = new QFile(filePath); if (!logFile->open(QIODevice::ReadOnly | QIODevice::Text)) { delete logFile; - QMessageBox::critical(m_errorView, tr("Internal Error"), - tr("Failed to open file for reading: %1").arg(filePath)); + AnalyzerUtils::logToIssuesPane(Task::Error, + tr("Memcheck: Failed to open file for reading: %1").arg(filePath)); return; } @@ -524,8 +524,8 @@ void MemcheckTool::parserError(const Error &error) void MemcheckTool::internalParserError(const QString &errorString) { - QMessageBox::critical(m_errorView, tr("Internal Error"), - tr("Error occurred parsing Valgrind output: %1").arg(errorString)); + AnalyzerUtils::logToIssuesPane(Task::Error, + tr("Memcheck: Error occurred parsing Valgrind output: %1").arg(errorString)); } void MemcheckTool::clearErrorView()