]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Ignore maximum size for local files when creating previews
authorPeter Penz <peter.penz19@gmail.com>
Sun, 8 Apr 2012 14:08:25 +0000 (16:08 +0200)
committerPeter Penz <peter.penz19@gmail.com>
Sun, 8 Apr 2012 14:12:06 +0000 (16:12 +0200)
It is up to the plugins to decide what sensible size is required for
creating a preview, this cannot be decided by the user for all
plugins. A maximum size only makes sense for remote files, where
the user implicitely decides how much of the bandwith may be used
for having previews.

BUG: 273226
FIXED-IN: 4.9.0

src/kitemviews/kfileitemmodelrolesupdater.cpp
src/panels/information/informationpanelcontent.cpp
src/settings/general/previewssettingspage.cpp
src/settings/general/previewssettingspage.h
src/views/tooltips/tooltipmanager.cpp

index cd757a826465b7d9479c8235f9f7e78e6e2aee3c..34165843ff2915301cd12a86563cb41936c4b0df 100644 (file)
@@ -608,7 +608,7 @@ void KFileItemModelRolesUpdater::startPreviewJob(const KFileItemList& items)
     // worst case) might block the application for several seconds. To prevent such
     // a blocking the MIME-type of the items will determined until the MaxBlockTimeout
     // has been reached and only those items will get passed. As soon as the MIME-type
-    // has been resolved once KIO::filePreview() can already access the resolved
+    // has been resolved once KIO::PreviewJob() can already access the resolved
     // MIME-type in a fast way.
     QElapsedTimer timer;
     timer.start();
@@ -625,7 +625,8 @@ void KFileItemModelRolesUpdater::startPreviewJob(const KFileItemList& items)
             break;
         }
     }
-    KJob* job = KIO::filePreview(itemSubSet, cacheSize, &m_enabledPlugins);
+    KIO::PreviewJob* job = new KIO::PreviewJob(itemSubSet, cacheSize, &m_enabledPlugins);
+    job->setIgnoreMaximumSize(items.first().isLocalFile());
 
     connect(job,  SIGNAL(gotPreview(KFileItem,QPixmap)),
             this, SLOT(slotGotPreview(KFileItem,QPixmap)));
index 7de6052e037e4a118a26372b1bfd50241ecfb662..a82319ef990fcd3d4831cf3d6fbe9ace7e5a4d44 100644 (file)
@@ -173,8 +173,9 @@ void InformationPanelContent::showItem(const KFileItem& item)
                 m_outdatedPreviewTimer->start();
             }
 
-            KIO::PreviewJob* job = KIO::filePreview(KFileItemList() << item, QSize(m_preview->width(), m_preview->height()));
+            KIO::PreviewJob* job = new KIO::PreviewJob(KFileItemList() << item, QSize(m_preview->width(), m_preview->height()));
             job->setScaleType(KIO::PreviewJob::Unscaled);
+            job->setIgnoreMaximumSize(item.isLocalFile());
 
             connect(job, SIGNAL(gotPreview(KFileItem,QPixmap)),
                     this, SLOT(showPreview(KFileItem,QPixmap)));
index 913ca081719544d75e7b2f1f57c4472bc7a08bee..4df3fc3783530d39ecc48943331a0e93190c0cfc 100644 (file)
@@ -35,6 +35,7 @@
 
 #include <QCheckBox>
 #include <QGroupBox>
+#include <QHBoxLayout>
 #include <QLabel>
 #include <QListView>
 #include <QPainter>
 #include <QShowEvent>
 #include <QSlider>
 #include <QSortFilterProxyModel>
-#include <QGridLayout>
 #include <QVBoxLayout>
 
 // default settings
 namespace {
     const bool UseThumbnails = true;
-    const int MaxLocalPreviewSize = 5;  // 5 MB
     const int MaxRemotePreviewSize = 0; // 0 MB
 }
 
@@ -57,7 +56,6 @@ PreviewsSettingsPage::PreviewsSettingsPage(QWidget* parent) :
     m_initialized(false),
     m_listView(0),
     m_enabledPreviewPlugins(),
