Qt/Options: Configure limitdescendant{count,size} using rwconf

This commit is contained in:
Luke Dashjr 2022-05-21 05:54:41 +00:00
parent 2b9e07c44f
commit a0aeb7b065
4 changed files with 38 additions and 0 deletions

View File

@ -245,6 +245,16 @@ OptionsDialog::OptionsDialog(QWidget* parent, bool enableWallet)
limitancestorsize->setMaximum(std::numeric_limits<int>::max());
CreateOptionUI(verticalLayout_Spamfiltering, limitancestorsize, tr("Ignore transactions whose size with all unconfirmed ancestors exceeds %s kilobytes."));
limitdescendantcount = new QSpinBox(groupBox_Spamfiltering);
limitdescendantcount->setMinimum(1);
limitdescendantcount->setMaximum(std::numeric_limits<int>::max());
CreateOptionUI(verticalLayout_Spamfiltering, limitdescendantcount, tr("Ignore transactions if any ancestor would have %s or more unconfirmed descendants."));
limitdescendantsize = new QSpinBox(groupBox_Spamfiltering);
limitdescendantsize->setMinimum(1);
limitdescendantsize->setMaximum(std::numeric_limits<int>::max());
CreateOptionUI(verticalLayout_Spamfiltering, limitdescendantsize, tr("Ignore transactions if any ancestor would have more than %s kilobytes of unconfirmed descendants."));
verticalLayout_Mempool->addWidget(groupBox_Spamfiltering);
verticalLayout_Mempool->addItem(new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding));
@ -492,6 +502,8 @@ void OptionsDialog::setMapper()
mapper->addMapping(bytespersigopstrict, OptionsModel::bytespersigopstrict);
mapper->addMapping(limitancestorcount, OptionsModel::limitancestorcount);
mapper->addMapping(limitancestorsize, OptionsModel::limitancestorsize);
mapper->addMapping(limitdescendantcount, OptionsModel::limitdescendantcount);
mapper->addMapping(limitdescendantsize, OptionsModel::limitdescendantsize);
/* Window */
#ifndef Q_OS_MACOS

View File

@ -98,6 +98,8 @@ private:
QSpinBox *bytespersigop, *bytespersigopstrict;
QSpinBox *limitancestorcount;
QSpinBox *limitancestorsize;
QSpinBox *limitdescendantcount;
QSpinBox *limitdescendantsize;
};
#endif // BITCOIN_QT_OPTIONSDIALOG_H

View File

@ -629,6 +629,10 @@ QVariant OptionsModel::getOption(OptionID option, const std::string& suffix) con
return qlonglong(node().mempool().m_limits.ancestor_count);
case limitancestorsize:
return qlonglong(node().mempool().m_limits.ancestor_size_vbytes / 1'000);
case limitdescendantcount:
return qlonglong(node().mempool().m_limits.descendant_count);
case limitdescendantsize:
return qlonglong(node().mempool().m_limits.descendant_size_vbytes / 1'000);
default:
return QVariant();
}
@ -1039,6 +1043,24 @@ bool OptionsModel::setOption(OptionID option, const QVariant& value, const std::
gArgs.ModifyRWConfigFile("limitancestorsize", strNv);
}
break;
case limitdescendantcount:
if (changed()) {
long long nNv = value.toLongLong();
std::string strNv = value.toString().toStdString();
node().mempool().m_limits.descendant_count = nNv;
gArgs.ForceSetArg("-limitdescendantcount", strNv);
gArgs.ModifyRWConfigFile("limitdescendantcount", strNv);
}
break;
case limitdescendantsize:
if (changed()) {
long long nNv = value.toLongLong();
std::string strNv = value.toString().toStdString();
node().mempool().m_limits.descendant_size_vbytes = nNv * 1'000;
gArgs.ForceSetArg("-limitdescendantsize", strNv);
gArgs.ModifyRWConfigFile("limitdescendantsize", strNv);
}
break;
default:
break;
}

View File

@ -89,6 +89,8 @@ public:
bytespersigopstrict,
limitancestorcount,
limitancestorsize,
limitdescendantcount,
limitdescendantsize,
OptionIDRowCount,
};