Qt/Options: Configure datacarrier[size] using rwconf

This commit is contained in:
Luke Dashjr 2016-02-16 05:50:46 +00:00
parent 12d03cfb6e
commit dbf79b08ab
5 changed files with 28 additions and 1 deletions

View File

@ -264,6 +264,12 @@ OptionsDialog::OptionsDialog(QWidget* parent, bool enableWallet)
verticalLayout_Spamfiltering->addWidget(rejectbaremultisig);
FixTabOrder(rejectbaremultisig);
datacarriersize = new QSpinBox(groupBox_Spamfiltering);
datacarriersize->setMinimum(0);
datacarriersize->setMaximum(std::numeric_limits<int>::max());
datacarriersize->setToolTip(tr("Since 2014, a specific method for attaching arbitrary data to transactions has been recognised as not requiring space in the coin database. Since it is sometimes impractical to detect small spam disguised as ordinary transactions, it is sometimes considered beneficial to treat these less harmful data attachments as equals to legitimate usage."));
CreateOptionUI(verticalLayout_Spamfiltering, datacarriersize, tr("Ignore transactions with additional data larger than %s bytes."));
verticalLayout_Mempool->addWidget(groupBox_Spamfiltering);
verticalLayout_Mempool->addItem(new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding));
@ -515,6 +521,7 @@ void OptionsDialog::setMapper()
mapper->addMapping(limitdescendantcount, OptionsModel::limitdescendantcount);
mapper->addMapping(limitdescendantsize, OptionsModel::limitdescendantsize);
mapper->addMapping(rejectbaremultisig, OptionsModel::rejectbaremultisig);
mapper->addMapping(datacarriersize, OptionsModel::datacarriersize);
/* Window */
#ifndef Q_OS_MACOS

View File

@ -101,6 +101,7 @@ private:
QSpinBox *limitdescendantcount;
QSpinBox *limitdescendantsize;
QCheckBox *rejectbaremultisig;
QSpinBox *datacarriersize;
};
#endif // BITCOIN_QT_OPTIONSDIALOG_H

View File

@ -656,6 +656,8 @@ QVariant OptionsModel::getOption(OptionID option, const std::string& suffix) con
return qlonglong(node().mempool().m_limits.descendant_size_vbytes / 1'000);
case rejectbaremultisig:
return !node().mempool().m_permit_bare_multisig;
case datacarriersize:
return qlonglong(node().mempool().m_max_datacarrier_bytes.value_or(0));
default:
return QVariant();
}
@ -1092,6 +1094,22 @@ bool OptionsModel::setOption(OptionID option, const QVariant& value, const std::
gArgs.ModifyRWConfigFile("permitbaremultisig", strprintf("%d", fNewValue));
}
break;
case datacarriersize:
if (changed()) {
const int nNewSize = value.toInt();
const bool fNewEn = (nNewSize > 0);
if (fNewEn) {
if (!node().mempool().m_max_datacarrier_bytes.has_value()) {
gArgs.ModifyRWConfigFile("datacarrier", strprintf("%d", fNewEn));
}
gArgs.ModifyRWConfigFile("datacarriersize", value.toString().toStdString());
node().mempool().m_max_datacarrier_bytes = nNewSize;
} else {
gArgs.ModifyRWConfigFile("datacarrier", "0");
node().mempool().m_max_datacarrier_bytes = std::nullopt;
}
}
break;
default:
break;
}

View File

@ -92,6 +92,7 @@ public:
limitdescendantcount,
limitdescendantsize,
rejectbaremultisig, // bool
datacarriersize,
OptionIDRowCount,
};

View File

@ -463,7 +463,7 @@ public:
bool m_permit_bare_multisig;
bool m_reject_parasites;
bool m_reject_tokens;
const std::optional<unsigned> m_max_datacarrier_bytes;
std::optional<unsigned> m_max_datacarrier_bytes;
bool m_datacarrier_fullcount;
bool m_accept_non_std_datacarrier;
bool m_require_standard;