┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/kitemviews/kfileitemlistview.cpp17
-rw-r--r--src/kitemviews/kfileitemlistview.h17
-rw-r--r--src/kitemviews/kfileitemmodelrolesupdater.cpp11
-rw-r--r--src/kitemviews/kfileitemmodelrolesupdater.h5
-rw-r--r--src/views/dolphinitemlistcontainer.cpp7
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()