diff options
| author | Peter Penz <[email protected]> | 2008-06-10 18:38:28 +0000 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2008-06-10 18:38:28 +0000 |
| commit | 35370b6678686210491bbf681a715a386ee4edac (patch) | |
| tree | 92fd5287532b043d33714c02691e9cbe5fb797db /src | |
| parent | 9b9bccc862274cfe0fd787ea97f375e758d7fabf (diff) | |
only resolve the MIME-types asynchronously, if no preview is generated
CCMAIL: [email protected]
CCMAIL: [email protected]
svn path=/trunk/KDE/kdebase/apps/; revision=819162
Diffstat (limited to 'src')
| -rw-r--r-- | src/dolphincolumnwidget.cpp | 2 | ||||
| -rw-r--r-- | src/dolphinview.cpp | 1 | ||||
| -rw-r--r-- | src/iconmanager.cpp | 12 | ||||
| -rw-r--r-- | src/iconmanager.h | 3 |
4 files changed, 15 insertions, 3 deletions
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 <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()); 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 <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() 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<ItemInfo> m_cutItemsCache; QList<ItemInfo> m_previews; |
