]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinviewcontainer.cpp
Oh, this won't let Ctrl+click for deselecting items ... OK, a different hack is needed.
[dolphin.git] / src / dolphinviewcontainer.cpp
index 7e28a30fe3fe570925f9690af1e9cacfcb5609fd..64b0d400f6308481a8a715e57b02cbef45e2b539 100644 (file)
@@ -129,6 +129,8 @@ DolphinViewContainer::DolphinViewContainer(DolphinMainWindow* mainWindow,
             this, SLOT(showErrorMessage(const QString&)));
     connect(m_view, SIGNAL(infoMessage(const QString&)),
             this, SLOT(showInfoMessage(const QString&)));
+    connect(m_view, SIGNAL(operationCompletedMessage(const QString&)),
+            this, SLOT(showOperationCompletedMessage(const QString&)));
     connect(m_view, SIGNAL(itemTriggered(KFileItem)),
             this, SLOT(slotItemTriggered(KFileItem)));
     connect(m_view, SIGNAL(startedPathLoading(const KUrl&)),
@@ -156,8 +158,13 @@ DolphinViewContainer::DolphinViewContainer(DolphinMainWindow* mainWindow,
 
 DolphinViewContainer::~DolphinViewContainer()
 {
-    delete m_dirLister;
-    m_dirLister = 0;
+    m_dirLister->disconnect();
+
+    delete m_proxyModel;
+    m_proxyModel = 0;
+    delete m_dolphinModel;
+    m_dolphinModel = 0;
+    m_dirLister = 0; // deleted by m_dolphinModel
 }
 
 void DolphinViewContainer::setUrl(const KUrl& url)
@@ -250,6 +257,11 @@ void DolphinViewContainer::showErrorMessage(const QString& msg)
     m_statusBar->setMessage(msg, DolphinStatusBar::Error);
 }
 
+void DolphinViewContainer::showOperationCompletedMessage(const QString& msg)
+{
+    m_statusBar->setMessage(msg, DolphinStatusBar::OperationCompleted);
+}
+
 void DolphinViewContainer::closeFilterBar()
 {
     m_filterBar->hide();
@@ -389,8 +401,9 @@ void DolphinViewContainer::slotItemTriggered(const KFileItem& item)
         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
         KMimeType::Ptr mime = item.mimeTypePtr();
-        if (mime->is("application/zip")) {
+        if (mime->is("application/zip") && mime->patterns().contains("*.zip")) {
             url.setProtocol("zip");
             m_view->setUrl(url);
         } else if (mime->is("application/x-tar") ||