diff options
-rw-r--r-- | src/libs/utils/devicefileaccess.cpp | 1 | ||||
-rw-r--r-- | src/libs/utils/filepath.cpp | 6 | ||||
-rw-r--r-- | src/libs/utils/filepath.h | 2 | ||||
-rw-r--r-- | src/plugins/projectexplorer/devicesupport/devicemanager.cpp | 7 |
4 files changed, 9 insertions, 7 deletions
diff --git a/src/libs/utils/devicefileaccess.cpp b/src/libs/utils/devicefileaccess.cpp index e91f16b711..ed02b444ae 100644 --- a/src/libs/utils/devicefileaccess.cpp +++ b/src/libs/utils/devicefileaccess.cpp @@ -120,7 +120,6 @@ bool DeviceFileAccess::createDirectory(const FilePath &filePath) const bool DeviceFileAccess::exists(const FilePath &filePath) const { Q_UNUSED(filePath) - QTC_CHECK(false); return false; } diff --git a/src/libs/utils/filepath.cpp b/src/libs/utils/filepath.cpp index 8fb7fcd47a..7eb95343a6 100644 --- a/src/libs/utils/filepath.cpp +++ b/src/libs/utils/filepath.cpp @@ -939,9 +939,9 @@ DeviceFileAccess *FilePath::fileAccess() const } static DeviceFileAccess dummy; - DeviceFileAccess *access = s_deviceHooks.fileAccess(*this); - QTC_ASSERT(access, qDebug() << toString(); return &dummy); - return access; + const expected_str<DeviceFileAccess *> access = s_deviceHooks.fileAccess(*this); + QTC_ASSERT_EXPECTED(access, return &dummy); + return *access ? *access : &dummy; } /*! diff --git a/src/libs/utils/filepath.h b/src/libs/utils/filepath.h index a3da61ce47..05a851d431 100644 --- a/src/libs/utils/filepath.h +++ b/src/libs/utils/filepath.h @@ -269,7 +269,7 @@ class QTCREATOR_UTILS_EXPORT DeviceFileHooks public: static DeviceFileHooks &instance(); - std::function<DeviceFileAccess *(const FilePath &)> fileAccess; + std::function<expected_str<DeviceFileAccess *>(const FilePath &)> fileAccess; std::function<QString(const FilePath &)> deviceDisplayName; std::function<bool(const FilePath &, const FilePath &)> ensureReachable; std::function<Environment(const FilePath &)> environment; diff --git a/src/plugins/projectexplorer/devicesupport/devicemanager.cpp b/src/plugins/projectexplorer/devicesupport/devicemanager.cpp index 0ff44bbf34..6448b085b8 100644 --- a/src/plugins/projectexplorer/devicesupport/devicemanager.cpp +++ b/src/plugins/projectexplorer/devicesupport/devicemanager.cpp @@ -422,11 +422,14 @@ DeviceManager::DeviceManager(bool isInstance) : d(std::make_unique<DeviceManager return device->localSource(file); }; - deviceHooks.fileAccess = [](const FilePath &filePath) -> DeviceFileAccess * { + deviceHooks.fileAccess = [](const FilePath &filePath) -> expected_str<DeviceFileAccess *> { if (!filePath.needsDevice()) return DesktopDeviceFileAccess::instance(); auto device = DeviceManager::deviceForPath(filePath); - QTC_ASSERT(device, qDebug() << filePath.toString(); return nullptr); + if (!device) { + return make_unexpected( + QString("No device found for path \"%1\"").arg(filePath.toUserOutput())); + } return device->fileAccess(); }; |