-    m_localFileSizeBox(0),
     m_remoteFileSizeBox(0)
 {
     QVBoxLayout* topLayout = new QVBoxLayout(this);
@@ -83,40 +81,27 @@ PreviewsSettingsPage::PreviewsSettingsPage(QWidget* parent) :
     m_listView->setVerticalScrollMode(QListView::ScrollPerPixel);
 
     QVBoxLayout* listBoxLayout = new QVBoxLayout(listBox);
+    listBoxLayout->setSpacing(KDialog::spacingHint());
+    listBoxLayout->setMargin(KDialog::marginHint());
     listBoxLayout->addWidget(m_listView);
 
-    // Create group box "Don't create previews for"
-    QGroupBox* fileSizeBox = new QGroupBox(i18nc("@title:group", "Do not create previews for"), this);
-
-    QLabel* localFileSizeLabel = new QLabel(i18nc("@label Don't create previews for: <Local files above:> XX MByte",
-                                                  "Local files above:"), this);
-
-    m_localFileSizeBox = new KIntSpinBox(this);
-    m_localFileSizeBox->setSingleStep(1);
-    m_localFileSizeBox->setSuffix(QLatin1String(" 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);
+    QLabel* remoteFileSizeLabel = new QLabel(i18nc("@label", "Skip previews for remote files above:"), this);
 
     m_remoteFileSizeBox = new KIntSpinBox(this);
     m_remoteFileSizeBox->setSingleStep(1);
     m_remoteFileSizeBox->setSuffix(QLatin1String(" MB"));
     m_remoteFileSizeBox->setRange(0, 9999999); /* MB */
 
-    QGridLayout* fileSizeBoxLayout = new QGridLayout(fileSizeBox);
-    fileSizeBoxLayout->addWidget(localFileSizeLabel, 0, 0, Qt::AlignRight);
-    fileSizeBoxLayout->addWidget(m_localFileSizeBox, 0, 1);
-    fileSizeBoxLayout->addWidget(remoteFileSizeLabel, 1, 0, Qt::AlignRight);
-    fileSizeBoxLayout->addWidget(m_remoteFileSizeBox, 1, 1);
+    QHBoxLayout* fileSizeBoxLayout = new QHBoxLayout(this);
+    fileSizeBoxLayout->addWidget(remoteFileSizeLabel, 0, Qt::AlignRight);
+    fileSizeBoxLayout->addWidget(m_remoteFileSizeBox);
 
     topLayout->addWidget(listBox);
-    topLayout->addWidget(fileSizeBox);
+    topLayout->addLayout(fileSizeBoxLayout);
 
     loadSettings();
 
     connect(m_listView, SIGNAL(clicked(QModelIndex)), this, SIGNAL(changed()));
-    connect(m_localFileSizeBox, SIGNAL(valueChanged(int)), this, SIGNAL(changed()));
     connect(m_remoteFileSizeBox, SIGNAL(valueChanged(int)), this, SIGNAL(changed()));
 }
 
@@ -143,10 +128,6 @@ 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",
-                            maximumLocalSize,
-                            KConfigBase::Normal | KConfigBase::Global);
     const qulonglong maximumRemoteSize = static_cast<qulonglong>(m_remoteFileSizeBox->value()) * 1024 * 1024;
     globalConfig.writeEntry("MaximumRemoteSize",
                             maximumRemoteSize,
@@ -156,7 +137,6 @@ void PreviewsSettingsPage::applySettings()
 
 void PreviewsSettingsPage::restoreDefaults()
 {
-    m_localFileSizeBox->setValue(MaxLocalPreviewSize);
     m_remoteFileSizeBox->setValue(MaxRemotePreviewSize);
 }
 
@@ -221,11 +201,6 @@ void PreviewsSettingsPage::loadSettings()
         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 qulonglong defaultRemotePreview = static_cast<qulonglong>(MaxRemotePreviewSize) * 1024 * 1024;
     const qulonglong maxRemoteByteSize = globalConfig.readEntry("MaximumRemoteSize", defaultRemotePreview);
     const int maxRemoteMByteSize = maxRemoteByteSize / (1024 * 1024);
index ef3ad267ecd8e44874263e49a9969d7d80300893..a43535133b2067d03ecd48423d7c762334875058 100644 (file)
@@ -61,7 +61,6 @@ private:
     bool m_initialized;
     QListView *m_listView;
     QStringList m_enabledPreviewPlugins;
-    KIntSpinBox* m_localFileSizeBox;
     KIntSpinBox* m_remoteFileSizeBox;
 };
 
index ed0a9c512529b3cf59413c3c321fb292fca289b4..8b2e98dae3c59c03f65d2216a4af52dc334dcbb5 100644 (file)
@@ -126,7 +126,8 @@ void ToolTipManager::startContentRetrieval()
     // Request a preview of the item
     m_fileMetaDataToolTip->setPreview(QPixmap());
 
-    KIO::PreviewJob* job = KIO::filePreview(KFileItemList() << m_item, QSize(256, 256));
+    KIO::PreviewJob* job = new KIO::PreviewJob(KFileItemList() << m_item, QSize(256, 256));
+    job->setIgnoreMaximumSize(m_item.isLocalFile());
 
     connect(job, SIGNAL(gotPreview(KFileItem,QPixmap)),
             this, SLOT(setPreviewPix(KFileItem,QPixmap)));