X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/ad01ddac1a104b8f372a98db84f123fbba65e2da..1a321e5fbcdaf7d92d023bb1f8f2c6352b3c133e:/src/urlnavigator.cpp diff --git a/src/urlnavigator.cpp b/src/urlnavigator.cpp index 52e229922..00edcfe50 100644 --- a/src/urlnavigator.cpp +++ b/src/urlnavigator.cpp @@ -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::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