]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/settings/general/previewssettingspage.cpp
Don't limit the preview size to 2 GByte
[dolphin.git] / src / settings / general / previewssettingspage.cpp
index 679494c67c1678a5b68c1c90c35f1c418a41bb92..3c3211d47a2a842d44f2caa0b5f84f89615341ef 100644 (file)
@@ -95,7 +95,7 @@ PreviewsSettingsPage::PreviewsSettingsPage(QWidget* parent) :
     m_localFileSizeBox = new KIntSpinBox(this);
     m_localFileSizeBox->setSingleStep(1);
     m_localFileSizeBox->setSuffix(QLatin1String(" MB"));
-    m_localFileSizeBox->setRange(0, 9999); /* MB */
+    m_localFileSizeBox->setRange(0, 9999999); /* MB */
 
     QLabel* remoteFileSizeLabel = new QLabel(i18nc("@label Don't create previews for: <Remote files above:> XX MByte",
                                                    "Remote files above:"), this);
@@ -103,7 +103,7 @@ PreviewsSettingsPage::PreviewsSettingsPage(QWidget* parent) :
     m_remoteFileSizeBox = new KIntSpinBox(this);
     m_remoteFileSizeBox->setSingleStep(1);
     m_remoteFileSizeBox->setSuffix(QLatin1String(" MB"));
-    m_remoteFileSizeBox->setRange(0, 9999); /* MB */
+    m_remoteFileSizeBox->setRange(0, 9999999); /* MB */
 
     QGridLayout* fileSizeBoxLayout = new QGridLayout(fileSizeBox);
     fileSizeBoxLayout->addWidget(localFileSizeLabel, 0, 0, Qt::AlignRight);
@@ -144,11 +144,13 @@ void PreviewsSettingsPage::applySettings()
     KConfigGroup globalConfig(KGlobal::config(), QLatin1String("PreviewSettings"));
     globalConfig.writeEntry("Plugins", m_enabledPreviewPlugins);
 
+    const qulonglong maximumLocalSize = static_cast<qulonglong>(m_localFileSizeBox->value()) * 1024 * 1024;
     globalConfig.writeEntry("MaximumSize",
-                            m_localFileSizeBox->value() * 1024 * 1024,
+                            maximumLocalSize,
                             KConfigBase::Normal | KConfigBase::Global);
+    const qulonglong maximumRemoteSize = static_cast<qulonglong>(m_remoteFileSizeBox->value()) * 1024 * 1024;
     globalConfig.writeEntry("MaximumRemoteSize",
-                            m_remoteFileSizeBox->value() * 1024 * 1024,
+                            maximumRemoteSize,
                             KConfigBase::Normal | KConfigBase::Global);
     globalConfig.sync();
 }
@@ -187,18 +189,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,11 +209,26 @@ void PreviewsSettingsPage::loadSettings()
                                                      << QLatin1String("imagethumbnail")
                                                      << QLatin1String("jpegthumbnail"));
 
-    const int maxLocalByteSize = globalConfig.readEntry("MaximumSize", MaxLocalPreviewSize * 1024 * 1024);
+    // 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 qulonglong defaultLocalPreview = static_cast<qulonglong>(MaxLocalPreviewSize) * 1024 * 1024;
+    const qulonglong maxLocalByteSize = globalConfig.readEntry("MaximumSize", defaultLocalPreview);
     const int maxLocalMByteSize = maxLocalByteSize / (1024 * 1024);
     m_localFileSizeBox->setValue(maxLocalMByteSize);
 
-    const int maxRemoteByteSize = globalConfig.readEntry("MaximumRemoteSize", MaxRemotePreviewSize * 1024 * 1024);
+    const qulonglong defaultRemotePreview = static_cast<qulonglong>(MaxRemotePreviewSize) * 1024 * 1024;
+    const qulonglong maxRemoteByteSize = globalConfig.readEntry("MaximumRemoteSize", defaultRemotePreview);
     const int maxRemoteMByteSize = maxRemoteByteSize / (1024 * 1024);
     m_remoteFileSizeBox->setValue(maxRemoteMByteSize);
 }