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:
hjk
2022-05-25 15:30:04 +02:00
parent aa5e39d7bf
commit d325f56cc1
4 changed files with 22 additions and 11 deletions

View File

@@ -76,11 +76,11 @@ RemoteLinuxCustomRunConfiguration::RemoteLinuxCustomRunConfiguration(Target *tar
if (HostOsInfo::isAnyUnixHost())
addAspect<TerminalAspect>();
if (HostOsInfo::isAnyUnixHost())
addAspect<X11ForwardingAspect>();
addAspect<X11ForwardingAspect>(macroExpander());
setRunnableModifier([this](Runnable &r) {
if (const auto * const forwardingAspect = aspect<X11ForwardingAspect>())
r.extraData.insert("Ssh.X11ForwardToDisplay", forwardingAspect->display(macroExpander()));
r.extraData.insert("Ssh.X11ForwardToDisplay", forwardingAspect->display());
});
setDefaultDisplayName(runConfigDefaultDisplayName());

View File

@@ -75,7 +75,7 @@ RemoteLinuxRunConfiguration::RemoteLinuxRunConfiguration(Target *target, Id id)
if (HostOsInfo::isAnyUnixHost())
addAspect<TerminalAspect>();
if (HostOsInfo::isAnyUnixHost())
addAspect<X11ForwardingAspect>();
addAspect<X11ForwardingAspect>(macroExpander());
setUpdater([this, target, exeAspect, symbolsAspect] {
BuildTargetInfo bti = buildTargetInfo();
@@ -88,7 +88,7 @@ RemoteLinuxRunConfiguration::RemoteLinuxRunConfiguration(Target *target, Id id)
setRunnableModifier([this](Runnable &r) {
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);

View File

@@ -32,9 +32,10 @@ using namespace Utils;
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:"));
setDisplayStyle(LineEditDisplay);
@@ -43,12 +44,14 @@ X11ForwardingAspect::X11ForwardingAspect()
makeCheckable(CheckBoxPlacement::Right, tr("Forward to local display"),
"RunConfiguration.UseX11Forwarding");
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());
return !isChecked() ? QString() : expander->expandProcessArgs(value());
QTC_ASSERT(m_macroExpander, return value());
return !isChecked() ? QString() : m_macroExpander->expandProcessArgs(value());
}
} // namespace RemoteLinux

View File

@@ -38,9 +38,17 @@ class REMOTELINUX_EXPORT X11ForwardingAspect : public Utils::StringAspect
Q_OBJECT
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