]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinviewcontainer.cpp
Forwardport 773570:
[dolphin.git] / src / dolphinviewcontainer.cpp
index b9caa7b8e6fdafd27cd0ae7b80abeb27afc31868..e6966affb153b30e01af5f06e36e8b97602930eb 100644 (file)
@@ -115,8 +115,7 @@ DolphinViewContainer::DolphinViewContainer(DolphinMainWindow* mainWindow,
                              url,
                              m_dirLister,
                              m_dolphinModel,
-                             m_proxyModel,
-                             mainWindow->actionCollection());
+                             m_proxyModel);
     connect(m_view, SIGNAL(urlChanged(const KUrl&)),
             m_urlNavigator, SLOT(setUrl(const KUrl&)));
     connect(m_view, SIGNAL(requestContextMenu(KFileItem, const KUrl&)),
@@ -399,10 +398,13 @@ void DolphinViewContainer::slotItemTriggered(const KFileItem& item)
 
     if (item.isDir()) {
         m_view->setUrl(url);
-    } else if (item.isFile() && url.isLocalFile()) {
-        // 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 +412,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"