diff options
author | hjk <hjk@theqtcompany.com> | 2016-04-06 13:56:32 +0200 |
---|---|---|
committer | hjk <hjk@theqtcompany.com> | 2016-04-06 14:27:12 +0000 |
commit | 4d382811f1a4119afabe5c539a5ea28f452965b2 (patch) | |
tree | b40a9bb96fc2d8b355878d7cd37d5f266760c8a4 /src/plugins/remotelinux/linuxdevice.cpp | |
parent | 2e1494d0584897f3c4f8e08229ebf9d502c9a548 (diff) |
ProjectExplorer: Introduce a DeviceEnvironmentFetcher
Also, provide implementations for desktop and remote linux.
Change-Id: Ib02202bf1829367334035a361ac73317338cd7a6
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Diffstat (limited to 'src/plugins/remotelinux/linuxdevice.cpp')
-rw-r--r-- | src/plugins/remotelinux/linuxdevice.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/plugins/remotelinux/linuxdevice.cpp b/src/plugins/remotelinux/linuxdevice.cpp index 40f5bb37a8..6f960c0786 100644 --- a/src/plugins/remotelinux/linuxdevice.cpp +++ b/src/plugins/remotelinux/linuxdevice.cpp @@ -31,6 +31,7 @@ #include "publickeydeploymentdialog.h" #include "remotelinux_constants.h" #include "remotelinuxsignaloperation.h" +#include "remotelinuxenvironmentreader.h" #include <coreplugin/id.h> #include <projectexplorer/devicesupport/sshdeviceprocesslist.h> @@ -254,4 +255,29 @@ DeviceProcessSignalOperation::Ptr LinuxDevice::signalOperation() const return DeviceProcessSignalOperation::Ptr(new RemoteLinuxSignalOperation(sshParameters())); } +class LinuxDeviceEnvironmentFetcher : public DeviceEnvironmentFetcher +{ +public: + LinuxDeviceEnvironmentFetcher(const IDevice::ConstPtr &device) + : m_reader(device) + { + connect(&m_reader, &Internal::RemoteLinuxEnvironmentReader::finished, + this, &LinuxDeviceEnvironmentFetcher::readerFinished); + connect(&m_reader, &Internal::RemoteLinuxEnvironmentReader::error, + this, &LinuxDeviceEnvironmentFetcher::readerError); + } + +private: + void start() override { m_reader.start(); } + void readerFinished() { emit finished(m_reader.remoteEnvironment(), true); } + void readerError() { emit finished(Utils::Environment(), false); } + + Internal::RemoteLinuxEnvironmentReader m_reader; +}; + +DeviceEnvironmentFetcher::Ptr LinuxDevice::environmentFetcher() const +{ + return DeviceEnvironmentFetcher::Ptr(new LinuxDeviceEnvironmentFetcher(sharedFromThis())); +} + } // namespace RemoteLinux |