diff --git a/src/views/viewproperties.cpp b/src/views/viewproperties.cpp --- a/src/views/viewproperties.cpp +++ b/src/views/viewproperties.cpp @@ -26,6 +26,10 @@ #include +#include +#include +#include + namespace { const int AdditionalInfoViewPropertiesVersion = 1; const int NameRolePropertiesVersion = 2; @@ -70,6 +74,18 @@ m_filePath = url.toLocalFile(); bool useDestinationDir = !isPartOfHome(m_filePath); + if (!useDestinationDir) { + // Don't store view settings on potentially slow network shares + const QList devices = Solid::Device::listFromType(Solid::DeviceInterface::NetworkShare); + for (Solid::Device device : devices) { + Solid::StorageAccess *storageAccess = device.as(); + if (m_filePath.startsWith(storageAccess->filePath())) { + useDestinationDir = true; + break; + } + } + } + if (!useDestinationDir) { const QFileInfo dirInfo(m_filePath); const QFileInfo fileInfo(m_filePath + QDir::separator() + ViewPropertiesFileName);