┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuel Pescosta <[email protected]>2015-10-10 15:09:48 +0200
committerEmmanuel Pescosta <[email protected]>2015-10-21 13:45:45 +0200
commit5dd5eaf08da4b7d11e53c90096c2ea0e6a19e840 (patch)
tree8b2b1e11ecb6cbb849aff34c72beb02ef715f116
parent4d6cd761d8987adee511546f644ecf5f357148ad (diff)
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
-rw-r--r--src/dolphinmainwindow.cpp3
-rw-r--r--src/dolphinviewcontainer.cpp7
-rw-r--r--src/global.cpp7
-rw-r--r--src/global.h5
-rw-r--r--src/main.cpp3
-rw-r--r--src/settings/startup/startupsettingspage.cpp9
6 files changed, 24 insertions, 10 deletions
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp
index f7a761307..1cde29ce2 100644
--- 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 @@ void DolphinMainWindow::goHome(Qt::MouseButtons buttons)
{
// The default case (left button pressed) is handled in goHome().
if (buttons == Qt::MiddleButton) {
- openNewTab(GeneralSettings::self()->homeUrl());
+ openNewTab(Dolphin::homeUrl());
}
}
diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp
index 8fea3ba9d..6ceb18d6f 100644
--- 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 @@ DolphinViewContainer::DolphinViewContainer(const QUrl& url, QWidget* parent) :
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 @@ void DolphinViewContainer::readSettings()
// 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 @@ void DolphinViewContainer::setSearchModeEnabled(bool enabled)
// 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);
}
diff --git a/src/global.cpp b/src/global.cpp
index 2f23ae4d4..d87a29c7a 100644
--- 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 QStringList& uriList)
}
return urls;
}
+
+QUrl Dolphin::homeUrl()
+{
+ return QUrl::fromUserInput(GeneralSettings::homeUrl(), QString(), QUrl::AssumeLocalFile);
+}
diff --git a/src/global.h b/src/global.h
index 7f1931f0d..0ac2e9acb 100644
--- 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
diff --git a/src/main.cpp b/src/main.cpp
index b4ca2c6af..bcc9f8a85 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -113,8 +113,7 @@ extern "C" Q_DECL_EXPORT int kdemain(int argc, char **argv)
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();
diff --git a/src/settings/startup/startupsettingspage.cpp b/src/settings/startup/startupsettingspage.cpp
index 48d2a7b75..03258cf04 100644
--- 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 @@ void StartupSettingsPage::applySettings()
{
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::slotSettingsChanged()
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::useDefaultLocation()
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());