summaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/projectexplorer/buildmanager.cpp11
-rw-r--r--src/plugins/projectexplorer/taskwindow.cpp31
-rw-r--r--src/plugins/projectexplorer/taskwindow.h6
3 files changed, 36 insertions, 12 deletions
diff --git a/src/plugins/projectexplorer/buildmanager.cpp b/src/plugins/projectexplorer/buildmanager.cpp
index 13f54b1c63..ba258e13bb 100644
--- a/src/plugins/projectexplorer/buildmanager.cpp
+++ b/src/plugins/projectexplorer/buildmanager.cpp
@@ -228,7 +228,9 @@ void BuildManager::cancel()
void BuildManager::updateTaskCount()
{
Core::ProgressManager *progressManager = Core::ICore::instance()->progressManager();
- const int errors = d->m_taskWindow->errorTaskCount();
+ const int errors =
+ d->m_taskWindow->errorTaskCount(Constants::TASK_CATEGORY_BUILDSYSTEM)
+ + d->m_taskWindow->errorTaskCount(Constants::TASK_CATEGORY_COMPILE);
if (errors > 0) {
progressManager->setApplicationLabel(QString::number(errors));
} else {
@@ -287,7 +289,10 @@ void BuildManager::toggleTaskWindow()
bool BuildManager::tasksAvailable() const
{
- return d->m_taskWindow->taskCount() > 0;
+ const int count =
+ d->m_taskWindow->taskCount(Constants::TASK_CATEGORY_BUILDSYSTEM)
+ + d->m_taskWindow->taskCount(Constants::TASK_CATEGORY_COMPILE);
+ return count > 0;
}
void BuildManager::startBuildQueue()
@@ -327,7 +332,7 @@ void BuildManager::startBuildQueue()
void BuildManager::showBuildResults()
{
- if (d->m_taskWindow->taskCount() != 0)
+ if (tasksAvailable())
toggleTaskWindow();
else
toggleOutputWindow();
diff --git a/src/plugins/projectexplorer/taskwindow.cpp b/src/plugins/projectexplorer/taskwindow.cpp
index bf95954547..c7255ee56c 100644
--- a/src/plugins/projectexplorer/taskwindow.cpp
+++ b/src/plugins/projectexplorer/taskwindow.cpp
@@ -876,19 +876,38 @@ void TaskWindow::filterCategoryTriggered(QAction *action)
setCategoryVisibility(categoryId, action->isChecked());
}
-int TaskWindow::taskCount() const
+int TaskWindow::taskCount(const QString &category) const
{
- return d->m_model->taskCount();
+ if (category.isEmpty())
+ return d->m_model->taskCount();
+
+ return d->m_model->tasks(category).size();
}
-int TaskWindow::errorTaskCount() const
+int TaskWindow::errorTaskCount(const QString &category) const
{
- return d->m_model->errorTaskCount();
+ if (category.isEmpty())
+ return d->m_model->errorTaskCount();
+
+ int count = 0;
+ foreach (const Task &task, d->m_model->tasks(category)) {
+ if (task.type == Task::Error)
+ ++count;
+ }
+ return count;
}
-int TaskWindow::warningTaskCount() const
+int TaskWindow::warningTaskCount(const QString &category) const
{
- return d->m_model->warningTaskCount();
+ if (category.isEmpty())
+ return d->m_model->warningTaskCount();
+
+ int count = 0;
+ foreach (const Task &task, d->m_model->tasks(category)) {
+ if (task.type == Task::Warning)
+ ++count;
+ }
+ return count;
}
int TaskWindow::priorityInStatusBar() const
diff --git a/src/plugins/projectexplorer/taskwindow.h b/src/plugins/projectexplorer/taskwindow.h
index bc1f75eb42..b5f515af2b 100644
--- a/src/plugins/projectexplorer/taskwindow.h
+++ b/src/plugins/projectexplorer/taskwindow.h
@@ -57,9 +57,9 @@ public:
TaskWindow(ProjectExplorer::TaskHub *taskHub);
virtual ~TaskWindow();
- int taskCount() const;
- int warningTaskCount() const;
- int errorTaskCount() const;
+ int taskCount(const QString &category = QString()) const;
+ int warningTaskCount(const QString &category = QString()) const;
+ int errorTaskCount(const QString &category = QString()) const;
// IOutputPane
QWidget *outputWidget(QWidget *);