Skip to content

Commit a38caff

Browse files
committed
Bugfix: GUI/OptionsDialog: Properly disable dustdynamic labels when appropriate
1 parent 1e52985 commit a38caff

File tree

1 file changed

+18
-5
lines changed

1 file changed

+18
-5
lines changed

src/qt/optionsdialog.cpp

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#include <primitives/transaction.h> // for WITNESS_SCALE_FACTOR
2727
#include <txdb.h>
2828
#include <txmempool.h> // for maxmempoolMinimum
29+
#include <util/check.h>
2930
#include <util/strencodings.h>
3031
#include <chrono>
3132
#include <utility>
@@ -95,9 +96,24 @@ void OptionsDialog::CreateOptionUI(QBoxLayout * const layout, QWidget * const o,
9596

9697
layout->addLayout(horizontalLayout);
9798

99+
o->setProperty("L", QVariant::fromValue((QLayout*)horizontalLayout));
100+
98101
FixTabOrder(o);
99102
}
100103

104+
static void setSiblingsEnabled(QWidget * const o, const bool state)
105+
{
106+
auto layout = o->property("L").value<QLayout*>();
107+
Assert(layout);
108+
// NOTE: QLayout::children does not do what we need here
109+
for (int i = layout->count(); i-- > 0; ) {
110+
QLayoutItem * const layoutitem = layout->itemAt(i);
111+
QWidget * const childwidget = layoutitem->widget();
112+
if (!childwidget) continue;
113+
childwidget->setEnabled(state);
114+
}
115+
}
116+
101117
int setFontChoice(QComboBox* cb, const OptionsModel::FontChoice& fc)
102118
{
103119
int i;
@@ -417,15 +433,12 @@ OptionsDialog::OptionsDialog(QWidget* parent, bool enableWallet)
417433

418434
connect(dustdynamic_enable, &QAbstractButton::toggled, [this](const bool state){
419435
dustdynamic_multiplier->setEnabled(state);
420-
dustdynamic_target->setEnabled(state);
421-
dustdynamic_mempool->setEnabled(state);
436+
setSiblingsEnabled(dustdynamic_target_blocks, state);
437+
setSiblingsEnabled(dustdynamic_mempool_kvB, state);
422438
if (state) {
423439
if (!dustdynamic_mempool->isChecked()) dustdynamic_target->setChecked(true);
424440
dustdynamic_target_blocks->setEnabled(dustdynamic_target->isChecked());
425441
dustdynamic_mempool_kvB->setEnabled(dustdynamic_mempool->isChecked());
426-
} else {
427-
dustdynamic_target_blocks->setEnabled(false);
428-
dustdynamic_mempool_kvB->setEnabled(false);
429442
}
430443
});
431444
dustdynamic_enable->toggled(dustdynamic_enable->isChecked());

0 commit comments

Comments
 (0)