┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEmmanuel Pescosta <[email protected]>2012-11-25 21:44:01 +0100
committerEmmanuel Pescosta <[email protected]>2012-11-25 21:44:01 +0100
commitb2719884b9cdd31b293e785aebabddabf374383d (patch)
tree0a356edd0678cb82c4ee05d79b9fc91a2c9ec5b6 /src
parentc570c6203650b20800c07d0f45b9a808758e923e (diff)
Fix Bug 310465 - Can't switch view mode for non-writable paths
BUG: 310465 FIXED-IN: 4.9.4 REVIEW: 107458
Diffstat (limited to 'src')
-rw-r--r--src/views/viewproperties.cpp9
1 files changed, 7 insertions, 2 deletions
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(':'));