diff --git a/src/plugins/projectexplorer/abstractmakestep.cpp b/src/plugins/projectexplorer/abstractmakestep.cpp index b08f713c018906a626ac47506a5850a81c5778bf..85f2a45d224139553bc94934f3140bc25a1ec383 100644 --- a/src/plugins/projectexplorer/abstractmakestep.cpp +++ b/src/plugins/projectexplorer/abstractmakestep.cpp @@ -97,24 +97,25 @@ void AbstractMakeStep::setBuildParser(const QString &parser) if (m_buildParser) { m_buildParserName = parser; - connect(m_buildParser, SIGNAL(addToOutputWindow(const QString &)), - this, SIGNAL(addToOutputWindow(const QString &)), + connect(m_buildParser, SIGNAL(addToOutputWindow(QString)), + this, SIGNAL(addToOutputWindow(QString)), Qt::DirectConnection); - connect(m_buildParser, SIGNAL(addToTaskWindow(const QString &, int, int, const QString &)), - this, SLOT(slotAddToTaskWindow(const QString &, int, int, const QString &)), + connect(m_buildParser, SIGNAL(addToTaskWindow(ProjectExplorer::TaskWindow::Task)), + this, SLOT(slotAddToTaskWindow(ProjectExplorer::TaskWindow::Task)), Qt::DirectConnection); - connect(m_buildParser, SIGNAL(enterDirectory(const QString &)), - this, SLOT(addDirectory(const QString &)), + connect(m_buildParser, SIGNAL(enterDirectory(QString)), + this, SLOT(addDirectory(QString)), Qt::DirectConnection); - connect(m_buildParser, SIGNAL(leaveDirectory(const QString &)), - this, SLOT(removeDirectory(const QString &)), + connect(m_buildParser, SIGNAL(leaveDirectory(QString)), + this, SLOT(removeDirectory(QString)), Qt::DirectConnection); } } -void AbstractMakeStep::slotAddToTaskWindow(const QString & fn, int type, int linenumber, const QString & description) +void AbstractMakeStep::slotAddToTaskWindow(const TaskWindow::Task &task) { - QString filePath = fn; + TaskWindow::Task editable(task); + QString filePath = QDir::cleanPath(task.file.trimmed()); if (!filePath.isEmpty() && !QDir::isAbsolutePath(filePath)) { // We have no save way to decide which file in which subfolder // is meant. Therefore we apply following heuristics: @@ -123,8 +124,6 @@ void AbstractMakeStep::slotAddToTaskWindow(const QString & fn, int type, int lin // 3. Check if file is unique in whole project // 4. Otherwise give up - filePath = filePath.trimmed(); - QList<QFileInfo> possibleFiles; foreach (const QString &dir, m_openDirectories) { QFileInfo candidate(dir + QLatin1Char('/') + filePath); @@ -151,7 +150,7 @@ void AbstractMakeStep::slotAddToTaskWindow(const QString & fn, int type, int lin } } if (possibleFiles.count() == 1) { - filePath = possibleFiles.first().filePath(); + editable.file = possibleFiles.first().filePath(); } else { // More then one filename, so do a better compare // Chop of any "../" @@ -166,12 +165,12 @@ void AbstractMakeStep::slotAddToTaskWindow(const QString & fn, int type, int lin } } if (count == 1) - filePath = possibleFilePath; + editable.file = possibleFilePath; else qWarning() << "Could not find absolute location of file " << filePath; } } - emit addToTaskWindow(filePath, type, linenumber, description); + emit addToTaskWindow(editable); } void AbstractMakeStep::addDirectory(const QString &dir) diff --git a/src/plugins/projectexplorer/abstractmakestep.h b/src/plugins/projectexplorer/abstractmakestep.h index 87c2ea7da9beba26ece97e59ef431aa87b25d257..b2195b79d0995c0b7fd2aeaf869efca55a02a741 100644 --- a/src/plugins/projectexplorer/abstractmakestep.h +++ b/src/plugins/projectexplorer/abstractmakestep.h @@ -32,6 +32,7 @@ #include "projectexplorer_export.h" #include "abstractprocessstep.h" +#include "taskwindow.h" namespace ProjectExplorer { class BuildStep; @@ -59,7 +60,7 @@ protected: void setBuildParser(const QString &parser); QString buildParser() const; private slots: - void slotAddToTaskWindow(const QString & fn, int type, int linenumber, const QString & description); + void slotAddToTaskWindow(const ProjectExplorer::TaskWindow::Task &task); void addDirectory(const QString &dir); void removeDirectory(const QString &dir); private: diff --git a/src/plugins/projectexplorer/buildmanager.cpp b/src/plugins/projectexplorer/buildmanager.cpp index 92671035563f43120142c5390782da5e5f0cb7a3..a585b40874d38f61b2506e19269322f94cb42e81 100644 --- a/src/plugins/projectexplorer/buildmanager.cpp +++ b/src/plugins/projectexplorer/buildmanager.cpp @@ -87,6 +87,7 @@ BuildManager::BuildManager(ProjectExplorerPlugin *parent) pm->addObject(m_taskWindow); m_taskWindow->addCategory(Constants::TASK_CATEGORY_COMPILE, tr("Compile", "Category for compiler isses listened under 'Build Issues'")); + m_taskWindow->addCategory(Constants::TASK_CATEGORY_BUILDSYSTEM, tr("Buildsystem", "Category for build system isses listened under 'Build Issues'")); connect(m_taskWindow, SIGNAL(tasksChanged()), this, SIGNAL(tasksChanged())); @@ -126,8 +127,8 @@ void BuildManager::cancel() // (And we want those to be before the cancel message.) QTimer::singleShot(0, this, SLOT(emitCancelMessage())); - disconnect(m_currentBuildStep, SIGNAL(addToTaskWindow(QString, int, int, QString)), - this, SLOT(addToTaskWindow(QString, int, int, QString))); + disconnect(m_currentBuildStep, SIGNAL(addToTaskWindow(ProjectExplorer::TaskWindow::Task)), + this, SLOT(addToTaskWindow(ProjectExplorer::TaskWindow::Task))); disconnect(m_currentBuildStep, SIGNAL(addToOutputWindow(QString)), this, SLOT(addToOutputWindow(QString))); decrementActiveBuildSteps(m_currentBuildStep->project()); @@ -230,10 +231,8 @@ void BuildManager::showBuildResults() //toggleTaskWindow(); } -void BuildManager::addToTaskWindow(const QString &file, int type, int line, const QString &description) +void BuildManager::addToTaskWindow(const ProjectExplorer::TaskWindow::Task &task) { - TaskWindow::Task task(TaskWindow::TaskType(type), description, file, line, - Constants::TASK_CATEGORY_COMPILE); m_taskWindow->addTask(task); } @@ -247,8 +246,8 @@ void BuildManager::nextBuildQueue() if (m_canceling) return; - disconnect(m_currentBuildStep, SIGNAL(addToTaskWindow(QString, int, int, QString)), - this, SLOT(addToTaskWindow(QString, int, int, QString))); + disconnect(m_currentBuildStep, SIGNAL(addToTaskWindow(ProjectExplorer::TaskWindow::Task)), + this, SLOT(addToTaskWindow(ProjectExplorer::TaskWindow::Task))); disconnect(m_currentBuildStep, SIGNAL(addToOutputWindow(QString)), this, SLOT(addToOutputWindow(QString))); @@ -290,8 +289,8 @@ void BuildManager::nextStep() m_buildQueue.pop_front(); m_configurations.pop_front(); - connect(m_currentBuildStep, SIGNAL(addToTaskWindow(QString, int, int, QString)), - this, SLOT(addToTaskWindow(QString, int, int, QString))); + connect(m_currentBuildStep, SIGNAL(addToTaskWindow(ProjectExplorer::TaskWindow::Task)), + this, SLOT(addToTaskWindow(ProjectExplorer::TaskWindow::Task))); connect(m_currentBuildStep, SIGNAL(addToOutputWindow(QString)), this, SLOT(addToOutputWindow(QString))); diff --git a/src/plugins/projectexplorer/buildmanager.h b/src/plugins/projectexplorer/buildmanager.h index 58795ee5e1775de335780bfc4a71bbd6c912f78b..4d34a63a1ee5fa2fd7852acd73e8cb3437a20c9d 100644 --- a/src/plugins/projectexplorer/buildmanager.h +++ b/src/plugins/projectexplorer/buildmanager.h @@ -31,6 +31,7 @@ #define BUILDMANAGER_H #include "projectexplorer_export.h" +#include "taskwindow.h" #include <QtCore/QObject> #include <QtCore/QStringList> @@ -45,7 +46,6 @@ namespace Internal { class BuildProgressFuture; } -class TaskWindow; class BuildStep; class Project; class ProjectExplorerPlugin; @@ -92,7 +92,7 @@ signals: void tasksChanged(); private slots: - void addToTaskWindow(const QString &file, int type, int line, const QString &description); + void addToTaskWindow(const ProjectExplorer::TaskWindow::Task &task); void addToOutputWindow(const QString &string); void nextBuildQueue(); diff --git a/src/plugins/projectexplorer/buildstep.h b/src/plugins/projectexplorer/buildstep.h index 4943965f06cacc048187c00f543acdfafb4a989c..e78f2d7ad9d984d296314c512d3240e34e5d59f6 100644 --- a/src/plugins/projectexplorer/buildstep.h +++ b/src/plugins/projectexplorer/buildstep.h @@ -126,7 +126,7 @@ protected: QMap<QString, QVariant> valuesToMap(const QString & buildConfiguration); Q_SIGNALS: - void addToTaskWindow(const QString &filename, int type, int linenumber, const QString &description); + void addToTaskWindow(const ProjectExplorer::TaskWindow::Task &task); // The string is added to the output window // It should be in html format, that is properly escaped void addToOutputWindow(const QString &string); diff --git a/src/plugins/projectexplorer/gccparser.cpp b/src/plugins/projectexplorer/gccparser.cpp index e0463244670e0a4399e5c0dc3dfd117f9dde022a..f4a1e7be750e13600a103451dca349e90b0d2418 100644 --- a/src/plugins/projectexplorer/gccparser.cpp +++ b/src/plugins/projectexplorer/gccparser.cpp @@ -71,42 +71,36 @@ void GccParser::stdError(const QString & line) QString lne = line.trimmed(); if (m_regExpLinker.indexIn(lne) > -1) { QString description = m_regExpLinker.cap(2); - emit addToTaskWindow( - m_regExpLinker.cap(1), //filename - TaskWindow::Error, - -1, //linenumber - description); - //qDebug()<<"m_regExpLinker"<<m_regExpLinker.cap(2); + emit addToTaskWindow(TaskWindow::Task(TaskWindow::Error, + description, + m_regExpLinker.cap(1) /* filename */, + -1 /* linenumber */, + Constants::TASK_CATEGORY_COMPILE)); } else if (m_regExp.indexIn(lne) > -1) { - TaskWindow::TaskType type; + TaskWindow::Task task(TaskWindow::Unknown, + m_regExp.cap(6) /* description */, + m_regExp.cap(1) /* filename */, + m_regExp.cap(2).toInt() /* line number */, + Constants::TASK_CATEGORY_COMPILE); if (m_regExp.cap(5) == "warning") - type = TaskWindow::Warning; + task.type = TaskWindow::Warning; else if (m_regExp.cap(5) == "error") - type = TaskWindow::Error; - else - type = TaskWindow::Unknown; + task.type = TaskWindow::Error; - QString description = m_regExp.cap(6); - - emit addToTaskWindow( - m_regExp.cap(1), //filename - type, - m_regExp.cap(2).toInt(), //line number - description); + emit addToTaskWindow(task); } else if (m_regExpIncluded.indexIn(lne) > -1) { - emit addToTaskWindow( - m_regExpIncluded.cap(1), //filename - TaskWindow::Unknown, - m_regExpIncluded.cap(2).toInt(), //linenumber - lne //description - ); - } else if (lne.startsWith(QLatin1String("collect2:"))) { - emit addToTaskWindow("", TaskWindow::Error, -1, lne); - } else if (lne.startsWith(QLatin1String("ERROR:"))) { - // Triggered by cpp on windows. - emit addToTaskWindow(QString(), TaskWindow::Error, -1, lne); - } else if (lne == QLatin1String("* cpp failed")) { - // Triggered by cpp/make on windows. - emit addToTaskWindow(QString(), TaskWindow::Error, -1, lne); + emit addToTaskWindow(TaskWindow::Task(TaskWindow::Unknown, + lne /* description */, + m_regExpIncluded.cap(1) /* filename */, + m_regExpIncluded.cap(2).toInt() /* linenumber */, + Constants::TASK_CATEGORY_COMPILE)); + } else if (lne.startsWith(QLatin1String("collect2:")) || + lne.startsWith(QLatin1String("ERROR:")) || + lne == QLatin1String("* cpp failed")) { + emit addToTaskWindow(TaskWindow::Task(TaskWindow::Error, + lne /* description */, + QString() /* filename */, + -1 /* linenumber */, + Constants::TASK_CATEGORY_COMPILE)); } } diff --git a/src/plugins/projectexplorer/ibuildparser.h b/src/plugins/projectexplorer/ibuildparser.h index 40e345b7c9e016979b737b100cf7d3ba1b59d352..c1e60afa653465a9b1fdf7f36e817d93965ffaa8 100644 --- a/src/plugins/projectexplorer/ibuildparser.h +++ b/src/plugins/projectexplorer/ibuildparser.h @@ -31,9 +31,10 @@ #define IBUILDPARSER_H #include "projectexplorer_export.h" +#include "taskwindow.h" #include <QtCore/QObject> -#include <QtCore/QStack> +#include <QtCore/QString> namespace ProjectExplorer { @@ -51,7 +52,7 @@ Q_SIGNALS: void enterDirectory(const QString &dir); void leaveDirectory(const QString &dir); void addToOutputWindow(const QString & string); - void addToTaskWindow(const QString & filename, int type, int lineNumber, const QString & description); + void addToTaskWindow(const ProjectExplorer::TaskWindow::Task &task); }; class PROJECTEXPLORER_EXPORT IBuildParserFactory diff --git a/src/plugins/projectexplorer/metatypedeclarations.h b/src/plugins/projectexplorer/metatypedeclarations.h index 5a9f9d53df9fe87fcd0a8fd1e291f5f88045ae30..92c7b896555eaee2b71b598a1404a7e355fe2b9a 100644 --- a/src/plugins/projectexplorer/metatypedeclarations.h +++ b/src/plugins/projectexplorer/metatypedeclarations.h @@ -62,4 +62,6 @@ Q_DECLARE_METATYPE(QList<ProjectExplorer::Internal::CommandQObject*>) Q_DECLARE_METATYPE(ProjectExplorer::IBuildParser*) Q_DECLARE_METATYPE(ProjectExplorer::GlobalConfigManagerInterface*) +Q_DECLARE_METATYPE(ProjectExplorer::TaskWindow::Task) + #endif // PROJECTEXPLORERMETATYPEDECLARATIONS_H diff --git a/src/plugins/projectexplorer/msvcparser.cpp b/src/plugins/projectexplorer/msvcparser.cpp index c840158c023616f27c7518227432d7e82b21bc67..df8996f9688543986ced5c9670589ba2b82b94d4 100644 --- a/src/plugins/projectexplorer/msvcparser.cpp +++ b/src/plugins/projectexplorer/msvcparser.cpp @@ -58,24 +58,24 @@ void MsvcParser::stdOutput(const QString & line) { QString lne = line.trimmed(); if (m_compileRegExp.indexIn(lne) > -1 && m_compileRegExp.numCaptures() == 4) { - emit addToTaskWindow( - QDir::cleanPath(m_compileRegExp.cap(1)), //filename - toType(m_compileRegExp.cap(3).toInt()), // PatternType - m_compileRegExp.cap(2).toInt(), //linenumber - m_compileRegExp.cap(4) //description - ); - - } else if (m_linkRegExp.indexIn(lne) > -1 && m_linkRegExp.numCaptures() == 3) { + emit addToTaskWindow(TaskWindow::Task(toType(m_compileRegExp.cap(3).toInt()) /* task type */, + m_compileRegExp.cap(4) /* description */, + m_compileRegExp.cap(1) /* filename */, + m_compileRegExp.cap(2).toInt() /* linenumber */, + Constants::TASK_CATEGORY_COMPILE)); + return; + } + if (m_linkRegExp.indexIn(lne) > -1 && m_linkRegExp.numCaptures() == 3) { QString fileName = m_linkRegExp.cap(1); if (fileName.contains(QLatin1String("LINK"), Qt::CaseSensitive)) fileName.clear(); - emit addToTaskWindow( - QDir::cleanPath(fileName), //filename - toType(m_linkRegExp.cap(2).toInt()), // pattern type - -1, // line number - m_linkRegExp.cap(3) // description - ); + emit addToTaskWindow(TaskWindow::Task(toType(m_linkRegExp.cap(2).toInt()) /* task type */, + m_linkRegExp.cap(3) /* description */, + fileName /* filename */, + -1 /* line number */, + Constants::TASK_CATEGORY_COMPILE)); + return; } } diff --git a/src/plugins/projectexplorer/projectexplorerconstants.h b/src/plugins/projectexplorer/projectexplorerconstants.h index 2e2b62be885183ceeda80670695ddd707e9c3e62..b7eb833f877b3df3b6991911bf90f91be5dc2e0c 100644 --- a/src/plugins/projectexplorer/projectexplorerconstants.h +++ b/src/plugins/projectexplorer/projectexplorerconstants.h @@ -192,6 +192,7 @@ const char * const PROJECTEXPLORER_PAGE = "ProjectExplorer.Projec // task categories const char * const TASK_CATEGORY_COMPILE = "Task.Category.Compile"; +const char * const TASK_CATEGORY_BUILDSYSTEM = "Task.Category.Buildsystem"; } // namespace Constants } // namespace ProjectExplorer diff --git a/src/plugins/projectexplorer/qmakeparser.cpp b/src/plugins/projectexplorer/qmakeparser.cpp index 4350615a0c46b847c59f693330b32673c9b5e7b8..aaca5aa46bfb8ea76340c3421aab985537d5dc92 100644 --- a/src/plugins/projectexplorer/qmakeparser.cpp +++ b/src/plugins/projectexplorer/qmakeparser.cpp @@ -52,7 +52,11 @@ void QMakeParser::stdError(const QString & line) if (lne.startsWith("Project ERROR:")) { lne = lne.mid(15); - emit addToTaskWindow(QString(), TaskWindow::Error, -1, lne); + emit addToTaskWindow(TaskWindow::Task(TaskWindow::Error, + lne /* description */, + QString() /* filename */, + -1 /* linenumber */, + Constants::TASK_CATEGORY_BUILDSYSTEM)); return; } } diff --git a/src/plugins/projectexplorer/taskwindow.cpp b/src/plugins/projectexplorer/taskwindow.cpp index 2772516841cd57c859778fb45a43b3d4987524f8..a179059a2b4317f8f7d57450cda06250fece20d6 100644 --- a/src/plugins/projectexplorer/taskwindow.cpp +++ b/src/plugins/projectexplorer/taskwindow.cpp @@ -47,8 +47,6 @@ #include <QtGui/QStyledItemDelegate> #include <QtGui/QSortFilterProxyModel> -#include <QDebug> - namespace ProjectExplorer { namespace Internal { @@ -488,6 +486,8 @@ TaskWindow::TaskWindow() m_categoriesButton->setPopupMode(QToolButton::InstantPopup); m_categoriesButton->setMenu(m_categoriesMenu); + qRegisterMetaType<ProjectExplorer::TaskWindow::Task>("ProjectExplorer::TaskWindow::Task"); + updateActions(); } diff --git a/src/plugins/projectexplorer/taskwindow.h b/src/plugins/projectexplorer/taskwindow.h index 1b460e5876bd069bf068dfab1ce4574894e8e7e7..5595b299fcfdbfda7d0ecf8bd2ab9c06171fb6a5 100644 --- a/src/plugins/projectexplorer/taskwindow.h +++ b/src/plugins/projectexplorer/taskwindow.h @@ -30,7 +30,7 @@ #ifndef TASKWINDOW_H #define TASKWINDOW_H -#include "ibuildparser.h" +#include "projectexplorer_export.h" #include <coreplugin/icontext.h> #include <coreplugin/ioutputpane.h> @@ -65,10 +65,14 @@ public: }; struct Task { + Task() : type(Unknown), line(-1) + { } Task(TaskType type_, const QString &description_, const QString &file_, int line_, const QString &category_) : type(type_), description(description_), file(file_), line(line_), category(category_) { } + ~Task() + { } TaskType type; QString description; diff --git a/src/plugins/qt4projectmanager/qt-s60/abldparser.cpp b/src/plugins/qt4projectmanager/qt-s60/abldparser.cpp index e2d73c5f2a48831ea7bbaa908bdf859edb7378b8..93c8c53b8cbe56653c77d2866219eb7aeea81844 100644 --- a/src/plugins/qt4projectmanager/qt-s60/abldparser.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/abldparser.cpp @@ -70,14 +70,14 @@ AbldParser::AbldParser(const QString &name) : } QTC_ASSERT(0 != m_subparser, return); - connect(m_subparser, SIGNAL(enterDirectory(const QString &)), - this, SIGNAL(enterDirectory(const QString &))); - connect(m_subparser, SIGNAL(leaveDirectory(const QString &)), - this, SIGNAL(leaveDirectory(const QString &))); - connect(m_subparser, SIGNAL(addToOutputWindow(const QString &)), - this, SIGNAL(addToOutputWindow(const QString &))); - connect(m_subparser, SIGNAL(addToTaskWindow(const QString &, int, int, const QString &)), - this, SIGNAL(addToTaskWindow(const QString &, int, int, const QString &))); + connect(m_subparser, SIGNAL(enterDirectory(QString)), + this, SIGNAL(enterDirectory(QString))); + connect(m_subparser, SIGNAL(leaveDirectory(QString)), + this, SIGNAL(leaveDirectory(QString))); + connect(m_subparser, SIGNAL(addToOutputWindow(QString)), + this, SIGNAL(addToOutputWindow(QString))); + connect(m_subparser, SIGNAL(addToTaskWindow(ProjectExplorer::TaskWindow::Task)), + this, SIGNAL(addToTaskWindow(ProjectExplorer::TaskWindow::Task))); } AbldParser::~AbldParser() @@ -97,35 +97,39 @@ void AbldParser::stdOutput(const QString &line) QString lne = line.trimmed(); // possible ABLD.bat errors: if (lne.startsWith("Is Perl, version ")) { - emit addToTaskWindow( - QString(), //filename - TaskWindow::Error, - -1, //linenumber - lne); + emit addToTaskWindow(TaskWindow::Task(TaskWindow::Error, + lne /* description */, + QString() /* filename */, + -1 /* linenumber */, + Constants::TASK_CATEGORY_BUILDSYSTEM)); return; } if (lne.startsWith("FATAL ERROR:")) { - emit addToTaskWindow(QString(), TaskWindow::Error, - -1, lne.mid(12)); + emit addToTaskWindow(TaskWindow::Task(TaskWindow::Error, + lne /* description */, + QString() /* filename */, + -1 /* linenumber */, + Constants::TASK_CATEGORY_BUILDSYSTEM)); m_waitingForStdOutContinuation = false; return; } if (m_perlIssue.indexIn(lne) > -1) { m_waitingForStdOutContinuation = true; - TaskWindow::TaskType type; - if (m_perlIssue.cap(1) == QLatin1String("WARNING")) - type = TaskWindow::Warning; - else if (m_perlIssue.cap(1) == QLatin1String("ERROR")) - type = TaskWindow::Error; - else - type = TaskWindow::Unknown; - m_currentFile = m_perlIssue.cap(2); m_currentLine = m_perlIssue.cap(3).toInt(); - emit addToTaskWindow(m_currentFile, type, - m_currentLine, m_perlIssue.cap(4)); + TaskWindow::Task task(TaskWindow::Unknown, + m_perlIssue.cap(4) /* description */, + m_currentFile, m_currentLine, + Constants::TASK_CATEGORY_BUILDSYSTEM); + + if (m_perlIssue.cap(1) == QLatin1String("WARNING")) + task.type = TaskWindow::Warning; + else if (m_perlIssue.cap(1) == QLatin1String("ERROR")) + task.type = TaskWindow::Error; + + emit addToTaskWindow(task); return; } @@ -135,9 +139,10 @@ void AbldParser::stdOutput(const QString &line) } if (m_waitingForStdOutContinuation) { - emit addToTaskWindow(m_currentFile, - TaskWindow::Unknown, - m_currentLine, lne); + emit addToTaskWindow(TaskWindow::Task(TaskWindow::Unknown, + lne /* description */, + m_currentFile, m_currentLine, + Constants::TASK_CATEGORY_BUILDSYSTEM)); m_waitingForStdOutContinuation = true; return; } @@ -157,18 +162,20 @@ void AbldParser::stdError(const QString &line) if (lne.startsWith("ABLD ERROR:") || lne.startsWith("This project does not support ") || lne.startsWith("Platform ")) { - emit addToTaskWindow( - QString(), // filename, - TaskWindow::Error, - -1, // linenumber - lne); + emit addToTaskWindow(TaskWindow::Task(TaskWindow::Error, + lne /* description */, + QString() /* filename */, + -1 /* linenumber */, + Constants::TASK_CATEGORY_BUILDSYSTEM)); return; } if (lne.startsWith("Died at ")) { - emit addToTaskWindow(QString(), - TaskWindow::Error, - -1, lne); + emit addToTaskWindow(TaskWindow::Task(TaskWindow::Error, + lne /* description */, + QString() /* filename */, + -1 /* linenumber */, + Constants::TASK_CATEGORY_BUILDSYSTEM)); m_waitingForStdErrContinuation = false; return; } @@ -184,25 +191,29 @@ void AbldParser::stdError(const QString &line) } if (lne.startsWith("WARNING: ")) { QString description = lne.mid(9); - emit addToTaskWindow(m_currentFile, - TaskWindow::Warning, - -1, description); + emit addToTaskWindow(TaskWindow::Task(TaskWindow::Warning, description, + m_currentFile, + -1 /* linenumber */, + Constants::TASK_CATEGORY_BUILDSYSTEM)); m_waitingForStdErrContinuation = true; return; } if (lne.startsWith("ERROR: ")) { QString description = lne.mid(7); - emit addToTaskWindow(m_currentFile, - TaskWindow::Error, - -1, description); + emit addToTaskWindow(TaskWindow::Task(TaskWindow::Error, description, + m_currentFile, + -1 /* linenumber */, + Constants::TASK_CATEGORY_BUILDSYSTEM)); m_waitingForStdErrContinuation = true; return; } if (m_waitingForStdErrContinuation) { - emit addToTaskWindow(m_currentFile, - TaskWindow::Unknown, - -1, lne); + emit addToTaskWindow(TaskWindow::Task(TaskWindow::Unknown, + lne /* description */, + m_currentFile, + -1 /* linenumber */, + Constants::TASK_CATEGORY_BUILDSYSTEM)); m_waitingForStdErrContinuation = true; return; } diff --git a/src/plugins/qt4projectmanager/qt-s60/rvctparser.cpp b/src/plugins/qt4projectmanager/qt-s60/rvctparser.cpp index 07d56ebc708f0287171e9fc60a0bd7be1cd3541c..0b671f811384446e3c39e5ec972a9f6847378294 100644 --- a/src/plugins/qt4projectmanager/qt-s60/rvctparser.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/rvctparser.cpp @@ -74,44 +74,35 @@ void RvctParser::stdOutput(const QString &line) void RvctParser::stdError(const QString &line) { QString lne = line.trimmed(); - if (m_linkerProblem.indexIn(lne) > -1) { - QString description = m_linkerProblem.cap(2); - emit addToTaskWindow( - m_linkerProblem.cap(1), //filename - TaskWindow::Error, - -1, //linenumber - description); + emit addToTaskWindow(TaskWindow::Task(TaskWindow::Error, + m_linkerProblem.cap(2) /* description */, + m_linkerProblem.cap(1) /* filename */, + -1 /* linenumber */, + Constants::TASK_CATEGORY_COMPILE)); } else if (m_warningOrError.indexIn(lne) > -1) { - TaskWindow::TaskType type; + m_lastFile = m_warningOrError.cap(1); + m_lastLine = m_warningOrError.cap(2).toInt(); + + TaskWindow::Task task(TaskWindow::Unknown, + m_warningOrError.cap(5) /* description */, + m_lastFile, m_lastLine, + Constants::TASK_CATEGORY_COMPILE); if (m_warningOrError.cap(4) == "Warning") - type = TaskWindow::Warning; + task.type = TaskWindow::Warning; else if (m_warningOrError.cap(4) == "Error") - type = TaskWindow::Error; - else - type = TaskWindow::Unknown; - - QString description = m_warningOrError.cap(5); + task.type = TaskWindow::Error; m_additionalInfo = true; - m_lastFile = m_warningOrError.cap(1); - m_lastLine = m_warningOrError.cap(2).toInt(); - emit addToTaskWindow( - m_lastFile, //filename - type, - m_lastLine, //line number - description); + emit addToTaskWindow(task); } else if (m_doneWithFile.indexIn(lne) > -1) { m_additionalInfo = false; } else if (m_additionalInfo) { // Report any lines after a error/warning message as these contain // additional information on the problem. - emit addToTaskWindow( - m_lastFile, //filesname - TaskWindow::Unknown, - m_lastLine, //linenumber - lne //description - ); + emit addToTaskWindow(TaskWindow::Task(TaskWindow::Unknown, lne, + m_lastFile, m_lastLine, + Constants::TASK_CATEGORY_COMPILE)); } } diff --git a/src/plugins/qt4projectmanager/qt-s60/winscwparser.cpp b/src/plugins/qt4projectmanager/qt-s60/winscwparser.cpp index 6c8156370bb0395b4984fd68c3daa07dedc85cee..6b8d4a0a721a072245e09bbfe37b79c502bddc55 100644 --- a/src/plugins/qt4projectmanager/qt-s60/winscwparser.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/winscwparser.cpp @@ -67,17 +67,16 @@ void WinscwParser::stdOutput(const QString &line) } if (m_compilerProblem.indexIn(lne) > -1) { - QString fileName(m_compilerProblem.cap(1)); - int lineNumber(m_compilerProblem.cap(2).toInt()); - QString description(m_compilerProblem.cap(3)); - TaskWindow::TaskType type(TaskWindow::Error); - - if (description.startsWith("warning: ")) { - type = TaskWindow::Warning; - description = description.mid(9); + TaskWindow::Task task(TaskWindow::Error, + m_compilerProblem.cap(3) /* description */, + m_compilerProblem.cap(1) /* filename */, + m_compilerProblem.cap(2).toInt() /* linenumber */, + Constants::TASK_CATEGORY_COMPILE); + if (task.description.startsWith("warning: ")) { + task.type = TaskWindow::Warning; + task.description = task.description.mid(9); } - - emit addToTaskWindow(fileName, type, lineNumber, description); + emit addToTaskWindow(task); } } @@ -86,11 +85,10 @@ void WinscwParser::stdError(const QString &line) QString lne = line.trimmed(); if (m_linkerProblem.indexIn(lne) > -1) { - QString description = m_linkerProblem.cap(2); - emit addToTaskWindow( - m_linkerProblem.cap(1), //filename - TaskWindow::Error, - -1, //linenumber - description); + emit addToTaskWindow(TaskWindow::Task(TaskWindow::Error, + m_linkerProblem.cap(2) /* description */, + m_linkerProblem.cap(1) /* filename */, + -1 /* linenumber */, + Constants::TASK_CATEGORY_COMPILE)); } }