diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 9b0f5db2d2b701c7257b55db13ffa100e5935683..50caa284ebffa3529489b779a6676fe941753ab4 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 a4bd7003df395ba4615de11203a375c7795f5863..26185070f4af9b3827593d5fa5dc61f28ca71d13 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 c008f7be1b3e514c40b0daa1b2ecabaca37f1dd5..88c31b89aca4938b11ef0dd8c91bf6e20c58c295 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 0000000000000000000000000000000000000000..a0cff83594247c7fc0cdf6408becd195fcbadf9d --- /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 0000000000000000000000000000000000000000..e13258e9bfa1bdf41c35884c651a5bf0f0d3ae31 --- /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