From feaa2b2c097603bee7eab50c2882dfa3b919f6fd Mon Sep 17 00:00:00 2001 From: Tobias Hunger <tobias.hunger@nokia.com> Date: Fri, 18 Jun 2010 11:16:28 +0200 Subject: [PATCH] Add task handler that copies task data to the clipboard * Add task handler that enables copying task data into the clipboard * This is not yet used! --- .../projectexplorer/copytaskhandler.cpp | 70 +++++++++++++++++++ src/plugins/projectexplorer/copytaskhandler.h | 52 ++++++++++++++ .../projectexplorer/projectexplorer.cpp | 2 + .../projectexplorer/projectexplorer.pro | 2 + 4 files changed, 126 insertions(+) create mode 100644 src/plugins/projectexplorer/copytaskhandler.cpp create mode 100644 src/plugins/projectexplorer/copytaskhandler.h diff --git a/src/plugins/projectexplorer/copytaskhandler.cpp b/src/plugins/projectexplorer/copytaskhandler.cpp new file mode 100644 index 00000000000..8694050cd2f --- /dev/null +++ b/src/plugins/projectexplorer/copytaskhandler.cpp @@ -0,0 +1,70 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, 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. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** +**************************************************************************/ + +#include "copytaskhandler.h" + +#include "task.h" + +#include <coreplugin/coreconstants.h> + +#include <QtGui/QAction> +#include <QtGui/QApplication> +#include <QtGui/QClipboard> + +using namespace ProjectExplorer::Internal; + +CopyTaskHandler::CopyTaskHandler() : + ITaskHandler(QLatin1String(Core::Constants::COPY)) +{ } + +void CopyTaskHandler::handle(const ProjectExplorer::Task &task) +{ + QString type; + switch (task.type) { + case Task::Error: + type = tr("error: ", "Task is of type error"); + break; + case Task::Warning: + type = tr("warning: ", "Task is of type warning"); + break; + default: + break; + } + + QApplication::clipboard()->setText(task.file + ':' + + QString::number(task.line) + ": " + + type + task.description); +} + +QAction *CopyTaskHandler::createAction(QObject *parent) +{ + QAction *copyAction = new QAction(tr("&Copy", "Name of the action triggering the copytaskhandler"), parent); + copyAction->setToolTip(tr("Copy task to clipboard")); + return copyAction; +} diff --git a/src/plugins/projectexplorer/copytaskhandler.h b/src/plugins/projectexplorer/copytaskhandler.h new file mode 100644 index 00000000000..0d8de5c1991 --- /dev/null +++ b/src/plugins/projectexplorer/copytaskhandler.h @@ -0,0 +1,52 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, 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. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** +**************************************************************************/ + +#ifndef PROJECTEXPLORER_COPYTASKHANDLER_H +#define PROJECTEXPLORER_COPYTASKHANDLER_H + +#include "projectexplorer_export.h" + +#include "itaskhandler.h" + +namespace ProjectExplorer { +namespace Internal { + +class PROJECTEXPLORER_EXPORT CopyTaskHandler : public ITaskHandler +{ +public: + CopyTaskHandler(); + + void handle(const Task &task); + QAction *createAction(QObject *parent = 0); +}; + +} // namespace Internal +} // namespace ProjectExplorer + +#endif // PROJECTEXPLORER_COPYTASKHANDLER_H diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index f2bf78cd7af..c6a888af6ad 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -33,6 +33,7 @@ #include "projectexplorersettings.h" #include "target.h" #include "targetsettingspanel.h" +#include "copytaskhandler.h" #include "showineditortaskhandler.h" #include "applicationrunconfiguration.h" #include "allprojectsfilter.h" @@ -280,6 +281,7 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er addAutoReleasedObject(d->m_projectsMode); d->m_proWindow->layout()->addWidget(new Core::FindToolBarPlaceHolder(d->m_proWindow)); + addAutoReleasedObject(new CopyTaskHandler); addAutoReleasedObject(new ShowInEditorTaskHandler); d->m_buildManager = new BuildManager(this); diff --git a/src/plugins/projectexplorer/projectexplorer.pro b/src/plugins/projectexplorer/projectexplorer.pro index 3964d145642..5ccab95084c 100644 --- a/src/plugins/projectexplorer/projectexplorer.pro +++ b/src/plugins/projectexplorer/projectexplorer.pro @@ -18,6 +18,7 @@ HEADERS += projectexplorer.h \ targetsettingspanel.h \ task.h \ itaskhandler.h \ + copytaskhandler.h \ showineditortaskhandler.h \ taskwindow.h \ outputwindow.h \ @@ -97,6 +98,7 @@ SOURCES += projectexplorer.cpp \ projectconfiguration.cpp \ gnumakeparser.cpp \ task.cpp \ + copytaskhandler.cpp \ showineditortaskhandler.cpp \ taskwindow.cpp \ outputwindow.cpp \ -- GitLab