]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/urlnavigator.cpp
there is only one lib, no need to have two macros
[dolphin.git] / src / urlnavigator.cpp
index 52e22992264d330b7022a13c7643c7dcf6b9fc9d..00edcfe503c8f7985c07ee36c51d076b9ebdb986 100644 (file)
@@ -91,7 +91,7 @@ UrlNavigator::UrlNavigator(const KUrl& url,
     m_toggleButton = new QToolButton();
     m_toggleButton->setCheckable(true);
     m_toggleButton->setAutoRaise(true);
-    m_toggleButton->setIcon(KIcon("locationbar_erase")); // TODO: is just a placeholder icon
+    m_toggleButton->setIcon(KIcon("editinput")); // TODO: is just a placeholder icon (?)
     m_toggleButton->setFocusPolicy(Qt::NoFocus);
     m_toggleButton->setMinimumHeight(minimumHeight());
     connect(m_toggleButton, SIGNAL(clicked()),
@@ -150,15 +150,21 @@ 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.
+    KUrl newurl(url());
+    newurl.setPath(QString());
+    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;
+    newurl.setPath(path);
+    return newurl;
 }
 
 const QLinkedList<UrlNavigator::HistoryElem>& UrlNavigator::history(int& index) const
@@ -246,6 +252,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