diff --git a/src/settings/general/previewssettingspage.h b/src/settings/general/previewssettingspage.h --- a/src/settings/general/previewssettingspage.h +++ b/src/settings/general/previewssettingspage.h @@ -62,6 +62,7 @@ QListView *m_listView; QStringList m_enabledPreviewPlugins; QSpinBox* m_remoteFileSizeBox; + QSpinBox* m_FileSizeBox; }; #endif diff --git a/src/settings/general/previewssettingspage.cpp b/src/settings/general/previewssettingspage.cpp --- a/src/settings/general/previewssettingspage.cpp +++ b/src/settings/general/previewssettingspage.cpp @@ -39,14 +39,16 @@ // default settings namespace { const int MaxRemotePreviewSize = 0; // 0 MB + const int MaxPreviewSize = 50; // 50 MB } PreviewsSettingsPage::PreviewsSettingsPage(QWidget* parent) : SettingsPageBase(parent), m_initialized(false), m_listView(nullptr), m_enabledPreviewPlugins(), - m_remoteFileSizeBox(nullptr) + m_remoteFileSizeBox(nullptr), + m_FileSizeBox(nullptr) { QVBoxLayout* topLayout = new QVBoxLayout(this); @@ -79,14 +81,27 @@ fileSizeBoxLayout->addWidget(remoteFileSizeLabel, 0, Qt::AlignRight); fileSizeBoxLayout->addWidget(m_remoteFileSizeBox); + QLabel* FileSizeLabel = new QLabel(i18nc("@label", "Skip previews for files above:"), this); + + m_FileSizeBox = new QSpinBox(this); + m_FileSizeBox->setSingleStep(1); + m_FileSizeBox->setSuffix(QStringLiteral(" MB")); + m_FileSizeBox->setRange(0, 9999999); /* MB */ + + QHBoxLayout* fileSizeBoxLayout2 = new QHBoxLayout(); + fileSizeBoxLayout2->addWidget(FileSizeLabel, 50, Qt::AlignRight); + fileSizeBoxLayout2->addWidget(m_FileSizeBox); + topLayout->addWidget(showPreviewsLabel); topLayout->addWidget(m_listView); topLayout->addLayout(fileSizeBoxLayout); + topLayout->addLayout(fileSizeBoxLayout2); loadSettings(); connect(m_listView, &QListView::clicked, this, &PreviewsSettingsPage::changed); connect(m_remoteFileSizeBox, QOverload::of(&QSpinBox::valueChanged), this, &PreviewsSettingsPage::changed); + connect(m_FileSizeBox, QOverload::of(&QSpinBox::valueChanged), this, &PreviewsSettingsPage::changed); } PreviewsSettingsPage::~PreviewsSettingsPage() @@ -116,12 +131,18 @@ globalConfig.writeEntry("MaximumRemoteSize", maximumRemoteSize, KConfigBase::Normal | KConfigBase::Global); + + const qulonglong maximumSize = static_cast(m_FileSizeBox->value())* 1024 * 1024; + globalConfig.writeEntry("MaximumSize", + maximumSize, + KConfigBase::Normal | KConfigBase::Global); globalConfig.sync(); } void PreviewsSettingsPage::restoreDefaults() { m_remoteFileSizeBox->setValue(MaxRemotePreviewSize); + m_FileSizeBox->setValue(MaxPreviewSize); } void PreviewsSettingsPage::showEvent(QShowEvent* event) @@ -173,5 +194,10 @@ const qulonglong maxRemoteByteSize = globalConfig.readEntry("MaximumRemoteSize", defaultRemotePreview); const int maxRemoteMByteSize = maxRemoteByteSize / (1024 * 1024); m_remoteFileSizeBox->setValue(maxRemoteMByteSize); + + const qulonglong defaultPreview = static_cast(MaxPreviewSize)* 1024 * 1024; + const qulonglong maxByteSize = globalConfig.readEntry("MaximumSize", defaultPreview); + const int maxMByteSize = maxByteSize / (1024 * 1024); + m_FileSizeBox->setValue(maxMByteSize); }