]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinviewcontainer.cpp
Make Konqueror and Dolphin use the new KFileItem::targetUrl() method.
[dolphin.git] / src / dolphinviewcontainer.cpp
index 4d03501c1901c5474b54b1fc62005491f565b268..237aa19f50e621caaeb19f0439939f22a7f59359 100644 (file)
@@ -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,16 +392,17 @@ 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();
 
         // Don't use mime->is("application/zip"), as this would
@@ -410,19 +410,21 @@ void DolphinViewContainer::slotItemTriggered(const KFileItem& item)
         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"