diff options
author | Tobias Hunger <tobias.hunger@nokia.com> | 2010-09-08 14:55:37 +0200 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@nokia.com> | 2010-09-08 18:18:56 +0200 |
commit | ba5750d4869cff2ba37a383c70ca5a5e0597d781 (patch) | |
tree | 477d397cd2bb93e3bd079bfa537cc2619f558e2a /src/plugins/projectexplorer/taskwindow.cpp | |
parent | de88538479e570acc2b91b4f3a933a8de3d24fa1 (diff) | |
download | qt-creator-ba5750d4869cff2ba37a383c70ca5a5e0597d781.tar.gz |
Handle more make errors
Diffstat (limited to 'src/plugins/projectexplorer/taskwindow.cpp')
-rw-r--r-- | src/plugins/projectexplorer/taskwindow.cpp | 98 |
1 files changed, 67 insertions, 31 deletions
diff --git a/src/plugins/projectexplorer/taskwindow.cpp b/src/plugins/projectexplorer/taskwindow.cpp index 0d1d6712a9..0a3ec26c26 100644 --- a/src/plugins/projectexplorer/taskwindow.cpp +++ b/src/plugins/projectexplorer/taskwindow.cpp @@ -509,9 +509,8 @@ public: QMenu *m_contextMenu; QModelIndex m_contextMenuIndex; ITaskHandler *m_defaultHandler; - QToolButton *m_filterWarningsButton; - QToolButton *m_categoriesButton; - QMenu *m_categoriesMenu; + QToolButton *m_filterButton; + QMenu *m_filterMenu; TaskHub *m_taskHub; }; @@ -569,20 +568,16 @@ TaskWindow::TaskWindow(TaskHub *taskhub) : d(new TaskWindowPrivate) connect(d->m_listview, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(showContextMenu(QPoint))); - d->m_filterWarningsButton = createFilterButton(d->m_model->taskTypeIcon(Task::Warning), - tr("Show Warnings"), - this, SLOT(setShowWarnings(bool))); + d->m_filterMenu = new QMenu; + connect(d->m_filterMenu, SIGNAL(aboutToShow()), this, SLOT(updateCategoriesMenu())); + connect(d->m_filterMenu, SIGNAL(triggered(QAction*)), this, SLOT(filterMenuTriggered(QAction*))); - d->m_categoriesMenu = new QMenu; - connect(d->m_categoriesMenu, SIGNAL(aboutToShow()), this, SLOT(updateCategoriesMenu())); - connect(d->m_categoriesMenu, SIGNAL(triggered(QAction*)), this, SLOT(filterCategoryTriggered(QAction*))); - - d->m_categoriesButton = new QToolButton; - d->m_categoriesButton->setIcon(QIcon(QLatin1String(Core::Constants::ICON_FILTER))); - d->m_categoriesButton->setToolTip(tr("Filter by categories")); - d->m_categoriesButton->setAutoRaise(true); - d->m_categoriesButton->setPopupMode(QToolButton::InstantPopup); - d->m_categoriesButton->setMenu(d->m_categoriesMenu); + d->m_filterButton = new QToolButton; + d->m_filterButton->setIcon(QIcon(QLatin1String(Core::Constants::ICON_FILTER))); + d->m_filterButton->setToolTip(tr("Filter by categories")); + d->m_filterButton->setAutoRaise(true); + d->m_filterButton->setPopupMode(QToolButton::InstantPopup); + d->m_filterButton->setMenu(d->m_filterMenu); connect(d->m_taskHub, SIGNAL(categoryAdded(QString, QString)), this, SLOT(addCategory(QString, QString))); @@ -598,7 +593,6 @@ TaskWindow::~TaskWindow() { Core::ICore::instance()->removeContextObject(d->m_taskWindowContext); cleanContextMenu(); - delete d->m_filterWarningsButton; delete d->m_listview; delete d->m_filter; delete d->m_model; @@ -607,7 +601,7 @@ TaskWindow::~TaskWindow() QList<QWidget*> TaskWindow::toolBarWidgets() const { - return QList<QWidget*>() << d->m_filterWarningsButton << d->m_categoriesButton; + return QList<QWidget*>() << d->m_filterButton; } QWidget *TaskWindow::outputWidget(QWidget *) @@ -731,38 +725,80 @@ void TaskWindow::setShowWarnings(bool show) void TaskWindow::updateCategoriesMenu() { - d->m_categoriesMenu->clear(); + d->m_filterMenu->clear(); const QStringList filteredCategories = d->m_filter->filteredCategories(); foreach (const QString &categoryId, d->m_model->categoryIds()) { const QString categoryName = d->m_model->categoryDisplayName(categoryId); - QAction *action = new QAction(d->m_categoriesMenu); + QAction *action = new QAction(d->m_filterMenu); action->setCheckable(true); action->setText(categoryName); action->setData(categoryId); action->setChecked(!filteredCategories.contains(categoryId)); - d->m_categoriesMenu->addAction(action); + d->m_filterMenu->addAction(action); } + + d->m_filterMenu->addSeparator(); + + QAction *unknownType = new QAction(d->m_model->taskTypeIcon(Task::Unknown), + tr("Informational"), d->m_filterMenu); + unknownType->setCheckable(true); + unknownType->setData(Task::Unknown); + unknownType->setChecked(d->m_filter->filterIncludesUnknowns()); + d->m_filterMenu->addAction(unknownType); + + QAction *warningType = new QAction(d->m_model->taskTypeIcon(Task::Warning), + tr("Warnings"), d->m_filterMenu); + warningType->setCheckable(true); + warningType->setData(Task::Warning); + warningType->setChecked(d->m_filter->filterIncludesUnknowns()); + d->m_filterMenu->addAction(warningType); + + QAction *errorType = new QAction(d->m_model->taskTypeIcon(Task::Error), + tr("Errors"), d->m_filterMenu); + errorType->setCheckable(true); + errorType->setData(Task::Error); + errorType->setChecked(d->m_filter->filterIncludesUnknowns()); + d->m_filterMenu->addAction(errorType); } -void TaskWindow::filterCategoryTriggered(QAction *action) +void TaskWindow::filterMenuTriggered(QAction *action) { - QString categoryId = action->data().toString(); - Q_ASSERT(!categoryId.isEmpty()); + if (action->data().type() == QVariant::String) { + QString categoryId = action->data().toString(); + Q_ASSERT(!categoryId.isEmpty()); - QStringList categories = d->m_filter->filteredCategories(); - Q_ASSERT(d->m_filter->filteredCategories().contains(categoryId) == action->isChecked()); + QStringList categories = d->m_filter->filteredCategories(); + Q_ASSERT(d->m_filter->filteredCategories().contains(categoryId) == action->isChecked()); - if (action->isChecked()) { - categories.removeOne(categoryId); + if (action->isChecked()) { + categories.removeOne(categoryId); + } else { + categories.append(categoryId); + } + + d->m_filter->setFilteredCategories(categories); } else { - categories.append(categoryId); - } + bool ok; + Task::TaskType type = static_cast<Task::TaskType>(action->data().toInt(&ok)); + Q_ASSERT(ok); + + switch (type) { + case ProjectExplorer::Task::Unknown: + d->m_filter->setFilterIncludesUnknowns(action->isChecked()); + break; + case ProjectExplorer::Task::Error: + d->m_filter->setFilterIncludesErrors(action->isChecked()); + break; + case ProjectExplorer::Task::Warning: + d->m_filter->setFilterIncludesWarnings(action->isChecked()); + break; - d->m_filter->setFilteredCategories(categories); + } + } } int TaskWindow::taskCount() const |