diff --git a/src/kcms/kio/netpref.h b/src/kcms/kio/netpref.h --- a/src/kcms/kio/netpref.h +++ b/src/kcms/kio/netpref.h @@ -29,6 +29,7 @@ QGroupBox* gb_Ftp; QGroupBox* gb_Timeout; QCheckBox* cb_globalMarkPartial; + KPluralHandlingSpinBox* sb_globalMinimumKeepSize; QCheckBox* cb_ftpEnablePasv; QCheckBox* cb_ftpMarkPartial; diff --git a/src/kcms/kio/netpref.cpp b/src/kcms/kio/netpref.cpp --- a/src/kcms/kio/netpref.cpp +++ b/src/kcms/kio/netpref.cpp @@ -82,6 +82,20 @@ this, &KIOPreferences::configChanged); globalLayout->addWidget(cb_globalMarkPartial); + auto partialWidget = new QWidget(this); + connect(cb_globalMarkPartial, &QAbstractButton::toggled, + partialWidget, [partialWidget](bool checked) { partialWidget->setEnabled(checked); }); + globalLayout->addWidget(partialWidget); + auto partialLayout = new QFormLayout(gb_Global); + partialLayout->setContentsMargins(20, 0, 0, 0); // indent below mark partial + partialWidget->setLayout(partialLayout); + sb_globalMinimumKeepSize = new KPluralHandlingSpinBox( this ); + sb_globalMinimumKeepSize->setSuffix( ki18np( " byte", " bytes" ) ); + connect(sb_globalMinimumKeepSize, QOverload::of(&QSpinBox::valueChanged), + this, &KIOPreferences::configChanged); + partialLayout->addRow(i18nc( "@label:spinbox", "Minimum size required to keep on cancel:" ), + sb_globalMinimumKeepSize); + gb_Ftp = new QGroupBox( i18n( "FTP Options" ), this ); mainLayout->addWidget( gb_Ftp ); QVBoxLayout* ftpLayout = new QVBoxLayout(gb_Ftp); @@ -127,6 +141,8 @@ sb_proxyConnect->setValue( proto.proxyConnectTimeout() ); cb_globalMarkPartial->setChecked( proto.markPartial() ); + sb_globalMinimumKeepSize->setRange( 0, 1024 * 1024 * 1024 /* 1 GiB */ ); + sb_globalMinimumKeepSize->setValue( proto.minimumKeepSize() ); KConfig config( QStringLiteral("kio_ftprc"), KConfig::NoGlobals ); cb_ftpEnablePasv->setChecked( !config.group("").readEntry( "DisablePassiveMode", false ) ); @@ -142,6 +158,7 @@ KSaveIOConfig::setProxyConnectTimeout( sb_proxyConnect->value() ); KSaveIOConfig::setMarkPartial( cb_globalMarkPartial->isChecked() ); + KSaveIOConfig::setMinimumKeepSize( sb_globalMinimumKeepSize->value() ); KConfig config(QStringLiteral("kio_ftprc"), KConfig::NoGlobals); config.group("").writeEntry( "DisablePassiveMode", !cb_ftpEnablePasv->isChecked() );