]> cloud.milkyroute.net Git - dolphin.git/commitdiff
only resolve the MIME-types asynchronously, if no preview is generated
authorPeter Penz <peter.penz19@gmail.com>
Tue, 10 Jun 2008 18:38:28 +0000 (18:38 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Tue, 10 Jun 2008 18:38:28 +0000 (18:38 +0000)
CCMAIL: faure@kde.org
CCMAIL: ereslibre@kde.org

svn path=/trunk/KDE/kdebase/apps/; revision=819162

src/dolphincolumnwidget.cpp
src/dolphinview.cpp
src/iconmanager.cpp
src/iconmanager.h

index 2ca4cdbbfea88fc13dc91fc53d96efd89985f1f2..8f3b253aaa09aa3a477f2c17a93e23253e9b90ef 100644 (file)
@@ -37,7 +37,6 @@
 #include <kio/previewjob.h>
 #include <kiconeffect.h>
 #include <kjob.h>
-#include <kmimetyperesolver.h>
 #include <konqmimedata.h>
 
 #include "iconmanager.h"
@@ -133,7 +132,6 @@ DolphinColumnWidget::DolphinColumnWidget(QWidget* parent,
                 m_selectionManager, SLOT(reset()));
     }
 
-    new KMimeTypeResolver(this, m_dolphinModel);
     m_iconManager = new IconManager(this, m_proxyModel);
     m_iconManager->setShowPreview(m_view->m_controller->dolphinView()->showPreview());
 
index 514f52009c0aba0cc93601e288a88dc260270cbf..783131c3241e9f3db92bb0d69a1c06f6c7da8106 100644 (file)
@@ -1125,7 +1125,6 @@ void DolphinView::createView()
 
     view->setSelectionMode(QAbstractItemView::ExtendedSelection);
 
-    new KMimeTypeResolver(view, m_dolphinModel);
     m_iconManager = new IconManager(view, m_proxyModel);
     m_iconManager->setShowPreview(m_showPreview);
 
index d2169cb9e42b197fb61de432a007213451153161..ab73e1ceaba6040fc2e6fed3640bdadfe1a74da7 100644 (file)
@@ -25,6 +25,7 @@
 #include <kiconeffect.h>
 #include <kio/previewjob.h>
 #include <kdirlister.h>
+#include <kmimetyperesolver.h>
 #include <konqmimedata.h>
 
 #include <QApplication>
@@ -45,6 +46,7 @@ IconManager::IconManager(QAbstractItemView* parent, DolphinSortFilterProxyModel*
     m_previewJobs(),
     m_dolphinModel(0),
     m_proxyModel(model),
+    m_mimeTypeResolver(0),
     m_cutItemsCache(),
     m_previews(),
     m_pendingItems(),
@@ -97,6 +99,16 @@ void IconManager::setShowPreview(bool show)
             updatePreviews();
         }
     }
+
+    if (show && (m_mimeTypeResolver != 0)) {
+        // don't resolve the MIME types if the preview is turned on
+        m_mimeTypeResolver->deleteLater();
+        m_mimeTypeResolver = 0;
+    } else if (!show && (m_mimeTypeResolver == 0)) {
+        // the preview is turned off: resolve the MIME-types so that
+        // the icons gets updated
+        m_mimeTypeResolver = new KMimeTypeResolver(m_view, m_dolphinModel);
+    }
 }
 
 void IconManager::updatePreviews()
index 3452b7ac9ba367b00fad88b67cb3a7a9f1a15367..85538f87d80b785dcf8493c2d59326384bbf1654 100644 (file)
@@ -30,6 +30,7 @@
 class DolphinModel;
 class DolphinSortFilterProxyModel;
 class KJob;
+class KMimeTypeResolver;
 class QAbstractItemView;
 
 /**
@@ -166,6 +167,8 @@ private:
     DolphinModel* m_dolphinModel;
     DolphinSortFilterProxyModel* m_proxyModel;
 
+    KMimeTypeResolver* m_mimeTypeResolver;
+
     QList<ItemInfo> m_cutItemsCache;
     QList<ItemInfo> m_previews;