From: Peter Penz Date: Tue, 10 Jun 2008 18:38:28 +0000 (+0000) Subject: only resolve the MIME-types asynchronously, if no preview is generated X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/35370b6678686210491bbf681a715a386ee4edac only resolve the MIME-types asynchronously, if no preview is generated CCMAIL: faure@kde.org CCMAIL: ereslibre@kde.org svn path=/trunk/KDE/kdebase/apps/; revision=819162 --- diff --git a/src/dolphincolumnwidget.cpp b/src/dolphincolumnwidget.cpp index 2ca4cdbbf..8f3b253aa 100644 --- a/src/dolphincolumnwidget.cpp +++ b/src/dolphincolumnwidget.cpp @@ -37,7 +37,6 @@ #include #include #include -#include #include #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()); diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp index 514f52009..783131c32 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -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); diff --git a/src/iconmanager.cpp b/src/iconmanager.cpp index d2169cb9e..ab73e1cea 100644 --- a/src/iconmanager.cpp +++ b/src/iconmanager.cpp @@ -25,6 +25,7 @@ #include #include #include +#include #include #include @@ -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() diff --git a/src/iconmanager.h b/src/iconmanager.h index 3452b7ac9..85538f87d 100644 --- a/src/iconmanager.h +++ b/src/iconmanager.h @@ -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 m_cutItemsCache; QList m_previews;