From 626fb3cf58dc12d4a8d219c12e7663881a1246e7 Mon Sep 17 00:00:00 2001 From: Frank Reininghaus Date: Sun, 10 Jul 2011 15:33:16 +0200 Subject: [PATCH] PreviewSettingsPage: update JPG preview plugin settings if needed In KDE <= 4.6, the 'jpegrotatedthumbnail' plugin was used to provide thumbnails for JPG images which are rotated correctly. In KDE 4.7, this is done by the usual 'jpegthumbnail' plugin if it is configured accordingly. The update of the settings is done in KFilePreviewGenerator. However, if Konqueror is run in web browsing mode and the settings dialog is opened, KFilePreviewGenerator does not have a chance to do the update. To make sure that the correct plugins are shown in the settings, this commit adds a plugin update to PreviewSettingsPage. The old code that just removed the 'jpegrotatedthumbnail' plugin without enabling the 'jpegthumbnail' plugin is removed. CCBUG:277251 FIXED-IN:4.7.0 --- .../settings/general/previewssettingspage.cpp | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/dolphin/src/settings/general/previewssettingspage.cpp b/dolphin/src/settings/general/previewssettingspage.cpp index 679494c67c..590a51df5c 100644 --- a/dolphin/src/settings/general/previewssettingspage.cpp +++ b/dolphin/src/settings/general/previewssettingspage.cpp @@ -187,18 +187,6 @@ void PreviewsSettingsPage::loadPreviewPlugins() foreach (const KSharedPtr& service, plugins) { const bool configurable = service->property("Configurable", QVariant::Bool).toBool(); const bool show = m_enabledPreviewPlugins.contains(service->desktopEntryName()); - if (service->desktopEntryName() == QLatin1String("jpegrotatedthumbnail")) { - // Before KDE SC 4.7 thumbnail plugins where not configurable and in addition to - // the jpegthumbnail-plugin a jpegrotatedthumbnail-plugin was offered. Make this - // plugin obsolete for users that updated from a previous KDE SC version: - if (show) { - m_enabledPreviewPlugins.removeOne(service->desktopEntryName()); - KConfigGroup globalConfig(KGlobal::config(), QLatin1String("PreviewSettings")); - globalConfig.writeEntry("Plugins", m_enabledPreviewPlugins); - globalConfig.sync(); - } - continue; - } model->insertRow(0); const QModelIndex index = model->index(0, 0); @@ -219,6 +207,19 @@ void PreviewsSettingsPage::loadSettings() << QLatin1String("imagethumbnail") << QLatin1String("jpegthumbnail")); + // If the user is upgrading from KDE <= 4.6, we must check if he had the 'jpegrotatedthumbnail' plugin enabled. + // This plugin does not exist any more in KDE >= 4.7, so we have to replace it with the 'jpegthumbnail' plugin. + // + // Note that the upgrade to the correct plugin is done already in KFilePreviewGenerator. However, if Konqueror is + // opened in web browsing mode and the Settings dialog is opened, we might end up here before KFilePreviewGenerator's + // constructor is ever called -> the plugin replacement should be done here as well. + if(m_enabledPreviewPlugins.contains(QLatin1String("jpegrotatedthumbnail"))) { + m_enabledPreviewPlugins.removeAll(QLatin1String("jpegrotatedthumbnail")); + m_enabledPreviewPlugins.append(QLatin1String("jpegthumbnail")); + globalConfig.writeEntry("Plugins", m_enabledPreviewPlugins); + globalConfig.sync(); + } + const int maxLocalByteSize = globalConfig.readEntry("MaximumSize", MaxLocalPreviewSize * 1024 * 1024); const int maxLocalMByteSize = maxLocalByteSize / (1024 * 1024); m_localFileSizeBox->setValue(maxLocalMByteSize);