From: Peter Penz Date: Sun, 8 Apr 2012 14:08:25 +0000 (+0200) Subject: Ignore maximum size for local files when creating previews X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/05082aed16cdf7e511d9c97d0cf07e270af493e5?hp=02f122f33ce4be24cbf475b34f12c497a706b950 Ignore maximum size for local files when creating previews 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 --- diff --git a/src/kitemviews/kfileitemmodelrolesupdater.cpp b/src/kitemviews/kfileitemmodelrolesupdater.cpp index cd757a826..34165843f 100644 --- a/src/kitemviews/kfileitemmodelrolesupdater.cpp +++ b/src/kitemviews/kfileitemmodelrolesupdater.cpp @@ -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))); diff --git a/src/panels/information/informationpanelcontent.cpp b/src/panels/information/informationpanelcontent.cpp index 7de6052e0..a82319ef9 100644 --- a/src/panels/information/informationpanelcontent.cpp +++ b/src/panels/information/informationpanelcontent.cpp @@ -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))); diff --git a/src/settings/general/previewssettingspage.cpp b/src/settings/general/previewssettingspage.cpp index 913ca0817..4df3fc378 100644 --- a/src/settings/general/previewssettingspage.cpp +++ b/src/settings/general/previewssettingspage.cpp @@ -35,6 +35,7 @@ #include #include +#include #include #include #include @@ -42,13 +43,11 @@ #include #include #include -#include #include // 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: 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: 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(m_localFileSizeBox->value()) * 1024 * 1024; - globalConfig.writeEntry("MaximumSize", - maximumLocalSize, - KConfigBase::Normal | KConfigBase::Global); const qulonglong maximumRemoteSize = static_cast(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(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(MaxRemotePreviewSize) * 1024 * 1024; const qulonglong maxRemoteByteSize = globalConfig.readEntry("MaximumRemoteSize", defaultRemotePreview); const int maxRemoteMByteSize = maxRemoteByteSize / (1024 * 1024); diff --git a/src/settings/general/previewssettingspage.h b/src/settings/general/previewssettingspage.h index ef3ad267e..a43535133 100644 --- a/src/settings/general/previewssettingspage.h +++ b/src/settings/general/previewssettingspage.h @@ -61,7 +61,6 @@ private: bool m_initialized; QListView *m_listView; QStringList m_enabledPreviewPlugins; - KIntSpinBox* m_localFileSizeBox; KIntSpinBox* m_remoteFileSizeBox; }; diff --git a/src/views/tooltips/tooltipmanager.cpp b/src/views/tooltips/tooltipmanager.cpp index ed0a9c512..8b2e98dae 100644 --- a/src/views/tooltips/tooltipmanager.cpp +++ b/src/views/tooltips/tooltipmanager.cpp @@ -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)));