ProjectExplorer: Move RunControl related classes to separate file pair

Change-Id: I5da56f80336673d595907abcc797f628be680cd5
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2019-03-13 08:06:08 +01:00
parent 1fcb8a56e0
commit 164ae1428e
53 changed files with 1928 additions and 1750 deletions

View File

@@ -25,7 +25,7 @@
#pragma once
#include <projectexplorer/runconfiguration.h>
#include <projectexplorer/runcontrol.h>
#include <utils/environment.h>
namespace Android {

View File

@@ -27,7 +27,7 @@
#include "androidconfigurations.h"
#include <projectexplorer/runconfiguration.h>
#include <projectexplorer/runcontrol.h>
#include <qmldebug/qmldebugcommandlinearguments.h>
#include <qmldebug/qmloutputparser.h>

View File

@@ -32,11 +32,15 @@
#include "androidgdbserverkitinformation.h"
#include <debugger/debuggerrunconfigurationaspect.h>
#include <projectexplorer/environmentaspect.h>
#include <projectexplorer/runconfigurationaspects.h>
#include <projectexplorer/runcontrol.h>
#include <projectexplorer/target.h>
#include <qtsupport/baseqtversion.h>
#include <qtsupport/qtkitinformation.h>
#include <utils/hostosinfo.h>
#include <utils/runextensions.h>
#include <utils/synchronousprocess.h>

View File

@@ -28,7 +28,7 @@
#include "autotestconstants.h"
#include <projectexplorer/project.h>
#include <projectexplorer/runconfiguration.h>
#include <projectexplorer/runcontrol.h>
#include <utils/environment.h>
#include <QFutureInterface>

View File

@@ -26,6 +26,7 @@
#include "gdbserverproviderprocess.h"
#include <projectexplorer/devicesupport/idevice.h>
#include <projectexplorer/runcontrol.h>
#include <utils/environment.h>
#include <utils/qtcprocess.h>

View File

@@ -27,7 +27,7 @@
#include "clangfileinfo.h"
#include <projectexplorer/runconfiguration.h>
#include <projectexplorer/runcontrol.h>
#include <cpptools/projectinfo.h>
#include <utils/environment.h>
#include <utils/temporarydirectory.h>

View File

@@ -33,6 +33,7 @@
#include <projectexplorer/localenvironmentaspect.h>
#include <projectexplorer/project.h>
#include <projectexplorer/runconfigurationaspects.h>
#include <projectexplorer/runcontrol.h>
#include <projectexplorer/target.h>
using namespace ProjectExplorer;

View File

@@ -28,7 +28,7 @@
#include <coreplugin/icore.h>
#include <projectexplorer/kitchooser.h>
#include <projectexplorer/kitinformation.h>
#include <projectexplorer/runconfiguration.h>
#include <projectexplorer/runcontrol.h>
#include <ssh/sshconnection.h>
#include <QDialogButtonBox>

View File

@@ -34,7 +34,7 @@
#include <coreplugin/icontext.h>
#include <projectexplorer/devicesupport/idevice.h>
#include <projectexplorer/runconfiguration.h>
#include <projectexplorer/runcontrol.h>
#include <texteditor/textmark.h>
#include <utils/fileutils.h>

View File

@@ -32,6 +32,7 @@
#include <projectexplorer/toolchain.h>
#include <projectexplorer/projectexplorerconstants.h>
#include <projectexplorer/runcontrol.h>
#include <utils/environment.h>
#include <utils/fileutils.h>

View File

@@ -28,7 +28,7 @@
#include <QCoreApplication>
#include <QSocketNotifier>
#include <projectexplorer/runconfiguration.h>
#include <projectexplorer/runcontrol.h>
#include <utils/consoleprocess.h>

View File

@@ -30,6 +30,7 @@
#include <projectexplorer/localenvironmentaspect.h>
#include <projectexplorer/runconfigurationaspects.h>
#include <projectexplorer/runcontrol.h>
#include <utils/environment.h>

View File

@@ -33,6 +33,7 @@
#include <projectexplorer/devicesupport/deviceprocess.h>
#include <projectexplorer/kit.h>
#include <projectexplorer/kitinformation.h>
#include <projectexplorer/runcontrol.h>
#include <projectexplorer/target.h>
#include <utils/qtcprocess.h>

View File

@@ -38,7 +38,7 @@
#include <projectexplorer/buildconfiguration.h>
#include <projectexplorer/kitinformation.h>
#include <projectexplorer/project.h>
#include <projectexplorer/runconfiguration.h>
#include <projectexplorer/runcontrol.h>
#include <projectexplorer/session.h>
#include <projectexplorer/target.h>
#include <projectexplorer/toolchain.h>

View File

@@ -25,7 +25,7 @@
#pragma once
#include <projectexplorer/devicesupport/deviceprocess.h>
#include <projectexplorer/runcontrol.h>
namespace PerfProfiler {
namespace Internal {

View File

@@ -29,9 +29,13 @@
#include <projectexplorer/devicesupport/devicemanager.h>
#include <projectexplorer/kitinformation.h>
#include <projectexplorer/project.h>
#include <projectexplorer/projectexplorerconstants.h>
#include <projectexplorer/runcontrol.h>
#include <projectexplorer/session.h>
#include <projectexplorer/target.h>
#include <utils/qtcassert.h>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QPushButton>

View File

@@ -39,6 +39,7 @@
#include "devicesupport/deviceprocess.h"
#include "projectexplorer.h"
#include "projectexplorersettings.h"
#include "runcontrol.h"
#include <QTextCodec>
#include <QTimer>

View File

@@ -24,10 +24,11 @@
****************************************************************************/
#include "appoutputpane.h"
#include "projectexplorer.h"
#include "projectexplorerconstants.h"
#include "projectexplorericons.h"
#include "runconfiguration.h"
#include "runcontrol.h"
#include "session.h"
#include "windebuginterface.h"
@@ -157,11 +158,11 @@ void TabWidget::slotContextMenuRequested(const QPoint &pos)
emit contextMenuRequested(pos, tabBar()->tabAt(pos));
}
AppOutputPane::RunControlTab::RunControlTab(RunControl *rc, Core::OutputWindow *w) :
runControl(rc), window(w)
AppOutputPane::RunControlTab::RunControlTab(RunControl *runControl, Core::OutputWindow *w) :
runControl(runControl), window(w)
{
if (rc && w)
w->setFormatter(rc->outputFormatter());
if (runControl && w)
w->setFormatter(runControl->outputFormatter());
}
AppOutputPane::AppOutputPane() :

View File

@@ -31,7 +31,7 @@
#include "environmentaspect.h"
#include "localenvironmentaspect.h"
#include "project.h"
#include "runconfigurationaspects.h"
#include "runcontrol.h"
#include "target.h"
#include <coreplugin/icore.h>

View File

@@ -31,7 +31,7 @@
#include "desktopprocesssignaloperation.h"
#include <projectexplorer/projectexplorerconstants.h>
#include <projectexplorer/runconfiguration.h>
#include <projectexplorer/runcontrol.h>
#include <ssh/sshconnection.h>

View File

@@ -26,7 +26,7 @@
#include "desktopdeviceprocess.h"
#include "idevice.h"
#include "../runconfiguration.h"
#include "../runcontrol.h"
#include <utils/environment.h>
#include <utils/qtcassert.h>

View File

@@ -26,7 +26,6 @@
#pragma once
#include "../projectexplorer_export.h"
#include "../runconfiguration.h"
#include <QObject>
#include <QProcess>

View File

@@ -27,7 +27,7 @@
#include "idevice.h"
#include <projectexplorer/runconfiguration.h>
#include <projectexplorer/runcontrol.h>
#include <utils/portlist.h>

View File

@@ -26,7 +26,7 @@
#include "sshdeviceprocess.h"
#include "idevice.h"
#include "../runconfiguration.h"
#include "../runcontrol.h"
#include <ssh/sshconnection.h>
#include <ssh/sshconnectionmanager.h>

View File

@@ -77,6 +77,7 @@ HEADERS += projectexplorer.h \
editorconfiguration.h \
editorsettingspropertiespage.h \
runconfiguration.h \
runcontrol.h \
applicationlauncher.h \
runsettingspropertiespage.h \
projecttreewidget.h \
@@ -226,6 +227,7 @@ SOURCES += projectexplorer.cpp \
editorconfiguration.cpp \
editorsettingspropertiespage.cpp \
runconfiguration.cpp \
runcontrol.cpp \
applicationlauncher.cpp \
runsettingspropertiespage.cpp \
projecttreewidget.cpp \

View File

@@ -128,6 +128,7 @@ Project {
"projectwizardpage.cpp", "projectwizardpage.h", "projectwizardpage.ui",
"removetaskhandler.cpp", "removetaskhandler.h",
"runconfiguration.cpp", "runconfiguration.h",
"runcontrol.cpp", "runcontrol.h",
"runconfigurationaspects.cpp", "runconfigurationaspects.h",
"runsettingspropertiespage.cpp", "runsettingspropertiespage.h",
"selectablefilesmodel.cpp", "selectablefilesmodel.h",

File diff suppressed because it is too large Load Diff

View File

@@ -50,7 +50,7 @@ namespace Utils { class OutputFormatter; }
namespace ProjectExplorer {
class BuildConfiguration;
class GlobalOrProjectAspect;
class Node;
class Runnable;
class RunConfigurationFactory;
class RunConfiguration;
class RunConfigurationCreationInfo;
@@ -129,22 +129,6 @@ private:
ISettingsAspect *m_globalSettings = nullptr; // Not owned.
};
class PROJECTEXPLORER_EXPORT Runnable
{
public:
Runnable() = default;
QString executable;
QString commandLineArguments;
QString workingDirectory;
Utils::Environment environment;
IDevice::ConstPtr device; // Override the kit's device. Keep unset by default.
QHash<Core::Id, QVariant> extraData;
// FIXME: Not necessarily a display name
QString displayName() const { return executable; }
};
// Documentation inside.
class PROJECTEXPLORER_EXPORT RunConfiguration : public StatefulProjectConfiguration
{
@@ -311,239 +295,4 @@ private:
const bool m_decorateTargetName;
};
class PROJECTEXPLORER_EXPORT RunWorker : public QObject
{
Q_OBJECT
public:
explicit RunWorker(RunControl *runControl);
~RunWorker() override;
RunControl *runControl() const;
void addStartDependency(RunWorker *dependency);
void addStopDependency(RunWorker *dependency);
void setId(const QString &id);
void setStartTimeout(int ms, const std::function<void()> &callback = {});
void setStopTimeout(int ms, const std::function<void()> &callback = {});
void recordData(const QString &channel, const QVariant &data);
QVariant recordedData(const QString &channel) const;
// Part of read-only interface of RunControl for convenience.
void appendMessage(const QString &msg, Utils::OutputFormat format, bool appendNewLine = true);
IDevice::ConstPtr device() const;
const Runnable &runnable() const;
Core::Id runMode() const;
// States
void initiateStart();
void reportStarted();
void initiateStop();
void reportStopped();
void reportDone();
void reportFailure(const QString &msg = QString());
void setSupportsReRunning(bool reRunningSupported);
bool supportsReRunning() const;
static QString userMessageForProcessError(QProcess::ProcessError, const QString &programName);
bool isEssential() const;
void setEssential(bool essential);
signals:
void started();
void stopped();
protected:
void virtual start();
void virtual stop();
void virtual onFinished() {}
private:
friend class Internal::RunControlPrivate;
friend class Internal::RunWorkerPrivate;
const std::unique_ptr<Internal::RunWorkerPrivate> d;
};
class PROJECTEXPLORER_EXPORT RunWorkerFactory
{
public:
using WorkerCreator = std::function<RunWorker *(RunControl *)>;
using Constraint = std::function<bool(RunConfiguration *)>;
RunWorkerFactory();
virtual ~RunWorkerFactory();
bool canRun(RunConfiguration *runConfiguration, Core::Id runMode) const;
void setProducer(const WorkerCreator &producer);
void addConstraint(const Constraint &constraint);
void addSupportedRunMode(Core::Id runMode);
WorkerCreator producer() const { return m_producer; }
private:
// FIXME: That's temporary until ownership has been transferred to
// the individual plugins.
friend class ProjectExplorerPlugin;
static void destroyRemainingRunWorkerFactories();
QList<Core::Id> m_supportedRunModes;
QList<Constraint> m_constraints;
WorkerCreator m_producer;
};
/**
* A RunControl controls the running of an application or tool
* on a target device. It controls start and stop, and handles
* application output.
*
* RunControls are created by RunControlFactories.
*/
class PROJECTEXPLORER_EXPORT RunControl : public QObject
{
Q_OBJECT
public:
explicit RunControl(Core::Id mode);
~RunControl() override;
void setRunConfiguration(RunConfiguration *runConfig);
void setTarget(Target *target);
void setKit(Kit *kit);
void initiateStart();
void initiateReStart();
void initiateStop();
void forceStop();
void initiateFinish();
bool promptToStop(bool *optionalPrompt = nullptr) const;
void setPromptToStop(const std::function<bool(bool *)> &promptToStop);
bool supportsReRunning() const;
virtual QString displayName() const;
void setDisplayName(const QString &displayName);
bool isRunning() const;
bool isStarting() const;
bool isStopping() const;
bool isStopped() const;
void setIcon(const Utils::Icon &icon);
Utils::Icon icon() const;
Utils::ProcessHandle applicationProcessHandle() const;
void setApplicationProcessHandle(const Utils::ProcessHandle &handle);
IDevice::ConstPtr device() const;
RunConfiguration *runConfiguration() const; // FIXME: Remove.
// FIXME: Try to cut down to amount of functions.
Target *target() const;
Project *project() const;
Kit *kit() const;
ProjectConfigurationAspect *aspect(Core::Id id) const;
template <typename T> T *aspect() const {
return runConfiguration() ? runConfiguration()->aspect<T>() : nullptr;
}
ISettingsAspect *settings(Core::Id id) const;
QString buildKey() const;
BuildTargetInfo buildTargetInfo() const;
Utils::OutputFormatter *outputFormatter() const;
Core::Id runMode() const;
const Runnable &runnable() const;
void setRunnable(const Runnable &runnable);
static bool showPromptToStopDialog(const QString &title, const QString &text,
const QString &stopButtonText = QString(),
const QString &cancelButtonText = QString(),
bool *prompt = nullptr);
RunWorker *createWorker(Core::Id id);
using WorkerCreator = RunWorkerFactory::WorkerCreator;
using Constraint = RunWorkerFactory::Constraint;
static void registerWorkerCreator(Core::Id id, const WorkerCreator &workerCreator);
static void registerWorker(Core::Id runMode, const WorkerCreator &producer,
const Constraint &constraint = {})
{
auto factory = new RunWorkerFactory;
factory->setProducer(producer);
factory->addSupportedRunMode(runMode);
factory->addConstraint(constraint);
}
template <class Worker>
static void registerWorker(Core::Id runMode, const Constraint &constraint)
{
auto factory = new RunWorkerFactory;
factory->setProducer([](RunControl *rc) { return new Worker(rc); });
factory->addSupportedRunMode(runMode);
factory->addConstraint(constraint);
}
static WorkerCreator producer(RunConfiguration *runConfiguration, Core::Id runMode);
signals:
void appendMessage(const QString &msg, Utils::OutputFormat format);
void aboutToStart();
void started();
void stopped();
void finished();
void applicationProcessHandleChanged(QPrivateSignal); // Use setApplicationProcessHandle
private:
void setDevice(const IDevice::ConstPtr &device);
friend class RunWorker;
friend class Internal::RunWorkerPrivate;
const std::unique_ptr<Internal::RunControlPrivate> d;
};
/**
* A simple TargetRunner for cases where a plain ApplicationLauncher is
* sufficient for running purposes.
*/
class PROJECTEXPLORER_EXPORT SimpleTargetRunner : public RunWorker
{
Q_OBJECT
public:
explicit SimpleTargetRunner(RunControl *runControl);
void setRunnable(const Runnable &runnable);
void setDevice(const IDevice::ConstPtr &device);
IDevice::ConstPtr device() const;
protected:
void start() override;
void stop() override;
private:
void onProcessStarted();
void onProcessFinished(int exitCode, QProcess::ExitStatus status);
void onProcessError(QProcess::ProcessError error);
ApplicationLauncher m_launcher;
Runnable m_runnable;
IDevice::ConstPtr m_device;
bool m_stopReported = false;
bool m_useTerminal = false;
};
} // namespace ProjectExplorer

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,330 @@
/****************************************************************************
**
** Copyright (C) 2019 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qt Creator.
**
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 as published by the Free Software
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
****************************************************************************/
#pragma once
#include "applicationlauncher.h"
#include "buildtargetinfo.h"
#include "devicesupport/idevice.h"
#include "projectexplorerconstants.h"
#include "runconfiguration.h"
#include <utils/environment.h>
#include <utils/port.h>
#include <utils/processhandle.h>
#include <utils/qtcassert.h>
#include <utils/icon.h>
#include <QHash>
#include <QPointer>
#include <QVariant>
#include <QWidget>
#include <functional>
#include <memory>
namespace Utils {
class MacroExpander;
class OutputFormatter;
} // Utils
namespace ProjectExplorer {
class BuildConfiguration;
class GlobalOrProjectAspect;
class Node;
class RunConfigurationFactory;
class RunConfiguration;
class RunConfigurationCreationInfo;
class RunControl;
class RunWorkerFactory;
class Target;
namespace Internal {
class RunControlPrivate;
class RunWorkerPrivate;
} // Internal
class PROJECTEXPLORER_EXPORT Runnable
{
public:
Runnable() = default;
QString executable;
QString commandLineArguments;
QString workingDirectory;
Utils::Environment environment;
IDevice::ConstPtr device; // Override the kit's device. Keep unset by default.
QHash<Core::Id, QVariant> extraData;
// FIXME: Not necessarily a display name
QString displayName() const { return executable; }
};
class PROJECTEXPLORER_EXPORT RunWorker : public QObject
{
Q_OBJECT
public:
explicit RunWorker(RunControl *runControl);
~RunWorker() override;
RunControl *runControl() const;
void addStartDependency(RunWorker *dependency);
void addStopDependency(RunWorker *dependency);
void setId(const QString &id);
void setStartTimeout(int ms, const std::function<void()> &callback = {});
void setStopTimeout(int ms, const std::function<void()> &callback = {});
void recordData(const QString &channel, const QVariant &data);
QVariant recordedData(const QString &channel) const;
// Part of read-only interface of RunControl for convenience.
void appendMessage(const QString &msg, Utils::OutputFormat format, bool appendNewLine = true);
IDevice::ConstPtr device() const;
const Runnable &runnable() const;
Core::Id runMode() const;
// States
void initiateStart();
void reportStarted();
void initiateStop();
void reportStopped();
void reportDone();
void reportFailure(const QString &msg = QString());
void setSupportsReRunning(bool reRunningSupported);
bool supportsReRunning() const;
static QString userMessageForProcessError(QProcess::ProcessError, const QString &programName);
bool isEssential() const;
void setEssential(bool essential);
signals:
void started();
void stopped();
protected:
void virtual start();
void virtual stop();
void virtual onFinished() {}
private:
friend class Internal::RunControlPrivate;
friend class Internal::RunWorkerPrivate;
const std::unique_ptr<Internal::RunWorkerPrivate> d;
};
class PROJECTEXPLORER_EXPORT RunWorkerFactory
{
public:
using WorkerCreator = std::function<RunWorker *(RunControl *)>;
using Constraint = std::function<bool(RunConfiguration *)>;
RunWorkerFactory();
virtual ~RunWorkerFactory();
bool canRun(RunConfiguration *runConfiguration, Core::Id runMode) const;
void setProducer(const WorkerCreator &producer);
void addConstraint(const Constraint &constraint);
void addSupportedRunMode(Core::Id runMode);
WorkerCreator producer() const { return m_producer; }
private:
// FIXME: That's temporary until ownership has been transferred to
// the individual plugins.
friend class ProjectExplorerPlugin;
static void destroyRemainingRunWorkerFactories();
QList<Core::Id> m_supportedRunModes;
QList<Constraint> m_constraints;
WorkerCreator m_producer;
};
/**
* A RunControl controls the running of an application or tool
* on a target device. It controls start and stop, and handles
* application output.
*
* RunControls are created by RunControlFactories.
*/
class PROJECTEXPLORER_EXPORT RunControl : public QObject
{
Q_OBJECT
public:
explicit RunControl(Core::Id mode);
~RunControl() override;
void setRunConfiguration(RunConfiguration *runConfig);
void setTarget(Target *target);
void setKit(Kit *kit);
void initiateStart();
void initiateReStart();
void initiateStop();
void forceStop();
void initiateFinish();
bool promptToStop(bool *optionalPrompt = nullptr) const;
void setPromptToStop(const std::function<bool(bool *)> &promptToStop);
bool supportsReRunning() const;
virtual QString displayName() const;
void setDisplayName(const QString &displayName);
bool isRunning() const;
bool isStarting() const;
bool isStopping() const;
bool isStopped() const;
void setIcon(const Utils::Icon &icon);
Utils::Icon icon() const;
Utils::ProcessHandle applicationProcessHandle() const;
void setApplicationProcessHandle(const Utils::ProcessHandle &handle);
IDevice::ConstPtr device() const;
RunConfiguration *runConfiguration() const; // FIXME: Remove.
// FIXME: Try to cut down to amount of functions.
Target *target() const;
Project *project() const;
Kit *kit() const;
Utils::MacroExpander *macroExpander() const;
ProjectConfigurationAspect *aspect(Core::Id id) const;
template <typename T> T *aspect() const {
return runConfiguration() ? runConfiguration()->aspect<T>() : nullptr;
}
template <typename T>
auto aspectData() -> decltype(T::runData(nullptr, this)) {
if (T *asp = aspect<T>())
return T::runData(asp, this);
return {};
}
ISettingsAspect *settings(Core::Id id) const;
QString buildKey() const;
BuildTargetInfo buildTargetInfo() const;
Utils::OutputFormatter *outputFormatter() const;
Core::Id runMode() const;
const Runnable &runnable() const;
void setRunnable(const Runnable &runnable);
static bool showPromptToStopDialog(const QString &title, const QString &text,
const QString &stopButtonText = QString(),
const QString &cancelButtonText = QString(),
bool *prompt = nullptr);
RunWorker *createWorker(Core::Id id);
using WorkerCreator = RunWorkerFactory::WorkerCreator;
using Constraint = RunWorkerFactory::Constraint;
static void registerWorkerCreator(Core::Id id, const WorkerCreator &workerCreator);
static void registerWorker(Core::Id runMode, const WorkerCreator &producer,
const Constraint &constraint = {})
{
auto factory = new RunWorkerFactory;
factory->setProducer(producer);
factory->addSupportedRunMode(runMode);
factory->addConstraint(constraint);
}
template <class Worker>
static void registerWorker(Core::Id runMode, const Constraint &constraint)
{
auto factory = new RunWorkerFactory;
factory->setProducer([](RunControl *rc) { return new Worker(rc); });
factory->addSupportedRunMode(runMode);
factory->addConstraint(constraint);
}
static WorkerCreator producer(RunConfiguration *runConfiguration, Core::Id runMode);
signals:
void appendMessage(const QString &msg, Utils::OutputFormat format);
void aboutToStart();
void started();
void stopped();
void finished();
void applicationProcessHandleChanged(QPrivateSignal); // Use setApplicationProcessHandle
private:
void setDevice(const IDevice::ConstPtr &device);
friend class RunWorker;
friend class Internal::RunWorkerPrivate;
const std::unique_ptr<Internal::RunControlPrivate> d;
};
/**
* A simple TargetRunner for cases where a plain ApplicationLauncher is
* sufficient for running purposes.
*/
class PROJECTEXPLORER_EXPORT SimpleTargetRunner : public RunWorker
{
Q_OBJECT
public:
explicit SimpleTargetRunner(RunControl *runControl);
void setRunnable(const Runnable &runnable);
void setDevice(const IDevice::ConstPtr &device);
IDevice::ConstPtr device() const;
protected:
void start() override;
void stop() override;
private:
void onProcessStarted();
void onProcessFinished(int exitCode, QProcess::ExitStatus status);
void onProcessError(QProcess::ProcessError error);
ApplicationLauncher m_launcher;
Runnable m_runnable;
IDevice::ConstPtr m_device;
bool m_stopReported = false;
bool m_useTerminal = false;
};
} // namespace ProjectExplorer

View File

@@ -29,7 +29,7 @@
#include <QDialog>
#include <QTime>
#include "runconfiguration.h"
#include "runcontrol.h"
QT_BEGIN_NAMESPACE
class QLabel;

View File

@@ -39,6 +39,7 @@
#include <projectexplorer/buildtargetinfo.h>
#include <projectexplorer/kitmanager.h>
#include <projectexplorer/localenvironmentaspect.h>
#include <projectexplorer/runcontrol.h>
#include <projectexplorer/runconfiguration.h>
#include <projectexplorer/runconfigurationaspects.h>
#include <projectexplorer/project.h>

View File

@@ -32,6 +32,7 @@
#include <projectexplorer/deploymentdata.h>
#include <projectexplorer/localenvironmentaspect.h>
#include <projectexplorer/project.h>
#include <projectexplorer/runcontrol.h>
#include <projectexplorer/runconfigurationaspects.h>
#include <projectexplorer/target.h>

View File

@@ -31,6 +31,7 @@
#include <projectexplorer/project.h>
#include <projectexplorer/projectnodes.h>
#include <projectexplorer/runconfigurationaspects.h>
#include <projectexplorer/runcontrol.h>
#include <projectexplorer/target.h>
#include <qtsupport/qtkitinformation.h>

View File

@@ -25,9 +25,10 @@
#pragma once
#include <projectexplorer/runconfiguration.h>
#include <projectexplorer/runcontrol.h>
#include <extensionsystem/iplugin.h>
#include <qmljs/qmljsdialect.h>
#include <QUrl>
#include <QThread>

View File

@@ -27,7 +27,7 @@
#include "qmlprofilerstatemanager.h"
#include <projectexplorer/runconfiguration.h>
#include <projectexplorer/runcontrol.h>
#include <utils/outputformat.h>
#include <utils/port.h>

View File

@@ -29,7 +29,7 @@
#include <coreplugin/icore.h>
#include <projectexplorer/kit.h>
#include <projectexplorer/kitmanager.h>
#include <projectexplorer/runconfiguration.h>
#include <projectexplorer/runcontrol.h>
#include <qmlprofiler/qmlprofilerattachdialog.h>
#include <qmlprofiler/qmlprofilerclientmanager.h>
#include <qmlprofiler/qmlprofilermodelmanager.h>

View File

@@ -34,6 +34,7 @@
#include <projectexplorer/kitinformation.h>
#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/runcontrol.h>
#include <projectexplorer/target.h>
#include <qtsupport/qtkitinformation.h>

View File

@@ -34,6 +34,7 @@
#include "qnxdevicewizard.h"
#include <projectexplorer/devicesupport/sshdeviceprocess.h>
#include <projectexplorer/runcontrol.h>
#include <ssh/sshconnection.h>
#include <utils/port.h>

View File

@@ -26,6 +26,7 @@
#include "qnxdeviceprocess.h"
#include <projectexplorer/devicesupport/sshdeviceprocess.h>
#include <projectexplorer/runcontrol.h>
#include <utils/qtcprocess.h>

View File

@@ -27,6 +27,8 @@
#include "qnxconstants.h"
#include <projectexplorer/runcontrol.h>
using namespace ProjectExplorer;
using namespace RemoteLinux;

View File

@@ -27,7 +27,7 @@
#include <QObject>
#include <projectexplorer/runconfiguration.h>
#include <projectexplorer/runcontrol.h>
#include <remotelinux/linuxdevice.h>
#include <utils/outputformat.h>

View File

@@ -37,9 +37,12 @@
#include <coreplugin/icore.h>
#include <coreplugin/id.h>
#include <coreplugin/messagemanager.h>
#include <projectexplorer/devicesupport/sshdeviceprocesslist.h>
#include <projectexplorer/runconfiguration.h>
#include <projectexplorer/runcontrol.h>
#include <ssh/sshremoteprocessrunner.h>
#include <utils/algorithm.h>
#include <utils/hostosinfo.h>
#include <utils/port.h>

View File

@@ -25,7 +25,7 @@
#include "linuxdeviceprocess.h"
#include <projectexplorer/runconfiguration.h>
#include <projectexplorer/runcontrol.h>
#include <utils/environment.h>
#include <utils/qtcprocess.h>

View File

@@ -30,6 +30,7 @@
#include "remotelinuxx11forwardingaspect.h"
#include <projectexplorer/runconfigurationaspects.h>
#include <projectexplorer/runcontrol.h>
#include <projectexplorer/target.h>
#include <qtsupport/qtoutputformatter.h>

View File

@@ -27,7 +27,7 @@
#include <projectexplorer/devicesupport/deviceprocess.h>
#include <projectexplorer/devicesupport/idevice.h>
#include <projectexplorer/runconfiguration.h>
#include <projectexplorer/runcontrol.h>
using namespace ProjectExplorer;

View File

@@ -27,7 +27,7 @@
#include "remotelinuxkillappservice.h"
#include <projectexplorer/runconfiguration.h>
#include <projectexplorer/runcontrol.h>
#include <projectexplorer/target.h>
#include <utils/qtcassert.h>

View File

@@ -34,6 +34,7 @@
#include <projectexplorer/kitinformation.h>
#include <projectexplorer/project.h>
#include <projectexplorer/runconfigurationaspects.h>
#include <projectexplorer/runcontrol.h>
#include <projectexplorer/target.h>
#include <qtsupport/qtoutputformatter.h>

View File

@@ -28,7 +28,7 @@
#include <ssh/sshremoteprocess.h>
#include <ssh/sshconnection.h>
#include <projectexplorer/runconfiguration.h>
#include <projectexplorer/runcontrol.h>
#include <QProcess>

View File

@@ -26,7 +26,7 @@
#pragma once
#include <projectexplorer/runconfiguration.h>
#include <projectexplorer/runcontrol.h>
#include <utils/environment.h>
#include <valgrind/valgrindrunner.h>
#include <valgrind/valgrindsettings.h>

View File

@@ -26,7 +26,7 @@
#pragma once
#include <projectexplorer/runconfiguration.h>
#include <projectexplorer/runcontrol.h>
#include <utils/outputformat.h>

View File

@@ -27,7 +27,7 @@
#include "winrtdevice.h"
#include <projectexplorer/runconfiguration.h>
#include <projectexplorer/runcontrol.h>
#include <utils/qtcprocess.h>
namespace WinRt {

View File

@@ -29,12 +29,14 @@
#include "winrtrunconfiguration.h"
#include <coreplugin/idocument.h>
#include <projectexplorer/buildtargetinfo.h>
#include <projectexplorer/devicesupport/idevice.h>
#include <projectexplorer/buildconfiguration.h>
#include <projectexplorer/project.h>
#include <projectexplorer/runconfiguration.h>
#include <projectexplorer/runcontrol.h>
#include <projectexplorer/target.h>
#include <qtsupport/baseqtversion.h>
#include <qtsupport/qtkitinformation.h>
#include <utils/qtcprocess.h>