diff --git a/autotests/kurlnavigatortest.cpp b/autotests/kurlnavigatortest.cpp --- a/autotests/kurlnavigatortest.cpp +++ b/autotests/kurlnavigatortest.cpp @@ -203,13 +203,17 @@ QTest::newRow("homeDir") << QStringLiteral("~") << QUrl::fromLocalFile(QDir::homePath()); KUser user(KUser::UseRealUserID); QTest::newRow("userHomeDir") << (QStringLiteral("~") + user.loginName()) << QUrl::fromLocalFile(user.homeDir()); + + QTest::newRow("relativeFile") << QStringLiteral(".some_dotfile") << QUrl::fromUserInput(".some_dotfile", QDir::homePath(), QUrl::AssumeLocalFile); + QTest::newRow("relativeDir") << QStringLiteral("some_directory") << QUrl::fromUserInput("some_directory", QDir::homePath(), QUrl::AssumeLocalFile); } void KUrlNavigatorTest::testUrlParsing() { QFETCH(QString, input); QFETCH(QUrl, url); + m_navigator->setHomeUrl(QDir::homePath()); m_navigator->setLocationUrl(QUrl()); m_navigator->setUrlEditable(true); m_navigator->editor()->setCurrentText(input); diff --git a/src/filewidgets/kurlnavigator.cpp b/src/filewidgets/kurlnavigator.cpp --- a/src/filewidgets/kurlnavigator.cpp +++ b/src/filewidgets/kurlnavigator.cpp @@ -1007,7 +1007,7 @@ if (KUriFilter::self()->filterUri(filteredData, QStringList() << QStringLiteral("kshorturifilter") << QStringLiteral("kurisearchfilter"))) { return filteredData.uri(); } else { - return QUrl::fromUserInput(filteredData.typedString()); + return QUrl::fromUserInput(filteredData.typedString(), QDir::homePath(), QUrl::AssumeLocalFile); } } diff --git a/src/widgets/kurifilter.cpp b/src/widgets/kurifilter.cpp --- a/src/widgets/kurifilter.cpp +++ b/src/widgets/kurifilter.cpp @@ -32,6 +32,7 @@ #include #include #include +#include typedef QList KUriFilterPluginList; typedef QMap SearchProviderMap; @@ -268,7 +269,7 @@ } KUriFilterData::KUriFilterData(const QString &url) - : d(new KUriFilterDataPrivate(QUrl::fromUserInput(url), url)) + : d(new KUriFilterDataPrivate(QUrl::fromUserInput(url, QDir::homePath(), QUrl::AssumeLocalFile), url)) { }