]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/settings/general/previewssettingspage.cpp
PreviewSettingsPage: update JPG preview plugin settings if needed
[dolphin.git] / src / settings / general / previewssettingspage.cpp
index 679494c67c1678a5b68c1c90c35f1c418a41bb92..590a51df5cdea077eb974fe3d0d3f31026ce99e3 100644 (file)
@@ -187,18 +187,6 @@ void PreviewsSettingsPage::loadPreviewPlugins()
     foreach (const KSharedPtr<KService>& 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);