File allow-home-directories-with-non-local-file-paths.patch of Package dolphin

From: Emmanuel Pescosta <emmanuelpescosta099@gmail.com>
Date: Sat, 10 Oct 2015 13:09:48 +0000
Subject: Allow home directories with non-local file paths.
X-Git-Url: http://quickgit.kde.org/?p=dolphin.git&a=commitdiff&h=5dd5eaf08da4b7d11e53c90096c2ea0e6a19e840
---
Allow home directories with non-local file paths.

Paths like file:/home/me work now instead of showing
an error message.

BUG: 352743
BUG: 353550
FIXED-IN: 15.08.3
REVIEW: 125586
---


--- a/src/dolphinmainwindow.cpp
+++ b/src/dolphinmainwindow.cpp
@@ -21,6 +21,7 @@
 
 #include "dolphinmainwindow.h"
 
+#include "global.h"
 #include "dolphindockwidget.h"
 #include "dolphincontextmenu.h"
 #include "dolphinnewfilemenu.h"
@@ -639,7 +640,7 @@
 {
     // The default case (left button pressed) is handled in goHome().
     if (buttons == Qt::MiddleButton) {
-        openNewTab(GeneralSettings::self()->homeUrl());
+        openNewTab(Dolphin::homeUrl());
     }
 }
 

--- a/src/dolphinviewcontainer.cpp
+++ b/src/dolphinviewcontainer.cpp
@@ -39,6 +39,7 @@
 #ifdef KActivities_FOUND
 #endif
 
+#include "global.h"
 #include "dolphin_generalsettings.h"
 #include "filterbar/filterbar.h"
 #include "search/dolphinsearchbox.h"
@@ -77,7 +78,7 @@
     const GeneralSettings* settings = GeneralSettings::self();
     m_urlNavigator->setUrlEditable(settings->editableUrl());
     m_urlNavigator->setShowFullPath(settings->showFullPath());
-    m_urlNavigator->setHomeUrl(QUrl::fromLocalFile(settings->homeUrl()));
+    m_urlNavigator->setHomeUrl(Dolphin::homeUrl());
     KUrlComboBox* editor = m_urlNavigator->editor();
     editor->setCompletionMode(KCompletion::CompletionMode(settings->urlCompletionMode()));
 
@@ -304,7 +305,7 @@
         // settings of the URL navigator and the filterbar.
         m_urlNavigator->setUrlEditable(GeneralSettings::editableUrl());
         m_urlNavigator->setShowFullPath(GeneralSettings::showFullPath());
-        m_urlNavigator->setHomeUrl(QUrl::fromLocalFile(GeneralSettings::homeUrl()));
+        m_urlNavigator->setHomeUrl(Dolphin::homeUrl());
         setFilterBarVisible(GeneralSettings::filterBar());
     }
 
@@ -340,7 +341,7 @@
         // started with a search-URL, the home URL is used as fallback.
         QUrl url = m_searchBox->searchPath();
         if (url.isEmpty() || !url.isValid() || isSearchUrl(url)) {
-            url = QUrl::fromLocalFile(GeneralSettings::self()->homeUrl());
+            url = Dolphin::homeUrl();
         }
         m_urlNavigator->setLocationUrl(url);
     }

--- a/src/global.cpp
+++ b/src/global.cpp
@@ -20,6 +20,8 @@
 #include "global.h"
 #include "dolphindebug.h"
 
+#include "dolphin_generalsettings.h"
+
 QList<QUrl> Dolphin::validateUris(const QStringList& uriList)
 {
     QList<QUrl> urls;
@@ -33,3 +35,8 @@ QList<QUrl> Dolphin::validateUris(const
     }
     return urls;
 }
+
+QUrl Dolphin::homeUrl()
+{
+    return QUrl::fromUserInput(GeneralSettings::homeUrl(), QString(), QUrl::AssumeLocalFile);
+}
--- a/src/global.h
+++ b/src/global.h
@@ -25,6 +25,11 @@
 
 namespace Dolphin {
     QList<QUrl> validateUris(const QStringList& uriList);
+
+    /**
+     * Returns the home url which is defined in General Settings
+     */
+    QUrl homeUrl();
 }
 
 #endif //GLOBAL_H

--- a/src/main.cpp
+++ b/src/main.cpp
@@ -113,8 +113,7 @@
 
     if (urls.isEmpty()) {
         // We need at least one URL to open Dolphin
-        const QUrl homeUrl(QUrl::fromLocalFile(GeneralSettings::homeUrl()));
-        urls.append(homeUrl);
+        urls.append(Dolphin::homeUrl());
     }
 
     const bool splitView = parser.isSet("split") || GeneralSettings::splitView();

--- a/src/settings/startup/startupsettingspage.cpp
+++ b/src/settings/startup/startupsettingspage.cpp
@@ -19,6 +19,7 @@
 
 #include "startupsettingspage.h"
 
+#include "global.h"
 #include "dolphinmainwindow.h"
 #include "dolphinviewcontainer.h"
 
@@ -128,7 +129,7 @@
 {
     GeneralSettings* settings = GeneralSettings::self();
 
-    const QUrl url(QUrl::fromLocalFile(m_homeUrl->text()));
+    const QUrl url(QUrl::fromUserInput(m_homeUrl->text(), QString(), QUrl::AssumeLocalFile));
     KFileItem fileItem(url);
     if ((url.isValid() && fileItem.isDir()) || (url.scheme() == QLatin1String("timeline"))) {
         settings->setHomeUrl(url.toDisplayString(QUrl::PreferLocalFile));
@@ -163,8 +164,8 @@
 
 void StartupSettingsPage::selectHomeUrl()
 {
-    const QString homeUrl = m_homeUrl->text();
-    QUrl url = QFileDialog::getExistingDirectoryUrl(this, QString(), QUrl::fromLocalFile(homeUrl));
+    const QUrl homeUrl(QUrl::fromUserInput(m_homeUrl->text(), QString(), QUrl::AssumeLocalFile));
+    QUrl url = QFileDialog::getExistingDirectoryUrl(this, QString(), homeUrl);
     if (!url.isEmpty()) {
         m_homeUrl->setText(url.toDisplayString(QUrl::PreferLocalFile));
         slotSettingsChanged();
@@ -183,7 +184,7 @@
 
 void StartupSettingsPage::loadSettings()
 {
-    const QUrl url(QUrl::fromLocalFile(GeneralSettings::homeUrl()));
+    const QUrl url(Dolphin::homeUrl());
     m_homeUrl->setText(url.toDisplayString(QUrl::PreferLocalFile));
     m_splitView->setChecked(GeneralSettings::splitView());
     m_editableUrl->setChecked(GeneralSettings::editableUrl());
openSUSE Build Service is sponsored by