forked from qt-creator/qt-creator
RemoteLinux: Use new Run:setRunnableModifier
Change-Id: If5f509530f187dde6c6f5f8dc8b03ec8ab16bbfc Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -41,7 +41,20 @@ using namespace Utils;
|
|||||||
namespace RemoteLinux {
|
namespace RemoteLinux {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
RemoteLinuxCustomRunConfiguration::RemoteLinuxCustomRunConfiguration(Target *target, Utils::Id id)
|
class RemoteLinuxCustomRunConfiguration : public RunConfiguration
|
||||||
|
{
|
||||||
|
Q_DECLARE_TR_FUNCTIONS(RemoteLinux::Internal::RemoteLinuxCustomRunConfiguration)
|
||||||
|
|
||||||
|
public:
|
||||||
|
RemoteLinuxCustomRunConfiguration(Target *target, Id id);
|
||||||
|
|
||||||
|
QString runConfigDefaultDisplayName();
|
||||||
|
|
||||||
|
private:
|
||||||
|
Tasks checkForIssues() const override;
|
||||||
|
};
|
||||||
|
|
||||||
|
RemoteLinuxCustomRunConfiguration::RemoteLinuxCustomRunConfiguration(Target *target, Id id)
|
||||||
: RunConfiguration(target, id)
|
: RunConfiguration(target, id)
|
||||||
{
|
{
|
||||||
auto exeAspect = addAspect<ExecutableAspect>();
|
auto exeAspect = addAspect<ExecutableAspect>();
|
||||||
@@ -62,9 +75,14 @@ RemoteLinuxCustomRunConfiguration::RemoteLinuxCustomRunConfiguration(Target *tar
|
|||||||
if (HostOsInfo::isAnyUnixHost())
|
if (HostOsInfo::isAnyUnixHost())
|
||||||
addAspect<TerminalAspect>();
|
addAspect<TerminalAspect>();
|
||||||
addAspect<RemoteLinuxEnvironmentAspect>(target);
|
addAspect<RemoteLinuxEnvironmentAspect>(target);
|
||||||
if (Utils::HostOsInfo::isAnyUnixHost())
|
if (HostOsInfo::isAnyUnixHost())
|
||||||
addAspect<X11ForwardingAspect>();
|
addAspect<X11ForwardingAspect>();
|
||||||
|
|
||||||
|
setRunnableModifier([this](Runnable &r) {
|
||||||
|
if (const auto * const forwardingAspect = aspect<X11ForwardingAspect>())
|
||||||
|
r.extraData.insert("Ssh.X11ForwardToDisplay", forwardingAspect->display(macroExpander()));
|
||||||
|
});
|
||||||
|
|
||||||
setDefaultDisplayName(runConfigDefaultDisplayName());
|
setDefaultDisplayName(runConfigDefaultDisplayName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -76,14 +94,6 @@ QString RemoteLinuxCustomRunConfiguration::runConfigDefaultDisplayName()
|
|||||||
return RunConfigurationFactory::decoratedTargetName(display, target());
|
return RunConfigurationFactory::decoratedTargetName(display, target());
|
||||||
}
|
}
|
||||||
|
|
||||||
Runnable RemoteLinuxCustomRunConfiguration::runnable() const
|
|
||||||
{
|
|
||||||
ProjectExplorer::Runnable r = RunConfiguration::runnable();
|
|
||||||
if (const auto * const forwardingAspect = aspect<X11ForwardingAspect>())
|
|
||||||
r.extraData.insert("Ssh.X11ForwardToDisplay", forwardingAspect->display(macroExpander()));
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
Tasks RemoteLinuxCustomRunConfiguration::checkForIssues() const
|
Tasks RemoteLinuxCustomRunConfiguration::checkForIssues() const
|
||||||
{
|
{
|
||||||
Tasks tasks;
|
Tasks tasks;
|
||||||
|
@@ -30,20 +30,6 @@
|
|||||||
namespace RemoteLinux {
|
namespace RemoteLinux {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
class RemoteLinuxCustomRunConfiguration : public ProjectExplorer::RunConfiguration
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
RemoteLinuxCustomRunConfiguration(ProjectExplorer::Target *target, Utils::Id id);
|
|
||||||
|
|
||||||
QString runConfigDefaultDisplayName();
|
|
||||||
|
|
||||||
private:
|
|
||||||
ProjectExplorer::Runnable runnable() const override;
|
|
||||||
ProjectExplorer::Tasks checkForIssues() const override;
|
|
||||||
};
|
|
||||||
|
|
||||||
class RemoteLinuxCustomRunConfigurationFactory
|
class RemoteLinuxCustomRunConfigurationFactory
|
||||||
: public ProjectExplorer::FixedRunConfigurationFactory
|
: public ProjectExplorer::FixedRunConfigurationFactory
|
||||||
{
|
{
|
||||||
|
@@ -46,7 +46,15 @@ using namespace Utils;
|
|||||||
namespace RemoteLinux {
|
namespace RemoteLinux {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
RemoteLinuxRunConfiguration::RemoteLinuxRunConfiguration(Target *target, Utils::Id id)
|
class RemoteLinuxRunConfiguration final : public RunConfiguration
|
||||||
|
{
|
||||||
|
Q_DECLARE_TR_FUNCTIONS(RemoteLinux::Internal::RemoteLinuxRunConfiguration)
|
||||||
|
|
||||||
|
public:
|
||||||
|
RemoteLinuxRunConfiguration(Target *target, Id id);
|
||||||
|
};
|
||||||
|
|
||||||
|
RemoteLinuxRunConfiguration::RemoteLinuxRunConfiguration(Target *target, Id id)
|
||||||
: RunConfiguration(target, id)
|
: RunConfiguration(target, id)
|
||||||
{
|
{
|
||||||
auto exeAspect = addAspect<ExecutableAspect>();
|
auto exeAspect = addAspect<ExecutableAspect>();
|
||||||
@@ -78,20 +86,16 @@ RemoteLinuxRunConfiguration::RemoteLinuxRunConfiguration(Target *target, Utils::
|
|||||||
symbolsAspect->setFilePath(localExecutable);
|
symbolsAspect->setFilePath(localExecutable);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
setRunnableModifier([this](Runnable &r) {
|
||||||
|
if (const auto * const forwardingAspect = aspect<X11ForwardingAspect>())
|
||||||
|
r.extraData.insert("Ssh.X11ForwardToDisplay", forwardingAspect->display(macroExpander()));
|
||||||
|
});
|
||||||
|
|
||||||
connect(target, &Target::buildSystemUpdated, this, &RunConfiguration::update);
|
connect(target, &Target::buildSystemUpdated, this, &RunConfiguration::update);
|
||||||
connect(target, &Target::deploymentDataChanged, this, &RunConfiguration::update);
|
connect(target, &Target::deploymentDataChanged, this, &RunConfiguration::update);
|
||||||
connect(target, &Target::kitChanged, this, &RunConfiguration::update);
|
connect(target, &Target::kitChanged, this, &RunConfiguration::update);
|
||||||
}
|
}
|
||||||
|
|
||||||
Runnable RemoteLinuxRunConfiguration::runnable() const
|
|
||||||
{
|
|
||||||
Runnable r = RunConfiguration::runnable();
|
|
||||||
const auto * const forwardingAspect = aspect<X11ForwardingAspect>();
|
|
||||||
if (forwardingAspect)
|
|
||||||
r.extraData.insert("Ssh.X11ForwardToDisplay", forwardingAspect->display(macroExpander()));
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
// RemoteLinuxRunConfigurationFactory
|
// RemoteLinuxRunConfigurationFactory
|
||||||
|
|
||||||
RemoteLinuxRunConfigurationFactory::RemoteLinuxRunConfigurationFactory()
|
RemoteLinuxRunConfigurationFactory::RemoteLinuxRunConfigurationFactory()
|
||||||
|
@@ -32,17 +32,6 @@
|
|||||||
namespace RemoteLinux {
|
namespace RemoteLinux {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
class RemoteLinuxRunConfiguration final : public ProjectExplorer::RunConfiguration
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
RemoteLinuxRunConfiguration(ProjectExplorer::Target *target, Utils::Id id);
|
|
||||||
|
|
||||||
private:
|
|
||||||
ProjectExplorer::Runnable runnable() const override;
|
|
||||||
};
|
|
||||||
|
|
||||||
class RemoteLinuxRunConfigurationFactory final : public ProjectExplorer::RunConfigurationFactory
|
class RemoteLinuxRunConfigurationFactory final : public ProjectExplorer::RunConfigurationFactory
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
Reference in New Issue
Block a user