forked from qt-creator/qt-creator
RemoteLinux: Prepare new aspect data extraction for X11Forwarding
Following the ArgumentsAspect precedence for MacroExpander. Change-Id: Id3f58a994eb03911f7c864d66e06cf9571a1e3db Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
@@ -76,11 +76,11 @@ RemoteLinuxCustomRunConfiguration::RemoteLinuxCustomRunConfiguration(Target *tar
|
|||||||
if (HostOsInfo::isAnyUnixHost())
|
if (HostOsInfo::isAnyUnixHost())
|
||||||
addAspect<TerminalAspect>();
|
addAspect<TerminalAspect>();
|
||||||
if (HostOsInfo::isAnyUnixHost())
|
if (HostOsInfo::isAnyUnixHost())
|
||||||
addAspect<X11ForwardingAspect>();
|
addAspect<X11ForwardingAspect>(macroExpander());
|
||||||
|
|
||||||
setRunnableModifier([this](Runnable &r) {
|
setRunnableModifier([this](Runnable &r) {
|
||||||
if (const auto * const forwardingAspect = aspect<X11ForwardingAspect>())
|
if (const auto * const forwardingAspect = aspect<X11ForwardingAspect>())
|
||||||
r.extraData.insert("Ssh.X11ForwardToDisplay", forwardingAspect->display(macroExpander()));
|
r.extraData.insert("Ssh.X11ForwardToDisplay", forwardingAspect->display());
|
||||||
});
|
});
|
||||||
|
|
||||||
setDefaultDisplayName(runConfigDefaultDisplayName());
|
setDefaultDisplayName(runConfigDefaultDisplayName());
|
||||||
|
@@ -75,7 +75,7 @@ RemoteLinuxRunConfiguration::RemoteLinuxRunConfiguration(Target *target, Id id)
|
|||||||
if (HostOsInfo::isAnyUnixHost())
|
if (HostOsInfo::isAnyUnixHost())
|
||||||
addAspect<TerminalAspect>();
|
addAspect<TerminalAspect>();
|
||||||
if (HostOsInfo::isAnyUnixHost())
|
if (HostOsInfo::isAnyUnixHost())
|
||||||
addAspect<X11ForwardingAspect>();
|
addAspect<X11ForwardingAspect>(macroExpander());
|
||||||
|
|
||||||
setUpdater([this, target, exeAspect, symbolsAspect] {
|
setUpdater([this, target, exeAspect, symbolsAspect] {
|
||||||
BuildTargetInfo bti = buildTargetInfo();
|
BuildTargetInfo bti = buildTargetInfo();
|
||||||
@@ -88,7 +88,7 @@ RemoteLinuxRunConfiguration::RemoteLinuxRunConfiguration(Target *target, Id id)
|
|||||||
|
|
||||||
setRunnableModifier([this](Runnable &r) {
|
setRunnableModifier([this](Runnable &r) {
|
||||||
if (const auto * const forwardingAspect = aspect<X11ForwardingAspect>())
|
if (const auto * const forwardingAspect = aspect<X11ForwardingAspect>())
|
||||||
r.extraData.insert("Ssh.X11ForwardToDisplay", forwardingAspect->display(macroExpander()));
|
r.extraData.insert("Ssh.X11ForwardToDisplay", forwardingAspect->display());
|
||||||
});
|
});
|
||||||
|
|
||||||
connect(target, &Target::buildSystemUpdated, this, &RunConfiguration::update);
|
connect(target, &Target::buildSystemUpdated, this, &RunConfiguration::update);
|
||||||
|
@@ -32,9 +32,10 @@ using namespace Utils;
|
|||||||
|
|
||||||
namespace RemoteLinux {
|
namespace RemoteLinux {
|
||||||
|
|
||||||
static QString defaultDisplay() { return QLatin1String(qgetenv("DISPLAY")); }
|
static QString defaultDisplay() { return qEnvironmentVariable("DISPLAY"); }
|
||||||
|
|
||||||
X11ForwardingAspect::X11ForwardingAspect()
|
X11ForwardingAspect::X11ForwardingAspect(const MacroExpander *expander)
|
||||||
|
: m_macroExpander(expander)
|
||||||
{
|
{
|
||||||
setLabelText(tr("X11 Forwarding:"));
|
setLabelText(tr("X11 Forwarding:"));
|
||||||
setDisplayStyle(LineEditDisplay);
|
setDisplayStyle(LineEditDisplay);
|
||||||
@@ -43,12 +44,14 @@ X11ForwardingAspect::X11ForwardingAspect()
|
|||||||
makeCheckable(CheckBoxPlacement::Right, tr("Forward to local display"),
|
makeCheckable(CheckBoxPlacement::Right, tr("Forward to local display"),
|
||||||
"RunConfiguration.UseX11Forwarding");
|
"RunConfiguration.UseX11Forwarding");
|
||||||
setValue(defaultDisplay());
|
setValue(defaultDisplay());
|
||||||
|
|
||||||
|
addDataExtractor(this, &X11ForwardingAspect::display, &Data::display);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString X11ForwardingAspect::display(const Utils::MacroExpander *expander) const
|
QString X11ForwardingAspect::display() const
|
||||||
{
|
{
|
||||||
QTC_ASSERT(expander, return value());
|
QTC_ASSERT(m_macroExpander, return value());
|
||||||
return !isChecked() ? QString() : expander->expandProcessArgs(value());
|
return !isChecked() ? QString() : m_macroExpander->expandProcessArgs(value());
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace RemoteLinux
|
} // namespace RemoteLinux
|
||||||
|
@@ -38,9 +38,17 @@ class REMOTELINUX_EXPORT X11ForwardingAspect : public Utils::StringAspect
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
X11ForwardingAspect();
|
X11ForwardingAspect(const Utils::MacroExpander *macroExpander);
|
||||||
|
|
||||||
QString display(const Utils::MacroExpander *expander) const;
|
struct Data : BaseAspect::Data
|
||||||
|
{
|
||||||
|
QString display;
|
||||||
|
};
|
||||||
|
|
||||||
|
QString display() const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
const Utils::MacroExpander *m_macroExpander;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace RemoteLinux
|
} // namespace RemoteLinux
|
||||||
|
Reference in New Issue
Block a user