forked from qt-creator/qt-creator
ProjectExplorer: Enable devices to register extra macro expander variables
Allow for devices to potentially register extra macro expander variables. Special devices might want to expose more then the standard set, which is now exported by IDevice. Change-Id: Ie00f1bbb95c47c683a58f35d36914ca18a852aae Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -36,6 +36,7 @@
|
||||
#include <ssh/sshconnection.h>
|
||||
#include <utils/displayname.h>
|
||||
#include <utils/icon.h>
|
||||
#include <utils/macroexpander.h>
|
||||
#include <utils/portlist.h>
|
||||
#include <utils/qtcassert.h>
|
||||
#include <utils/url.h>
|
||||
@@ -330,6 +331,28 @@ DeviceEnvironmentFetcher::Ptr IDevice::environmentFetcher() const
|
||||
return DeviceEnvironmentFetcher::Ptr();
|
||||
}
|
||||
|
||||
void IDevice::addToMacroExpander(Utils::MacroExpander *expander) const
|
||||
{
|
||||
expander->registerVariable("Device:HostAddress",
|
||||
QCoreApplication::translate("ProjectExplorer::IDevice",
|
||||
"Host address"),
|
||||
[this]() { return sshParameters().host(); });
|
||||
expander->registerVariable("Device:SshPort",
|
||||
QCoreApplication::translate("ProjectExplorer::IDevice", "SSH port"),
|
||||
[this]() { return QString::number(sshParameters().port()); });
|
||||
expander->registerVariable("Device:UserName",
|
||||
QCoreApplication::translate("ProjectExplorer::IDevice", "User name"),
|
||||
[this]() { return sshParameters().userName(); });
|
||||
expander->registerVariable("Device:KeyFile",
|
||||
QCoreApplication::translate("ProjectExplorer::IDevice",
|
||||
"Private key file"),
|
||||
[this]() { return sshParameters().privateKeyFile; });
|
||||
expander->registerVariable("Device:Name",
|
||||
QCoreApplication::translate("ProjectExplorer::IDevice",
|
||||
"Device name"),
|
||||
[this]() { return displayName(); });
|
||||
}
|
||||
|
||||
IDevice::DeviceState IDevice::deviceState() const
|
||||
{
|
||||
return d->deviceState;
|
||||
|
@@ -49,6 +49,7 @@ namespace QSsh { class SshConnectionParameters; }
|
||||
namespace Utils {
|
||||
class Environment;
|
||||
class Icon;
|
||||
class MacroExpander;
|
||||
class PortList;
|
||||
class Port;
|
||||
} // Utils
|
||||
@@ -180,6 +181,8 @@ public:
|
||||
virtual DeviceProcessSignalOperation::Ptr signalOperation() const = 0;
|
||||
virtual DeviceEnvironmentFetcher::Ptr environmentFetcher() const;
|
||||
|
||||
virtual void addToMacroExpander(Utils::MacroExpander *expander) const;
|
||||
|
||||
enum DeviceState { DeviceReadyToUse, DeviceConnected, DeviceDisconnected, DeviceStateUnknown };
|
||||
DeviceState deviceState() const;
|
||||
void setDeviceState(const DeviceState state);
|
||||
|
@@ -1028,31 +1028,9 @@ KitAspect::ItemList DeviceKitAspect::toUserOutput(const Kit *k) const
|
||||
void DeviceKitAspect::addToMacroExpander(Kit *kit, Utils::MacroExpander *expander) const
|
||||
{
|
||||
QTC_ASSERT(kit, return);
|
||||
expander->registerVariable("Device:HostAddress", tr("Host address"),
|
||||
[kit]() -> QString {
|
||||
const IDevice::ConstPtr device = DeviceKitAspect::device(kit);
|
||||
return device ? device->sshParameters().host() : QString();
|
||||
});
|
||||
expander->registerVariable("Device:SshPort", tr("SSH port"),
|
||||
[kit]() -> QString {
|
||||
const IDevice::ConstPtr device = DeviceKitAspect::device(kit);
|
||||
return device ? QString::number(device->sshParameters().port()) : QString();
|
||||
});
|
||||
expander->registerVariable("Device:UserName", tr("User name"),
|
||||
[kit]() -> QString {
|
||||
const IDevice::ConstPtr device = DeviceKitAspect::device(kit);
|
||||
return device ? device->sshParameters().userName() : QString();
|
||||
});
|
||||
expander->registerVariable("Device:KeyFile", tr("Private key file"),
|
||||
[kit]() -> QString {
|
||||
const IDevice::ConstPtr device = DeviceKitAspect::device(kit);
|
||||
return device ? device->sshParameters().privateKeyFile : QString();
|
||||
});
|
||||
expander->registerVariable("Device:Name", tr("Device name"),
|
||||
[kit]() -> QString {
|
||||
const IDevice::ConstPtr device = DeviceKitAspect::device(kit);
|
||||
return device ? device->displayName() : QString();
|
||||
});
|
||||
const IDevice::ConstPtr device = DeviceKitAspect::device(kit);
|
||||
if (device)
|
||||
device->addToMacroExpander(expander);
|
||||
}
|
||||
|
||||
Core::Id DeviceKitAspect::id()
|
||||
|
Reference in New Issue
Block a user