From a28f48366cd502fda8f029e5e502fc16c2d0ce25 Mon Sep 17 00:00:00 2001 From: Tobias Hunger <tobias.hunger@digia.com> Date: Fri, 5 Oct 2012 12:27:27 +0200 Subject: [PATCH] Tasks: Allow for removal of tasks from task list Change-Id: I97c241baf323621a3fde5f60523df8c9dd9e4e97 Reviewed-by: Daniel Teske <daniel.teske@digia.com> Reviewed-by: Eike Ziller <eike.ziller@digia.com> --- .../projectexplorer/projectexplorer.cpp | 2 + .../projectexplorer/projectexplorer.pro | 2 + .../projectexplorer/projectexplorer.qbs | 2 + .../projectexplorer/removetaskhandler.cpp | 56 +++++++++++++++++++ .../projectexplorer/removetaskhandler.h | 54 ++++++++++++++++++ 5 files changed, 116 insertions(+) create mode 100644 src/plugins/projectexplorer/removetaskhandler.cpp create mode 100644 src/plugins/projectexplorer/removetaskhandler.h diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 9b0f5db2d2b..50caa284ebf 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -35,6 +35,7 @@ #include "gcctoolchainfactories.h" #include "project.h" #include "projectexplorersettings.h" +#include "removetaskhandler.h" #include "kitmanager.h" #include "kitoptionspage.h" #include "target.h" @@ -393,6 +394,7 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er addAutoReleasedObject(new CopyTaskHandler); addAutoReleasedObject(new ShowInEditorTaskHandler); addAutoReleasedObject(new VcsAnnotateTaskHandler); + addAutoReleasedObject(new RemoveTaskHandler); addAutoReleasedObject(new CoreListener); d->m_outputPane = new AppOutputPane; diff --git a/src/plugins/projectexplorer/projectexplorer.pro b/src/plugins/projectexplorer/projectexplorer.pro index a4bd7003df3..26185070f4a 100644 --- a/src/plugins/projectexplorer/projectexplorer.pro +++ b/src/plugins/projectexplorer/projectexplorer.pro @@ -15,6 +15,7 @@ HEADERS += projectexplorer.h \ gcctoolchain.h \ projectexplorer_export.h \ projectwindow.h \ + removetaskhandler.h \ kit.h \ kitchooser.h \ kitconfigwidget.h \ @@ -134,6 +135,7 @@ SOURCES += projectexplorer.cpp \ clangparser.cpp \ gcctoolchain.cpp \ projectwindow.cpp \ + removetaskhandler.cpp \ kit.cpp \ kitchooser.cpp \ kitinformation.cpp \ diff --git a/src/plugins/projectexplorer/projectexplorer.qbs b/src/plugins/projectexplorer/projectexplorer.qbs index c008f7be1b3..88c31b89aca 100644 --- a/src/plugins/projectexplorer/projectexplorer.qbs +++ b/src/plugins/projectexplorer/projectexplorer.qbs @@ -178,6 +178,8 @@ QtcPlugin { "projectwizardpage.cpp", "projectwizardpage.h", "projectwizardpage.ui", + "removetaskhandler.cpp", + "removetaskhandler.h", "runconfiguration.cpp", "runconfiguration.h", "runconfigurationmodel.cpp", diff --git a/src/plugins/projectexplorer/removetaskhandler.cpp b/src/plugins/projectexplorer/removetaskhandler.cpp new file mode 100644 index 00000000000..a0cff835942 --- /dev/null +++ b/src/plugins/projectexplorer/removetaskhandler.cpp @@ -0,0 +1,56 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: http://www.qt-project.org/ +** +** +** GNU Lesser General Public License Usage +** +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this file. +** Please review the following information to ensure the GNU Lesser General +** Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** Other Usage +** +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +**************************************************************************/ + +#include "removetaskhandler.h" + +#include "projectexplorer.h" +#include "task.h" +#include "taskhub.h" + +#include <coreplugin/coreconstants.h> + +#include <QDir> +#include <QAction> +#include <QApplication> +#include <QClipboard> + +using namespace ProjectExplorer::Internal; + +void RemoveTaskHandler::handle(const ProjectExplorer::Task &task) +{ + ProjectExplorerPlugin::instance()->taskHub()->removeTask(task); +} + +QAction *RemoveTaskHandler::createAction(QObject *parent) const +{ + QAction *removeAction = new QAction(tr("Remove", "Name of the action triggering the removetaskhandler"), parent); + removeAction->setToolTip(tr("Remove task from the task list")); + return removeAction; +} diff --git a/src/plugins/projectexplorer/removetaskhandler.h b/src/plugins/projectexplorer/removetaskhandler.h new file mode 100644 index 00000000000..e13258e9bfa --- /dev/null +++ b/src/plugins/projectexplorer/removetaskhandler.h @@ -0,0 +1,54 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: http://www.qt-project.org/ +** +** +** GNU Lesser General Public License Usage +** +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this file. +** Please review the following information to ensure the GNU Lesser General +** Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** Other Usage +** +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +**************************************************************************/ + +#ifndef PROJECTEXPLORER_REMOVETASKHANDLER_H +#define PROJECTEXPLORER_REMOVETASKHANDLER_H + +#include "itaskhandler.h" + +namespace ProjectExplorer { +namespace Internal { + +class RemoveTaskHandler : public ITaskHandler +{ + Q_OBJECT + +public: + RemoveTaskHandler() {} + + bool canHandle(const Task &) const { return true; } + void handle(const Task &task); + QAction *createAction(QObject *parent) const; +}; + +} // namespace Internal +} // namespace ProjectExplorer + +#endif // PROJECTEXPLORER_REMOVETASKHANDLER_H -- GitLab