From 64ade99b0ce99544d1b2af6592868f39d5236dcc Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 4 May 2012 20:10:01 +0200 Subject: [PATCH] itaskhandler: interface cleanup Change-Id: Ib85950a4715d6eaf4225bd8dbcc0c2a91b20dc1d Reviewed-by: Tobias Hunger --- src/plugins/debugger/gdb/gdbengine.cpp | 8 ++++---- src/plugins/projectexplorer/copytaskhandler.cpp | 6 +----- src/plugins/projectexplorer/copytaskhandler.h | 5 +++-- src/plugins/projectexplorer/itaskhandler.h | 17 ++++------------- .../projectexplorer/projectexplorerconstants.h | 4 ---- .../projectexplorer/showineditortaskhandler.cpp | 8 ++------ .../projectexplorer/showineditortaskhandler.h | 7 ++++--- .../projectexplorer/showoutputtaskhandler.cpp | 5 ++--- .../projectexplorer/showoutputtaskhandler.h | 6 +++--- src/plugins/projectexplorer/taskwindow.cpp | 2 +- .../projectexplorer/vcsannotatetaskhandler.cpp | 8 ++------ .../projectexplorer/vcsannotatetaskhandler.h | 10 +++------- src/plugins/tasklist/stopmonitoringhandler.cpp | 11 ++--------- src/plugins/tasklist/stopmonitoringhandler.h | 7 +++---- 14 files changed, 34 insertions(+), 70 deletions(-) diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index b01040a62a0..8ef024d6127 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -197,11 +197,11 @@ public: class DebugInfoTaskHandler : public ProjectExplorer::ITaskHandler { public: - DebugInfoTaskHandler(GdbEngine *engine) - : ITaskHandler(_("Debuginfo")), m_engine(engine) + explicit DebugInfoTaskHandler(GdbEngine *engine) + : m_engine(engine) {} - bool canHandle(const Task &task) + bool canHandle(const Task &task) const { return m_debugInfoTasks.contains(task.taskId); } @@ -216,7 +216,7 @@ public: m_debugInfoTasks[id] = task; } - QAction *createAction(QObject *parent = 0) + QAction *createAction(QObject *parent) const { QAction *action = new QAction(DebuggerPlugin::tr("Install &Debug Information"), parent); action->setToolTip(DebuggerPlugin::tr("This tries to install missing debug information.")); diff --git a/src/plugins/projectexplorer/copytaskhandler.cpp b/src/plugins/projectexplorer/copytaskhandler.cpp index eb3b4db6054..952d295b4dd 100644 --- a/src/plugins/projectexplorer/copytaskhandler.cpp +++ b/src/plugins/projectexplorer/copytaskhandler.cpp @@ -43,10 +43,6 @@ using namespace ProjectExplorer::Internal; -CopyTaskHandler::CopyTaskHandler() : - ITaskHandler(QLatin1String(Core::Constants::COPY)) -{ } - void CopyTaskHandler::handle(const ProjectExplorer::Task &task) { QString type; @@ -68,7 +64,7 @@ void CopyTaskHandler::handle(const ProjectExplorer::Task &task) + type + task.description); } -QAction *CopyTaskHandler::createAction(QObject *parent) +QAction *CopyTaskHandler::createAction(QObject *parent) const { QAction *copyAction = new QAction(tr("&Copy", "Name of the action triggering the copytaskhandler"), parent); copyAction->setToolTip(tr("Copy task to clipboard")); diff --git a/src/plugins/projectexplorer/copytaskhandler.h b/src/plugins/projectexplorer/copytaskhandler.h index a3199065bd7..efae569d30d 100644 --- a/src/plugins/projectexplorer/copytaskhandler.h +++ b/src/plugins/projectexplorer/copytaskhandler.h @@ -43,10 +43,11 @@ class CopyTaskHandler : public ITaskHandler Q_OBJECT public: - CopyTaskHandler(); + CopyTaskHandler() {} + bool canHandle(const Task &) const { return true; } void handle(const Task &task); - QAction *createAction(QObject *parent = 0); + QAction *createAction(QObject *parent) const; }; } // namespace Internal diff --git a/src/plugins/projectexplorer/itaskhandler.h b/src/plugins/projectexplorer/itaskhandler.h index a43dd7e7a58..e1c2a9a804e 100644 --- a/src/plugins/projectexplorer/itaskhandler.h +++ b/src/plugins/projectexplorer/itaskhandler.h @@ -50,21 +50,12 @@ class PROJECTEXPLORER_EXPORT ITaskHandler : public QObject Q_OBJECT public: - explicit ITaskHandler(const QString &id) : - m_id(id) - { } + explicit ITaskHandler() {} - QString id() const - { - return m_id; - } - - virtual bool canHandle(const Task &) { return true; } + virtual bool isDefaultHandler() const { return false; } + virtual bool canHandle(const Task &) const = 0; virtual void handle(const Task &) = 0; - virtual QAction *createAction(QObject *parent = 0) = 0; - -private: - const QString m_id; + virtual QAction *createAction(QObject *parent) const = 0; }; } // namespace ProjectExplorer diff --git a/src/plugins/projectexplorer/projectexplorerconstants.h b/src/plugins/projectexplorer/projectexplorerconstants.h index 6624fbf1acc..c2021f993c6 100644 --- a/src/plugins/projectexplorer/projectexplorerconstants.h +++ b/src/plugins/projectexplorer/projectexplorerconstants.h @@ -84,10 +84,6 @@ const char RENAMEFILE[] = "ProjectExplorer.RenameFile"; const char SETSTARTUP[] = "ProjectExplorer.SetStartup"; const char PROJECTTREE_COLLAPSE_ALL[] = "ProjectExplorer.CollapseAll"; -const char SHOW_TASK_IN_EDITOR[] = "ProjectExplorer.ShowTaskInEditor"; -const char VCS_ANNOTATE_TASK[] = "ProjectExplorer.VcsAnnotateTask"; -const char SHOW_TASK_OUTPUT[] = "ProjectExplorer.ShowTaskOutput"; - const char SELECTTARGET[] = "ProjectExplorer.SelectTarget"; const char SELECTTARGETQUICK[] = "ProjectExplorer.SelectTargetQuick"; diff --git a/src/plugins/projectexplorer/showineditortaskhandler.cpp b/src/plugins/projectexplorer/showineditortaskhandler.cpp index 00aaa2697bc..588af528ee1 100644 --- a/src/plugins/projectexplorer/showineditortaskhandler.cpp +++ b/src/plugins/projectexplorer/showineditortaskhandler.cpp @@ -42,11 +42,7 @@ using namespace ProjectExplorer::Internal; -ShowInEditorTaskHandler::ShowInEditorTaskHandler() : - ITaskHandler(QLatin1String(Constants::SHOW_TASK_IN_EDITOR)) -{ } - -bool ShowInEditorTaskHandler::canHandle(const ProjectExplorer::Task &task) +bool ShowInEditorTaskHandler::canHandle(const ProjectExplorer::Task &task) const { if (task.file.isEmpty()) return false; @@ -60,7 +56,7 @@ void ShowInEditorTaskHandler::handle(const ProjectExplorer::Task &task) TextEditor::BaseTextEditorWidget::openEditorAt(fi.canonicalFilePath(), task.movedLine); } -QAction *ShowInEditorTaskHandler::createAction(QObject *parent) +QAction *ShowInEditorTaskHandler::createAction(QObject *parent) const { QAction *showAction = new QAction(tr("&Show in Editor"), parent); showAction->setToolTip(tr("Show task location in an editor.")); diff --git a/src/plugins/projectexplorer/showineditortaskhandler.h b/src/plugins/projectexplorer/showineditortaskhandler.h index deb175c7875..23bca2281f1 100644 --- a/src/plugins/projectexplorer/showineditortaskhandler.h +++ b/src/plugins/projectexplorer/showineditortaskhandler.h @@ -43,11 +43,12 @@ class ShowInEditorTaskHandler : public ITaskHandler Q_OBJECT public: - ShowInEditorTaskHandler(); + ShowInEditorTaskHandler() {} - bool canHandle(const Task &); + bool isDefaultHandler() const { return true; } + bool canHandle(const Task &) const; void handle(const Task &task); - QAction *createAction(QObject *parent = 0); + QAction *createAction(QObject *parent ) const; }; } // namespace Internal diff --git a/src/plugins/projectexplorer/showoutputtaskhandler.cpp b/src/plugins/projectexplorer/showoutputtaskhandler.cpp index 5e7da532335..a5ffdf1958c 100644 --- a/src/plugins/projectexplorer/showoutputtaskhandler.cpp +++ b/src/plugins/projectexplorer/showoutputtaskhandler.cpp @@ -42,13 +42,12 @@ using namespace ProjectExplorer::Internal; ShowOutputTaskHandler::ShowOutputTaskHandler(CompileOutputWindow *window) : - ITaskHandler(QLatin1String(Constants::SHOW_TASK_OUTPUT)), m_window(window) { Q_ASSERT(m_window); } -bool ShowOutputTaskHandler::canHandle(const ProjectExplorer::Task &task) +bool ShowOutputTaskHandler::canHandle(const ProjectExplorer::Task &task) const { return m_window->knowsPositionOf(task); } @@ -60,7 +59,7 @@ void ShowOutputTaskHandler::handle(const ProjectExplorer::Task &task) m_window->showPositionOf(task); } -QAction *ShowOutputTaskHandler::createAction(QObject *parent) +QAction *ShowOutputTaskHandler::createAction(QObject *parent) const { QAction *outputAction = new QAction(tr("Show &Output"), parent); outputAction->setToolTip(tr("Show output generating this issue.")); diff --git a/src/plugins/projectexplorer/showoutputtaskhandler.h b/src/plugins/projectexplorer/showoutputtaskhandler.h index 487cd4efcfb..c8e08493ded 100644 --- a/src/plugins/projectexplorer/showoutputtaskhandler.h +++ b/src/plugins/projectexplorer/showoutputtaskhandler.h @@ -45,11 +45,11 @@ class ShowOutputTaskHandler : public ITaskHandler Q_OBJECT public: - ShowOutputTaskHandler(CompileOutputWindow *); + explicit ShowOutputTaskHandler(CompileOutputWindow *window); - bool canHandle(const Task &); + bool canHandle(const Task &) const; void handle(const Task &task); - QAction *createAction(QObject *parent = 0); + QAction *createAction(QObject *parent) const; private: CompileOutputWindow * m_window; diff --git a/src/plugins/projectexplorer/taskwindow.cpp b/src/plugins/projectexplorer/taskwindow.cpp index 41dea750609..1c500b63a02 100644 --- a/src/plugins/projectexplorer/taskwindow.cpp +++ b/src/plugins/projectexplorer/taskwindow.cpp @@ -427,7 +427,7 @@ void TaskWindow::triggerDefaultHandler(const QModelIndex &index) if (!d->m_defaultHandler) { QList handlers = ExtensionSystem::PluginManager::instance()->getObjects(); foreach(ITaskHandler *handler, handlers) { - if (handler->id() == QLatin1String(Constants::SHOW_TASK_IN_EDITOR)) { + if (handler->isDefaultHandler()) { d->m_defaultHandler = handler; break; } diff --git a/src/plugins/projectexplorer/vcsannotatetaskhandler.cpp b/src/plugins/projectexplorer/vcsannotatetaskhandler.cpp index 2f5ea948589..0e74617fb97 100644 --- a/src/plugins/projectexplorer/vcsannotatetaskhandler.cpp +++ b/src/plugins/projectexplorer/vcsannotatetaskhandler.cpp @@ -45,11 +45,7 @@ using namespace ProjectExplorer::Internal; -VcsAnnotateTaskHandler::VcsAnnotateTaskHandler() : - ITaskHandler(QLatin1String(Constants::VCS_ANNOTATE_TASK)) -{ } - -bool VcsAnnotateTaskHandler::canHandle(const ProjectExplorer::Task &task) +bool VcsAnnotateTaskHandler::canHandle(const ProjectExplorer::Task &task) const { QFileInfo fi(task.file.toFileInfo()); if (!fi.exists() || !fi.isFile() || !fi.isReadable()) @@ -69,7 +65,7 @@ void VcsAnnotateTaskHandler::handle(const ProjectExplorer::Task &task) vc->vcsAnnotate(fi.absoluteFilePath(), task.movedLine); } -QAction *VcsAnnotateTaskHandler::createAction(QObject *parent) +QAction *VcsAnnotateTaskHandler::createAction(QObject *parent) const { QAction *vcsannotateAction = new QAction(tr("&Annotate"), parent); vcsannotateAction->setToolTip(tr("Annotate using version control system")); diff --git a/src/plugins/projectexplorer/vcsannotatetaskhandler.h b/src/plugins/projectexplorer/vcsannotatetaskhandler.h index 1afacc5bb62..9410f0b49bf 100644 --- a/src/plugins/projectexplorer/vcsannotatetaskhandler.h +++ b/src/plugins/projectexplorer/vcsannotatetaskhandler.h @@ -35,10 +35,6 @@ #include "itaskhandler.h" -namespace Core { -class IVersionControl; -} - namespace ProjectExplorer { namespace Internal { @@ -47,11 +43,11 @@ class VcsAnnotateTaskHandler : public ITaskHandler Q_OBJECT public: - VcsAnnotateTaskHandler(); + VcsAnnotateTaskHandler() {} - bool canHandle(const Task &); + bool canHandle(const Task &) const; void handle(const Task &task); - QAction *createAction(QObject *parent = 0); + QAction *createAction(QObject *parent) const; }; } // namespace Internal diff --git a/src/plugins/tasklist/stopmonitoringhandler.cpp b/src/plugins/tasklist/stopmonitoringhandler.cpp index f0b57ea3f2c..cd89ad7e658 100644 --- a/src/plugins/tasklist/stopmonitoringhandler.cpp +++ b/src/plugins/tasklist/stopmonitoringhandler.cpp @@ -48,14 +48,7 @@ using namespace TaskList::Internal; // StopMonitoringHandler // -------------------------------------------------------------------------- -StopMonitoringHandler::StopMonitoringHandler() : - ProjectExplorer::ITaskHandler(QLatin1String("TaskList.StopMonitoringHandler")) -{ } - -StopMonitoringHandler::~StopMonitoringHandler() -{ } - -bool StopMonitoringHandler::canHandle(const ProjectExplorer::Task &task) +bool StopMonitoringHandler::canHandle(const ProjectExplorer::Task &task) const { return task.category == Core::Id(Constants::TASKLISTTASK_ID); } @@ -67,7 +60,7 @@ void StopMonitoringHandler::handle(const ProjectExplorer::Task &task) TaskList::TaskListPlugin::instance()->stopMonitoring(); } -QAction *StopMonitoringHandler::createAction(QObject *parent) +QAction *StopMonitoringHandler::createAction(QObject *parent) const { const QString text = QCoreApplication::translate("TaskList::Internal::StopMonitoringHandler", diff --git a/src/plugins/tasklist/stopmonitoringhandler.h b/src/plugins/tasklist/stopmonitoringhandler.h index 921f20e66fe..770fa555545 100644 --- a/src/plugins/tasklist/stopmonitoringhandler.h +++ b/src/plugins/tasklist/stopmonitoringhandler.h @@ -41,12 +41,11 @@ namespace Internal { class StopMonitoringHandler : public ProjectExplorer::ITaskHandler { public: - StopMonitoringHandler(); - ~StopMonitoringHandler(); + StopMonitoringHandler() {} - bool canHandle(const ProjectExplorer::Task &); + bool canHandle(const ProjectExplorer::Task &) const; void handle(const ProjectExplorer::Task &); - QAction *createAction(QObject *parent = 0); + QAction *createAction(QObject *parent) const; }; } // namespace Internal