[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kio] src/widgets: Fix editing autostart entries when /usr/local/share/applications doesn't exist
From:       Antonio Rojas <arojas () archlinux ! org>
Date:       2016-10-31 20:37:58
Message-ID: E1c1JLC-0006AD-3W () code ! kde ! org
[Download RAW message or body]

Git commit af0105c22ec80e411bf226e77f40987464e478d3 by Antonio Rojas.
Committed on 31/10/2016 at 20:36.
Pushed by arojas into branch 'master'.

Fix editing autostart entries when /usr/local/share/applications doesn't \
exist

QFileInfo.canonicalFilePath() returns an empty string for non-existant \
directories, which matches any .desktop file path and makes \
KPropertiesDialog try to save it to the wrong location. Make sure that the \
dir exists before trying to match it in the .desktop file path

BUG: 371194
REVIEW: 129280
FIXED-IN: 5.28

M  +2    -1    src/widgets/kpropertiesdialog.cpp

http://commits.kde.org/kio/af0105c22ec80e411bf226e77f40987464e478d3

diff --git a/src/widgets/kpropertiesdialog.cpp \
b/src/widgets/kpropertiesdialog.cpp index b570a85..18c8479 100644
--- a/src/widgets/kpropertiesdialog.cpp
+++ b/src/widgets/kpropertiesdialog.cpp
@@ -1239,7 +1239,8 @@ static QString relativeAppsLocation(const QString \
&file)  {
     const QString canonical = QFileInfo(file).canonicalFilePath();
     Q_FOREACH (const QString &base, \
                QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation)) \
                {
-        if (canonical.startsWith(QFileInfo(base).canonicalFilePath())) {
+        QDir base_dir = QDir(base);
+        if (base_dir.exists() && \
canonical.startsWith(base_dir.canonicalPath())) {  return \
canonical.mid(base.length() + 1);  }
     }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic