]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/urlnavigator.cpp
SVN_SILENT made messages (.desktop file)
[dolphin.git] / src / urlnavigator.cpp
index 72a3a9c491548b23cde42094e38f9a45c522e006..ee06f558a101898950f9e4c5c14f0915b9c6a7d0 100644 (file)
@@ -150,15 +150,19 @@ const KUrl& UrlNavigator::url() const
 KUrl UrlNavigator::url(int index) const
 {
     assert(index >= 0);
-    QString path(url().pathOrUrl());
-    path = path.section('/', 0, index);
-
-    if ( path.length() >= 1 && path.at(path.length()-1) != '/')
-    {
-        path.append('/');
+    // keep scheme, hostname etc. maybe we will need this in the future
+    // for e.g. browsing ftp repositories.
+    QString pre(((QUrl)url()).toString(QUrl::RemovePath));
+    QString path(url().path());
+
+    if (!path.isEmpty()) {
+        if (index == 0) //prevent the last "/" from being stripped
+            path = "/"; //or we end up with an empty path
+        else
+            path = path.section('/', 0, index);
     }
 
-    return path;
+    return KUrl(pre + path);
 }
 
 const QLinkedList<UrlNavigator::HistoryElem>& UrlNavigator::history(int& index) const
@@ -246,6 +250,14 @@ void UrlNavigator::dropUrls(const KUrl::List& urls,
 void UrlNavigator::setUrl(const KUrl& url)
 {
     QString urlStr(url.pathOrUrl());
+
+    // TODO: a patch has been submitted by Filip Brcic which adjusts
+    // the URL for tar and zip files. See https://bugs.kde.org/show_bug.cgi?id=142781
+    // for details. The URL navigator part of the patch has not been committed yet,
+    // as the URL navigator will be subject of change and
+    // we might think of a more generic approach to check the protocol + MIME type for
+    // this use case.
+
     //kDebug() << "setUrl(" << url << ")" << endl;
     if ( urlStr.length() > 0 && urlStr.at(0) == '~') {
         // replace '~' by the home directory