diff options
| author | Peter Penz <[email protected]> | 2011-12-21 21:45:46 +0100 |
|---|---|---|
| committer | Peter Penz <[email protected]> | 2011-12-21 21:48:24 +0100 |
| commit | 965107fd024be86eb014ee360211a66b320a3b43 (patch) | |
| tree | 7f9f21326b890811febc9e98d0224649acb99f12 /src | |
| parent | 5e0e05e8f0c82e987cc56a17bdac1718e8feb320 (diff) | |
Update previews when the preview-plugin settings have changed
Thanks to Janardhan Reddy for the initial patch.
BUG: 288726
FIXED-IN: 4.8.0
Diffstat (limited to 'src')
| -rw-r--r-- | src/kitemviews/kfileitemlistview.cpp | 17 | ||||
| -rw-r--r-- | src/kitemviews/kfileitemlistview.h | 17 | ||||
| -rw-r--r-- | src/kitemviews/kfileitemmodelrolesupdater.cpp | 11 | ||||
| -rw-r--r-- | src/kitemviews/kfileitemmodelrolesupdater.h | 5 | ||||
| -rw-r--r-- | src/views/dolphinitemlistcontainer.cpp | 7 |
5 files changed, 49 insertions, 8 deletions
diff --git a/src/kitemviews/kfileitemlistview.cpp b/src/kitemviews/kfileitemlistview.cpp index e2bde3b12..89fec9d0f 100644 --- a/src/kitemviews/kfileitemlistview.cpp +++ b/src/kitemviews/kfileitemlistview.cpp @@ -107,6 +107,18 @@ KFileItemListView::Layout KFileItemListView::itemLayout() const return m_itemLayout; } +void KFileItemListView::setEnabledPlugins(const QStringList& list) +{ + if (m_modelRolesUpdater) { + m_modelRolesUpdater->setEnabledPlugins(list); + } +} + +QStringList KFileItemListView::enabledPlugins() const +{ + return m_modelRolesUpdater ? m_modelRolesUpdater->enabledPlugins() : QStringList(); +} + QSizeF KFileItemListView::itemSizeHint(int index) const { const QHash<QByteArray, QVariant> values = model()->data(index); @@ -333,10 +345,7 @@ void KFileItemListView::onModelChanged(KItemModelBase* current, KItemModelBase* Q_UNUSED(previous); Q_ASSERT(qobject_cast<KFileItemModel*>(current)); - if (m_modelRolesUpdater) { - delete m_modelRolesUpdater; - } - + delete m_modelRolesUpdater; m_modelRolesUpdater = new KFileItemModelRolesUpdater(static_cast<KFileItemModel*>(current), this); const int size = styleOption().iconSize; m_modelRolesUpdater->setIconSize(QSize(size, size)); diff --git a/src/kitemviews/kfileitemlistview.h b/src/kitemviews/kfileitemlistview.h index a41d091b7..203fb78c4 100644 --- a/src/kitemviews/kfileitemlistview.h +++ b/src/kitemviews/kfileitemlistview.h @@ -57,6 +57,23 @@ public: void setItemLayout(Layout layout); Layout itemLayout() const; + /** + * Sets the list of enabled thumbnail plugins that are used for previews. + * Per default all plugins enabled in the KConfigGroup "PreviewSettings" + * are used. + * + * For a list of available plugins, call KServiceTypeTrader::self()->query("ThumbCreator"). + * + * @see enabledPlugins + */ + void setEnabledPlugins(const QStringList& list); + + /** + * Returns the list of enabled thumbnail plugins. + * @see setEnabledPlugins + */ + QStringList enabledPlugins() const; + /** @reimp */ virtual QSizeF itemSizeHint(int index) const; diff --git a/src/kitemviews/kfileitemmodelrolesupdater.cpp b/src/kitemviews/kfileitemmodelrolesupdater.cpp index 4fe45624c..671352cac 100644 --- a/src/kitemviews/kfileitemmodelrolesupdater.cpp +++ b/src/kitemviews/kfileitemmodelrolesupdater.cpp @@ -169,7 +169,18 @@ bool KFileItemModelRolesUpdater::isPreviewShown() const void KFileItemModelRolesUpdater::setEnabledPlugins(const QStringList& list) { + if (m_enabledPlugins == list) { + return; + } + m_enabledPlugins = list; + if (m_previewShown) { + if (m_paused) { + m_previewChangedDuringPausing = true; + } else { + sortAndResolveAllRoles(); + } + } } void KFileItemModelRolesUpdater::setPaused(bool paused) diff --git a/src/kitemviews/kfileitemmodelrolesupdater.h b/src/kitemviews/kfileitemmodelrolesupdater.h index 993cc5244..065f069c8 100644 --- a/src/kitemviews/kfileitemmodelrolesupdater.h +++ b/src/kitemviews/kfileitemmodelrolesupdater.h @@ -82,13 +82,10 @@ public: QSet<QByteArray> roles() const; /** - * Sets the list of enabled thumbnail plugins. + * Sets the list of enabled thumbnail plugins that are used for previews. * Per default all plugins enabled in the KConfigGroup "PreviewSettings" * are used. * - * Note that this method doesn't cause already generated previews - * to be regenerated. - * * For a list of available plugins, call KServiceTypeTrader::self()->query("ThumbCreator"). * * @see enabledPlugins diff --git a/src/views/dolphinitemlistcontainer.cpp b/src/views/dolphinitemlistcontainer.cpp index 870043bc4..9e7a15f74 100644 --- a/src/views/dolphinitemlistcontainer.cpp +++ b/src/views/dolphinitemlistcontainer.cpp @@ -176,6 +176,13 @@ void DolphinItemListContainer::refresh() updateFont(); updateGridSize(); + + const KConfigGroup globalConfig(KGlobal::config(), "PreviewSettings"); + const QStringList plugins = globalConfig.readEntry("Plugins", QStringList() + << "directorythumbnail" + << "imagethumbnail" + << "jpegthumbnail"); + m_fileItemListView->setEnabledPlugins(plugins); } void DolphinItemListContainer::updateGridSize() |
