|
45 | 45 | #include <QLocale>
|
46 | 46 | #include <QMessageBox>
|
47 | 47 | #include <QRadioButton>
|
| 48 | +#include <QScrollArea> |
| 49 | +#include <QScrollBar> |
48 | 50 | #include <QSpacerItem>
|
49 | 51 | #include <QString>
|
50 | 52 | #include <QStringList>
|
|
53 | 55 | #include <QVBoxLayout>
|
54 | 56 | #include <QWidget>
|
55 | 57 |
|
| 58 | +ModScrollArea::ModScrollArea() |
| 59 | +{ |
| 60 | + setWidgetResizable(true); |
| 61 | + setFrameShape(QFrame::NoFrame); |
| 62 | + setObjectName(QStringLiteral("scroll")); |
| 63 | + setStyleSheet("QScrollArea#scroll, QScrollArea#scroll > QWidget > QWidget { background: transparent; } QScrollArea#scroll > QWidget > QScrollBar { background: palette(base); }"); |
| 64 | +} |
| 65 | + |
| 66 | +ModScrollArea *ModScrollArea::fromWidget(QWidget * const parent, QWidget * const o) |
| 67 | +{ |
| 68 | + auto * const scroll = new ModScrollArea; |
| 69 | + scroll->setWidget(o); |
| 70 | + return scroll; |
| 71 | +} |
| 72 | + |
| 73 | +QSize ModScrollArea::minimumSizeHint() const |
| 74 | +{ |
| 75 | + auto w = widget()->minimumSizeHint().width(); |
| 76 | + w += verticalScrollBar()->sizeHint().width(); |
| 77 | + const auto h = fontMetrics().height() * 2; |
| 78 | + return QSize(w, h); |
| 79 | +} |
| 80 | + |
| 81 | +QSize ModScrollArea::sizeHint() const |
| 82 | +{ |
| 83 | + QSize sz = widget()->sizeHint(); |
| 84 | + sz.rwidth() += verticalScrollBar()->sizeHint().width(); |
| 85 | + return sz; |
| 86 | +} |
| 87 | + |
56 | 88 | void OptionsDialog::FixTabOrder(QWidget * const o)
|
57 | 89 | {
|
58 | 90 | BitcoinAmountField * const af = qobject_cast<BitcoinAmountField *>(o);
|
@@ -290,7 +322,7 @@ OptionsDialog::OptionsDialog(QWidget* parent, bool enableWallet)
|
290 | 322 |
|
291 | 323 | QWidget * const tabFilters = new QWidget();
|
292 | 324 | auto& groupBox_Spamfiltering = tabFilters;
|
293 |
| - ui->tabWidget->insertTab(ui->tabWidget->indexOf(ui->tabWindow), tabFilters, tr("Spam &filtering")); |
| 325 | + ui->tabWidget->insertTab(ui->tabWidget->indexOf(ui->tabWindow), ModScrollArea::fromWidget(this, groupBox_Spamfiltering), tr("Spam &filtering")); |
294 | 326 | QVBoxLayout * const verticalLayout_Spamfiltering = new QVBoxLayout(groupBox_Spamfiltering);
|
295 | 327 |
|
296 | 328 | rejectunknownscripts = new QCheckBox(groupBox_Spamfiltering);
|
@@ -461,7 +493,7 @@ OptionsDialog::OptionsDialog(QWidget* parent, bool enableWallet)
|
461 | 493 | });
|
462 | 494 |
|
463 | 495 |
|
464 |
| - verticalLayout_Spamfiltering->addItem(new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding)); |
| 496 | + verticalLayout_Spamfiltering->addStretch(1); |
465 | 497 |
|
466 | 498 | /* Mining tab */
|
467 | 499 |
|
@@ -587,6 +619,8 @@ OptionsDialog::OptionsDialog(QWidget* parent, bool enableWallet)
|
587 | 619 | ui->qrFont_preview->setVisible(false);
|
588 | 620 | #endif
|
589 | 621 |
|
| 622 | + adjustSize(); |
| 623 | + |
590 | 624 | GUIUtil::handleCloseWindowShortcut(this);
|
591 | 625 | }
|
592 | 626 |
|
|
0 commit comments