[gui] add explicit prune setter

This makes it possible to enable pruning after the OptionsModel has been initialized and reset.
This commit is contained in:
Sjors Provoost
2019-08-24 22:31:14 +02:00
parent 1bccf6a52d
commit 1957103786
4 changed files with 26 additions and 5 deletions

View File

@@ -92,11 +92,7 @@ void OptionsModel::Init(bool resetSettings)
settings.setValue("bPrune", false);
if (!settings.contains("nPruneSize"))
settings.setValue("nPruneSize", 2);
// Convert prune size from GB to MiB:
const uint64_t nPruneSizeMiB = (settings.value("nPruneSize").toInt() * GB_BYTES) >> 20;
if (!m_node.softSetArg("-prune", settings.value("bPrune").toBool() ? std::to_string(nPruneSizeMiB) : "0")) {
addOverriddenOption("-prune");
}
SetPrune(settings.value("bPrune").toBool());
if (!settings.contains("nDatabaseCache"))
settings.setValue("nDatabaseCache", (qint64)nDefaultDbCache);
@@ -240,6 +236,22 @@ static const QString GetDefaultProxyAddress()
return QString("%1:%2").arg(DEFAULT_GUI_PROXY_HOST).arg(DEFAULT_GUI_PROXY_PORT);
}
void OptionsModel::SetPrune(bool prune, bool force)
{
QSettings settings;
settings.setValue("bPrune", prune);
// Convert prune size from GB to MiB:
const uint64_t nPruneSizeMiB = (settings.value("nPruneSize").toInt() * GB_BYTES) >> 20;
std::string prune_val = prune ? std::to_string(nPruneSizeMiB) : "0";
if (force) {
m_node.forceSetArg("-prune", prune_val);
return;
}
if (!m_node.softSetArg("-prune", prune_val)) {
addOverriddenOption("-prune");
}
}
// read QSettings values and return them
QVariant OptionsModel::data(const QModelIndex & index, int role) const
{