From: Emmanuel Pescosta Date: Sun, 25 Nov 2012 20:44:01 +0000 (+0100) Subject: Fix Bug 310465 - Can't switch view mode for non-writable paths X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/b2719884b9cdd31b293e785aebabddabf374383d?hp=--cc Fix Bug 310465 - Can't switch view mode for non-writable paths BUG: 310465 FIXED-IN: 4.9.4 REVIEW: 107458 --- b2719884b9cdd31b293e785aebabddabf374383d diff --git a/src/views/viewproperties.cpp b/src/views/viewproperties.cpp index ff0c274be..30deb7277 100644 --- a/src/views/viewproperties.cpp +++ b/src/views/viewproperties.cpp @@ -69,8 +69,13 @@ ViewProperties::ViewProperties(const KUrl& url) : useDetailsViewWithPath = true; } else if (url.isLocalFile()) { m_filePath = url.toLocalFile(); - const QFileInfo info(m_filePath); - if (!info.isWritable() || !isPartOfHome(m_filePath)) { + const QFileInfo dirInfo(m_filePath); + const QFileInfo fileInfo(m_filePath + QDir::separator() + ViewPropertiesFileName); + // Check if the directory is writable and check if the ".directory" file exists and + // is read- and writable. + if (!dirInfo.isWritable() + || (fileInfo.exists() && !(fileInfo.isReadable() && fileInfo.isWritable())) + || !isPartOfHome(m_filePath)) { #ifdef Q_OS_WIN // m_filePath probably begins with C:/ - the colon is not a valid character for paths though m_filePath = QDir::separator() + m_filePath.remove(QLatin1Char(':'));