[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [dolphin] src/views: [ViewProperties] Check part of home first before doing file system stuff
From: Kai Uwe Broulik <null () kde ! org>
Date: 2018-09-17 14:03:30
Message-ID: E1g1u7e-0002aE-Dk () code ! kde ! org
[Download RAW message or body]
Git commit 7ec783e7493a3c6a8d40a01d49e930b7ae5520f8 by Kai Uwe Broulik.
Committed on 17/09/2018 at 14:02.
Pushed by broulik into branch 'master'.
[ViewProperties] Check part of home first before doing file system stuff
There's no point in creating a QFileInfo instance and checking for file properties if \
we're not going to do anything with it when not inside home.
Differential Revision: https://phabricator.kde.org/D15237
M +13 -11 src/views/viewproperties.cpp
https://commits.kde.org/dolphin/7ec783e7493a3c6a8d40a01d49e930b7ae5520f8
diff --git a/src/views/viewproperties.cpp b/src/views/viewproperties.cpp
index e5d636cd1e..d7c6abd65e 100644
--- a/src/views/viewproperties.cpp
+++ b/src/views/viewproperties.cpp
@@ -63,17 +63,19 @@ ViewProperties::ViewProperties(const QUrl& url) :
useDetailsViewWithPath = true;
} else if (url.isLocalFile()) {
m_filePath = url.toLocalFile();
- 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(':'));
-#endif
+
+ bool useDestinationDir = !isPartOfHome(m_filePath);
+ if (!useDestinationDir) {
+ const QFileInfo dirInfo(m_filePath);
+ const QFileInfo fileInfo(m_filePath + QDir::separator() + \
ViewPropertiesFileName); + useDestinationDir = !dirInfo.isWritable() || \
(dirInfo.size() > 0 && fileInfo.exists() && !(fileInfo.isReadable() && \
fileInfo.isWritable())); + }
+
+ if (useDestinationDir) {
+ #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(':')); + #endif
m_filePath = destinationDir(QStringLiteral("local")) + m_filePath;
}
} else {
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic