diff --git a/src/plugins/projectexplorer/taskhub.h b/src/plugins/projectexplorer/taskhub.h index 1355705e61f139bf1f318378d32483544837e8bf..90f77abd75eb9b5c012a941b2bf0b9624548cf94 100644 --- a/src/plugins/projectexplorer/taskhub.h +++ b/src/plugins/projectexplorer/taskhub.h @@ -45,10 +45,13 @@ public: TaskHub(); virtual ~TaskHub(); +public slots: void addCategory(const Core::Id &categoryId, const QString &displayName, bool visible = true); - void addTask(Task task); + void addTask(ProjectExplorer::Task task); void clearTasks(const Core::Id &categoryId = Core::Id()); - void removeTask(const Task &task); + void removeTask(const ProjectExplorer::Task &task); + +public: void updateTaskFileName(unsigned int id, const QString &fileName); void updateTaskLineNumber(unsigned int id, int line); void taskMarkClicked(unsigned int id); @@ -58,6 +61,7 @@ public: void requestPopup(); QIcon taskTypeIcon(ProjectExplorer::Task::TaskType t) const; + signals: void categoryAdded(const Core::Id &categoryId, const QString &displayName, bool visible); void taskAdded(const ProjectExplorer::Task &task); diff --git a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp index 9e944c94227404c8cd4da3ca6508628fe2d6df04..10522cebe18c43a2f77bb0d95fd643aa769222c6 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp +++ b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp @@ -135,8 +135,6 @@ void QbsBuildStep::run(QFutureInterface<bool> &fi) this, SLOT(handleProgress(int))); connect(m_job, SIGNAL(reportCommandDescription(QString,QString)), this, SLOT(handleCommandDescriptionReport(QString,QString))); - connect(m_job, SIGNAL(reportWarning(qbs::Error)), - this, SLOT(handleWarningReport(qbs::Error))); connect(m_job, SIGNAL(reportProcessResult(qbs::ProcessResult)), this, SLOT(handleProcessResultReport(qbs::ProcessResult))); } @@ -246,14 +244,6 @@ void QbsBuildStep::handleProgress(int value) m_fi->setProgressValue(m_progressBase + value); } -void QbsBuildStep::handleWarningReport(const qbs::Error &error) -{ - foreach (const qbs::ErrorData &data, error.entries()) { - createTaskAndOutput(ProjectExplorer::Task::Warning, data.description(), - data.codeLocation().fileName(), data.codeLocation().line()); - } -} - void QbsBuildStep::handleCommandDescriptionReport(const QString &highlight, const QString &message) { Q_UNUSED(highlight); diff --git a/src/plugins/qbsprojectmanager/qbsbuildstep.h b/src/plugins/qbsprojectmanager/qbsbuildstep.h index 9d5e1da3945b3fb08ab172af22eea2c70984890c..0d1ce0691b18def88d061f5e68f5201e16b60326 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildstep.h +++ b/src/plugins/qbsprojectmanager/qbsbuildstep.h @@ -78,7 +78,6 @@ private slots: void buildingDone(bool success); void handleTaskStarted(const QString &desciption, int max); void handleProgress(int value); - void handleWarningReport(const qbs::Error &error); void handleCommandDescriptionReport(const QString &highlight, const QString &message); void handleProcessResultReport(const qbs::ProcessResult &result); diff --git a/src/plugins/qbsprojectmanager/qbslogsink.cpp b/src/plugins/qbsprojectmanager/qbslogsink.cpp index 03cfe0fdf6639c65448e7a8f531f3f43e0dfe7d3..624f51391758f31c284f7800169ae0e5af60d053 100644 --- a/src/plugins/qbsprojectmanager/qbslogsink.cpp +++ b/src/plugins/qbsprojectmanager/qbslogsink.cpp @@ -32,6 +32,9 @@ #include <qbs.h> #include <coreplugin/messagemanager.h> +#include <projectexplorer/projectexplorer.h> +#include <projectexplorer/taskhub.h> +#include <utils/fileutils.h> #include <QCoreApplication> #include <QMutexLocker> @@ -46,6 +49,9 @@ namespace Internal { QbsLogSink::QbsLogSink(QObject *parent) : QObject(parent) { + ProjectExplorer::TaskHub *hub = ProjectExplorer::ProjectExplorerPlugin::instance()->taskHub(); + connect(this, SIGNAL(newTask(ProjectExplorer::Task)), + hub, SLOT(addTask(ProjectExplorer::Task)), Qt::QueuedConnection); } void QbsLogSink::sendMessages() @@ -62,6 +68,16 @@ void QbsLogSink::sendMessages() mm->printToOutputPane(msg); } +void QbsLogSink::doPrintWarning(const qbs::Error &warning) +{ + foreach (const qbs::ErrorData &data, warning.entries()) + emit newTask(ProjectExplorer::Task(ProjectExplorer::Task::Warning, + data.description(), + Utils::FileName::fromString(data.codeLocation().fileName()), + data.codeLocation().line(), + ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM)); +} + void QbsLogSink::doPrintMessage(qbs::LoggerLevel level, const QString &message, const QString &tag) { Q_UNUSED(tag); diff --git a/src/plugins/qbsprojectmanager/qbslogsink.h b/src/plugins/qbsprojectmanager/qbslogsink.h index cfbfc1b1d00e717e2837cbddbf32ae15293eabe4..fe40101e884279c54d1f7fb55690adc212c3cbfe 100644 --- a/src/plugins/qbsprojectmanager/qbslogsink.h +++ b/src/plugins/qbsprojectmanager/qbslogsink.h @@ -30,6 +30,8 @@ #ifndef QBSLOGSINK_H #define QBSLOGSINK_H +#include <projectexplorer/task.h> + #include <qbs.h> #include <QMutex> @@ -45,10 +47,14 @@ class QbsLogSink : public QObject, public qbs::ILogSink public: QbsLogSink(QObject *parent = 0); +signals: + void newTask(const ProjectExplorer::Task &task); + private slots: void sendMessages(); private: + void doPrintWarning(const qbs::Error &warning); void doPrintMessage(qbs::LoggerLevel level, const QString &message, const QString &tag); QStringList m_messages; diff --git a/src/shared/qbs b/src/shared/qbs index 32ae53690c01e5269ac2a9ad0dadf549ce04ee3f..5df624fa5884ba7ca9d1d0666484ad24c1c0b70b 160000 --- a/src/shared/qbs +++ b/src/shared/qbs @@ -1 +1 @@ -Subproject commit 32ae53690c01e5269ac2a9ad0dadf549ce04ee3f +Subproject commit 5df624fa5884ba7ca9d1d0666484ad24c1c0b70b