X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/c436a142e854b724742acb82a2de111a36b616ce..bd925ea49a7e4e7c6e652f4529dcd0c4e25fd19a:/src/dolphinviewcontainer.cpp diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp index 64b0d400f..237aa19f5 100644 --- a/src/dolphinviewcontainer.cpp +++ b/src/dolphinviewcontainer.cpp @@ -87,7 +87,7 @@ DolphinViewContainer::DolphinViewContainer(DolphinMainWindow* mainWindow, m_dirLister = new DolphinDirLister(); m_dirLister->setAutoUpdate(true); - m_dirLister->setMainWindow(this); + m_dirLister->setMainWindow(window()); m_dirLister->setDelayedMimeTypes(true); m_dolphinModel = new DolphinModel(this); @@ -96,6 +96,7 @@ DolphinViewContainer::DolphinViewContainer(DolphinMainWindow* mainWindow, m_proxyModel = new DolphinSortFilterProxyModel(this); m_proxyModel->setSourceModel(m_dolphinModel); + m_proxyModel->setFilterCaseSensitivity(Qt::CaseInsensitive); connect(m_dirLister, SIGNAL(clear()), this, SLOT(updateStatusBar())); @@ -119,8 +120,6 @@ DolphinViewContainer::DolphinViewContainer(DolphinMainWindow* mainWindow, m_urlNavigator, SLOT(setUrl(const KUrl&))); connect(m_view, SIGNAL(requestContextMenu(KFileItem, const KUrl&)), this, SLOT(openContextMenu(KFileItem, const KUrl&))); - connect(m_view, SIGNAL(urlsDropped(const KUrl::List&, const KUrl&)), - m_mainWindow, SLOT(dropUrls(const KUrl::List&, const KUrl&))); connect(m_view, SIGNAL(contentsMoved(int, int)), this, SLOT(saveContentsPos(int, int))); connect(m_view, SIGNAL(requestItemInfo(KFileItem)), @@ -393,32 +392,39 @@ void DolphinViewContainer::saveRootUrl(const KUrl& url) void DolphinViewContainer::slotItemTriggered(const KFileItem& item) { - // Prefer the local path over the URL. - bool isLocal; - KUrl url = item.mostLocalUrl(isLocal); + KUrl url = item.targetUrl(); if (item.isDir()) { m_view->setUrl(url); - } else if (item.isFile()) { - // allow to browse through ZIP and tar files - // TODO: make this configurable for Dolphin in KDE 4.1 + return; + } + + const GeneralSettings* settings = DolphinSettings::instance().generalSettings(); + const bool browseThroughArchives = settings->browseThroughArchives() && + item.isFile() && url.isLocalFile(); + if (browseThroughArchives) { KMimeType::Ptr mime = item.mimeTypePtr(); - if (mime->is("application/zip") && mime->patterns().contains("*.zip")) { + + // Don't use mime->is("application/zip"), as this would + // also browse through Open Office files: + if (mime->name() == "application/zip") { url.setProtocol("zip"); m_view->setUrl(url); - } else if (mime->is("application/x-tar") || - mime->is("application/x-tarz") || - mime->is("application/x-bzip-compressed-tar") || - mime->is("application/x-compressed-tar") || - mime->is("application/x-tzo")) { + return; + } + + if (mime->is("application/x-tar") || + mime->is("application/x-tarz") || + mime->is("application/x-bzip-compressed-tar") || + mime->is("application/x-compressed-tar") || + mime->is("application/x-tzo")) { url.setProtocol("tar"); m_view->setUrl(url); - } else { - item.run(); + return; } - } else { - item.run(); } + + item.run(); } #include "dolphinviewcontainer.moc"