diff options
author | Eike Ziller <[email protected]> | 2018-03-13 11:25:38 +0100 |
---|---|---|
committer | Eike Ziller <[email protected]> | 2018-03-13 11:25:38 +0100 |
commit | 0b10ecc718accd8c4d472ba8f3ed5ea6f1856e51 (patch) | |
tree | 67f63d2b4aa20195910728659cd3c0ba2cb580eb /src/plugins/debugger/debuggerplugin.cpp | |
parent | f1985df55dfa81f184c9d29df6cfbb353bf77ffc (diff) | |
parent | 0bcc983cdbb74baebccfdb09f7d2ffb22ebf950d (diff) |
Merge remote-tracking branch 'origin/4.6'
Conflicts:
src/plugins/cmakeprojectmanager/cmakeproject.h
src/plugins/debugger/debuggerplugin.cpp
src/plugins/ios/iosrunfactories.cpp
src/plugins/nim/project/nimproject.h
src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp
src/plugins/qmakeandroidsupport/qmakeandroidrunfactories.cpp
src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.cpp
src/plugins/qmlprojectmanager/qmlproject.h
src/plugins/qnx/qnxrunconfigurationfactory.cpp
src/plugins/qtsupport/exampleslistmodel.cpp
src/plugins/winrt/winrtrunfactories.cpp
Change-Id: Ib029fdbaa65270426332f5edd6e90264be5fb539
Diffstat (limited to 'src/plugins/debugger/debuggerplugin.cpp')
-rw-r--r-- | src/plugins/debugger/debuggerplugin.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index de8f1ce0ed3..2d3adbc7dc3 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -94,6 +94,7 @@ #include <projectexplorer/buildmanager.h> #include <projectexplorer/devicesupport/deviceprocessesdialog.h> #include <projectexplorer/devicesupport/deviceprocesslist.h> +#include <projectexplorer/itaskhandler.h> #include <projectexplorer/project.h> #include <projectexplorer/projectexplorer.h> #include <projectexplorer/projectexplorericons.h> @@ -571,6 +572,42 @@ static Kit *findUniversalCdbKit() /////////////////////////////////////////////////////////////////////// // +// Debuginfo Taskhandler +// +/////////////////////////////////////////////////////////////////////// + +class DebugInfoTaskHandler : public ITaskHandler +{ +public: + bool canHandle(const Task &task) const final + { + return m_debugInfoTasks.contains(task.taskId); + } + + void handle(const Task &task) final + { + QString cmd = m_debugInfoTasks.value(task.taskId); + QProcess::startDetached(cmd); + } + + void addTask(unsigned id, const QString &cmd) + { + m_debugInfoTasks[id] = cmd; + } + + QAction *createAction(QObject *parent) const final + { + QAction *action = new QAction(DebuggerPlugin::tr("Install &Debug Information"), parent); + action->setToolTip(DebuggerPlugin::tr("Tries to install missing debug information.")); + return action; + } + +private: + QHash<unsigned, QString> m_debugInfoTasks; +}; + +/////////////////////////////////////////////////////////////////////// +// // DebuggerPluginPrivate // /////////////////////////////////////////////////////////////////////// @@ -1022,6 +1059,8 @@ public: DebuggerItemManager m_debuggerItemManager; QList<IOptionsPage *> m_optionPages; IContext m_debugModeContext; + + DebugInfoTaskHandler m_debugInfoTaskHandler; }; DebuggerPluginPrivate::DebuggerPluginPrivate(DebuggerPlugin *plugin) @@ -2947,6 +2986,11 @@ QMessageBox *showMessageBox(int icon, const QString &title, return mb; } +void addDebugInfoTask(unsigned id, const QString &cmd) +{ + dd->m_debugInfoTaskHandler.addTask(id, cmd); +} + bool isReverseDebuggingEnabled() { static bool enabled = qEnvironmentVariableIsSet("QTC_DEBUGGER_ENABLE_REVERSE"); |