aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/remotelinux/linuxdevice.cpp
diff options
context:
space:
mode:
authorhjk <hjk@theqtcompany.com>2016-04-06 13:56:32 +0200
committerhjk <hjk@theqtcompany.com>2016-04-06 14:27:12 +0000
commit4d382811f1a4119afabe5c539a5ea28f452965b2 (patch)
treeb40a9bb96fc2d8b355878d7cd37d5f266760c8a4 /src/plugins/remotelinux/linuxdevice.cpp
parent2e1494d0584897f3c4f8e08229ebf9d502c9a548 (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.cpp26
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