diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -113,6 +113,7 @@ middleclickactioneventfilter.cpp dolphinnewfilemenu.cpp dolphindebug.cpp + global.cpp ) if(HAVE_BALOO) @@ -347,7 +348,9 @@ settings/general/confirmationssettingspage.cpp settings/settingspagebase.cpp settings/serviceitemdelegate.cpp - settings/servicemodel.cpp) + settings/servicemodel.cpp + dolphindebug.cpp + global.cpp) kconfig_add_kcfg_files(kcm_dolphinviewmodes_PART_SRCS settings/dolphin_compactmodesettings.kcfgc diff --git a/src/global.h b/src/global.h --- a/src/global.h +++ b/src/global.h @@ -41,6 +41,11 @@ * Opens a new Dolphin window */ void openNewWindow(const QList &urls = {}, QWidget *window = nullptr, const OpenNewWindowFlags &flags = OpenNewWindowFlag::None); + + /** + * Returns the default list of enabled preview plugins + */ + QStringList defaultPlugins(); } #endif //GLOBAL_H diff --git a/src/global.cpp b/src/global.cpp --- a/src/global.cpp +++ b/src/global.cpp @@ -21,6 +21,9 @@ #include #include +#include +#include +#include #include "global.h" #include "dolphindebug.h" @@ -61,3 +64,16 @@ KRun::run(command, urls, window, qApp->applicationDisplayName(), qApp->windowIcon().name()); } + +QStringList Dolphin::defaultPlugins() +{ + const KConfigGroup globalConfig(KSharedConfig::openConfig(), QStringLiteral("PreviewSettings")); +#if KIO_VERSION >= QT_VERSION_CHECK(5, 40, 0) + return globalConfig.readEntry("Plugins", KIO::PreviewJob::defaultPlugins()); +#else + // We don't have KF5.40 yet; emulate the behavior of KIO::PreviewJob::defaultPlugins() + QStringList defaultPlugins = KIO::PreviewJob::availablePlugins(); + defaultPlugins.removeAll(QStringLiteral("textthumbnail")); + return globalConfig.readEntry("Plugins", defaultPlugins); +#endif +} diff --git a/src/kitemviews/kfileitemmodelrolesupdater.cpp b/src/kitemviews/kfileitemmodelrolesupdater.cpp --- a/src/kitemviews/kfileitemmodelrolesupdater.cpp +++ b/src/kitemviews/kfileitemmodelrolesupdater.cpp @@ -19,10 +19,9 @@ #include "kfileitemmodelrolesupdater.h" +#include "global.h" #include "kfileitemmodel.h" -#include -#include #include #include #include @@ -98,11 +97,7 @@ { Q_ASSERT(model); - const KConfigGroup globalConfig(KSharedConfig::openConfig(), "PreviewSettings"); - m_enabledPlugins = globalConfig.readEntry("Plugins", QStringList() - << QStringLiteral("directorythumbnail") - << QStringLiteral("imagethumbnail") - << QStringLiteral("jpegthumbnail")); + m_enabledPlugins = Dolphin::defaultPlugins(); connect(m_model, &KFileItemModel::itemsInserted, this, &KFileItemModelRolesUpdater::slotItemsInserted); diff --git a/src/settings/dolphin_directoryviewpropertysettings.kcfg b/src/settings/dolphin_directoryviewpropertysettings.kcfg --- a/src/settings/dolphin_directoryviewpropertysettings.kcfg +++ b/src/settings/dolphin_directoryviewpropertysettings.kcfg @@ -30,7 +30,7 @@ When this option is enabled, a preview of the file content is shown as an icon. - false + true diff --git a/src/settings/general/previewssettingspage.cpp b/src/settings/general/previewssettingspage.cpp --- a/src/settings/general/previewssettingspage.cpp +++ b/src/settings/general/previewssettingspage.cpp @@ -19,9 +19,11 @@ #include "previewssettingspage.h" +#include "global.h" #include "dolphin_generalsettings.h" #include "configurepreviewplugindialog.h" +#include #include #include #include @@ -172,12 +174,8 @@ void PreviewsSettingsPage::loadSettings() { - KConfigGroup globalConfig(KSharedConfig::openConfig(), "PreviewSettings"); - m_enabledPreviewPlugins = globalConfig.readEntry("Plugins", QStringList() - << QStringLiteral("directorythumbnail") - << QStringLiteral("imagethumbnail") - << QStringLiteral("jpegthumbnail")); - + const KConfigGroup globalConfig(KSharedConfig::openConfig(), QStringLiteral("PreviewSettings")); + m_enabledPreviewPlugins = Dolphin::defaultPlugins(); const qulonglong defaultRemotePreview = static_cast(MaxRemotePreviewSize) * 1024 * 1024; const qulonglong maxRemoteByteSize = globalConfig.readEntry("MaximumRemoteSize", defaultRemotePreview); const int maxRemoteMByteSize = maxRemoteByteSize / (1024 * 1024); diff --git a/src/views/dolphinitemlistview.cpp b/src/views/dolphinitemlistview.cpp --- a/src/views/dolphinitemlistview.cpp +++ b/src/views/dolphinitemlistview.cpp @@ -19,6 +19,7 @@ #include "dolphinitemlistview.h" +#include "global.h" #include "dolphin_generalsettings.h" #include "dolphin_iconsmodesettings.h" #include "dolphin_detailsmodesettings.h" @@ -30,7 +31,6 @@ #include #include - #include #include "zoomlevelinfo.h" @@ -93,12 +93,7 @@ updateFont(); updateGridSize(); - const KConfigGroup globalConfig(KSharedConfig::openConfig(), "PreviewSettings"); - const QStringList plugins = globalConfig.readEntry("Plugins", QStringList() - << QStringLiteral("directorythumbnail") - << QStringLiteral("imagethumbnail") - << QStringLiteral("jpegthumbnail")); - setEnabledPlugins(plugins); + setEnabledPlugins(Dolphin::defaultPlugins()); endTransaction(); }