X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/600166152d857ccfc9df15b25bd1237b74c71d43..e8c3df5f60aae3c34545c4112b9ec1c323ee66fd:/src/dolphinviewcontainer.cpp diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp index 0e413bc61..71dc5fd7b 100644 --- a/src/dolphinviewcontainer.cpp +++ b/src/dolphinviewcontainer.cpp @@ -162,7 +162,7 @@ DolphinViewContainer::DolphinViewContainer(const KUrl& url, QWidget* parent) : connect(m_filterBar, SIGNAL(focusViewRequest()), this, SLOT(requestFocus())); connect(m_view, SIGNAL(urlChanged(KUrl)), - m_filterBar, SLOT(clear())); + m_filterBar, SLOT(slotUrlChanged())); m_topLayout->addWidget(m_urlNavigator); m_topLayout->addWidget(m_searchBox); @@ -482,37 +482,12 @@ void DolphinViewContainer::slotItemActivated(const KFileItem& item) // results in an active view. m_view->setActive(true); - KUrl url = item.targetUrl(); - - if (item.isDir()) { + const KUrl& url = DolphinView::openItemAsFolderUrl(item, GeneralSettings::browseThroughArchives()); + if (!url.isEmpty()) { m_view->setUrl(url); return; } - if (GeneralSettings::browseThroughArchives() && item.isFile() && url.isLocalFile()) { - // Generic mechanism for redirecting to tar:// when clicking on a tar file, - // zip:// when clicking on a zip file, etc. - // The .protocol file specifies the mimetype that the kioslave handles. - // Note that we don't use mimetype inheritance since we don't want to - // open OpenDocument files as zip folders... - const QString protocol = KProtocolManager::protocolForArchiveMimetype(item.mimetype()); - if (!protocol.isEmpty()) { - url.setProtocol(protocol); - m_view->setUrl(url); - return; - } - } - - if (item.mimetype() == QLatin1String("application/x-desktop")) { - // Redirect to the URL in Type=Link desktop files - KDesktopFile desktopFile(url.toLocalFile()); - if (desktopFile.hasLinkType()) { - url = desktopFile.readUrl(); - m_view->setUrl(url); - return; - } - } - item.run(); } @@ -536,8 +511,7 @@ void DolphinViewContainer::showItemInfo(const KFileItem& item) void DolphinViewContainer::closeFilterBar() { - m_filterBar->hide(); - m_filterBar->clear(); + m_filterBar->closeFilterBar(); m_view->setFocus(); emit showFilterBarChanged(false); }