Skip to content

Commit

Permalink
Don't store view properties on network shares
Browse files Browse the repository at this point in the history
Entering a folder will have Dolphin determine whether it can store the view properties in a .directory file within the folder or
in a generic config location.
It does so by checking for permissions on the file and parent dir causing various stat calls that potentially block on a slow mount.
Also, the config reading thereafter can be very slow.
Moreover, network shares are typically shared between users, so one user's view properties shouldn't affect or be overwritten
by this Dolphin instance.
It doesn't resolve symlinks but is surely an improvement over the status quo.

Differential Revision: https://phabricator.kde.org/D23458
  • Loading branch information
kbroulik committed Aug 28, 2019
1 parent f4a1d1b commit db717a2
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions src/views/viewproperties.cpp
Expand Up @@ -26,6 +26,8 @@

#include <QCryptographicHash>

#include <KFileItem>

namespace {
const int AdditionalInfoViewPropertiesVersion = 1;
const int NameRolePropertiesVersion = 2;
Expand Down Expand Up @@ -70,6 +72,11 @@ ViewProperties::ViewProperties(const QUrl& url) :
m_filePath = url.toLocalFile();

bool useDestinationDir = !isPartOfHome(m_filePath);
if (!useDestinationDir) {
const KFileItem fileItem(url);
useDestinationDir = fileItem.isSlow();
}

if (!useDestinationDir) {
const QFileInfo dirInfo(m_filePath);
const QFileInfo fileInfo(m_filePath + QDir::separator() + ViewPropertiesFileName);
Expand Down

0 comments on commit db717a2

Please sign in to comment.