ProjectExplorer: Add FileAccessFactory

Change-Id: I2468934bae03f352b8011224f345795ba8941862
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Marcus Tillmanns
2024-06-20 12:44:45 +02:00
parent 04f56b01d4
commit b32d23de35
2 changed files with 10 additions and 0 deletions

View File

@@ -139,6 +139,7 @@ public:
IDevice::MachineType machineType = IDevice::Hardware;
OsType osType = OsTypeOther;
DeviceFileAccess *fileAccess = nullptr;
std::function<DeviceFileAccess *()> fileAccessFactory;
int version = 0; // This is used by devices that have been added by the SDK.
Utils::SynchronizedValue<SshParameters> sshParameters;
@@ -251,6 +252,9 @@ bool IDevice::isAnyUnixDevice() const
DeviceFileAccess *IDevice::fileAccess() const
{
if (d->fileAccessFactory)
return d->fileAccessFactory();
return d->fileAccess;
}
@@ -341,6 +345,11 @@ void IDevice::setFileAccess(DeviceFileAccess *fileAccess)
d->fileAccess = fileAccess;
}
void IDevice::setFileAccess(std::function<Utils::DeviceFileAccess *()> fileAccessFactory)
{
d->fileAccessFactory = fileAccessFactory;
}
IDevice::DeviceInfo IDevice::deviceInformation() const
{
const QString key = Tr::tr("Device");

View File

@@ -241,6 +241,7 @@ protected:
void setDisplayType(const QString &type);
void setOsType(Utils::OsType osType);
void setFileAccess(Utils::DeviceFileAccess *fileAccess);
void setFileAccess(std::function<Utils::DeviceFileAccess *()> fileAccessFactory);
private:
IDevice(const IDevice &) = delete;