diff --git a/src/EditProfileDialog.h b/src/EditProfileDialog.h --- a/src/EditProfileDialog.h +++ b/src/EditProfileDialog.h @@ -264,13 +264,13 @@ int value; const char *slot; }; - void setupRadio(RadioOption *possibilities, int actual); + void setupRadio(const QVector& possibilities, int actual); struct BooleanOption { QAbstractButton *button; Profile::Property property; const char *slot; }; - void setupCheckBoxes(BooleanOption *options, const Profile::Ptr profile); + void setupCheckBoxes(const QVector& options, const Profile::Ptr profile); // returns false if: // - the profile name is empty diff --git a/src/EditProfileDialog.cpp b/src/EditProfileDialog.cpp --- a/src/EditProfileDialog.cpp +++ b/src/EditProfileDialog.cpp @@ -1255,40 +1255,30 @@ } } -void EditProfileDialog::setupCheckBoxes(BooleanOption *options, const Profile::Ptr profile) +void EditProfileDialog::setupCheckBoxes(const QVector& options, const Profile::Ptr profile) { - while (options->button != nullptr) { - options->button->setChecked(profile->property(options->property)); - connect(options->button, SIGNAL(toggled(bool)), this, options->slot); - - ++options; + for(const auto& option : options) { + option.button->setChecked(profile->property(option.property)); + connect(option.button, SIGNAL(toggled(bool)), this, option.slot); } } -void EditProfileDialog::setupRadio(RadioOption *possibilities, int actual) +void EditProfileDialog::setupRadio(const QVector& possibilities, int actual) { - while (possibilities->button != nullptr) { - if (possibilities->value == actual) { - possibilities->button->setChecked(true); - } else { - possibilities->button->setChecked(false); - } - - connect(possibilities->button, SIGNAL(clicked()), this, possibilities->slot); - - ++possibilities; + for(const auto& possibility : possibilities) { + possibility.button->setChecked(possibility.value == actual); + connect(possibility.button, SIGNAL(clicked()), this, possibility.slot); } } void EditProfileDialog::setupScrollingPage(const Profile::Ptr profile) { // setup scrollbar radio int scrollBarPosition = profile->property(Profile::ScrollBarPosition); - RadioOption positions[] = { {_ui->scrollBarHiddenButton, Enum::ScrollBarHidden, SLOT(hideScrollBar())}, + const auto positions = QVector{ {_ui->scrollBarHiddenButton, Enum::ScrollBarHidden, SLOT(hideScrollBar())}, {_ui->scrollBarLeftButton, Enum::ScrollBarLeft, SLOT(showScrollBarLeft())}, - {_ui->scrollBarRightButton, Enum::ScrollBarRight, SLOT(showScrollBarRight())}, - {nullptr, 0, nullptr}}; + {_ui->scrollBarRightButton, Enum::ScrollBarRight, SLOT(showScrollBarRight())}}; setupRadio(positions, scrollBarPosition); @@ -1305,10 +1295,9 @@ // setup scrollpageamount type radio int scrollFullPage = profile->property(Profile::ScrollFullPage); - RadioOption pageamounts[] = { + const auto pageamounts = QVector{ {_ui->scrollHalfPage, Enum::ScrollPageHalf, SLOT(scrollHalfPage())}, - {_ui->scrollFullPage, Enum::ScrollPageFull, SLOT(scrollFullPage())}, - {nullptr, 0, nullptr} + {_ui->scrollFullPage, Enum::ScrollPageFull, SLOT(scrollFullPage())} }; setupRadio(pageamounts, scrollFullPage); @@ -1355,7 +1344,7 @@ void EditProfileDialog::setupMousePage(const Profile::Ptr profile) { - BooleanOption options[] = { + const auto options = QVector{ { _ui->underlineLinksButton, Profile::UnderlineLinksEnabled, SLOT(toggleUnderlineLinks(bool)) @@ -1395,18 +1384,15 @@ { _ui->enableAlternateScrollingButton, Profile::AlternateScrolling, SLOT(toggleAlternateScrolling(bool)) - }, - { nullptr, Profile::Property(0), nullptr } + } }; setupCheckBoxes(options, profile); // setup middle click paste mode const int middleClickPasteMode = profile->property(Profile::MiddleClickPasteMode); - RadioOption pasteModes[] = { + const auto pasteModes = QVector { {_ui->pasteFromX11SelectionButton, Enum::PasteFromX11Selection, SLOT(pasteFromX11Selection())}, - {_ui->pasteFromClipboardButton, Enum::PasteFromClipboard, SLOT(pasteFromClipboard())}, - {nullptr, 0, nullptr} - }; + {_ui->pasteFromClipboardButton, Enum::PasteFromClipboard, SLOT(pasteFromClipboard())} }; setupRadio(pasteModes, middleClickPasteMode); // interaction options @@ -1427,7 +1413,7 @@ void EditProfileDialog::setupAdvancedPage(const Profile::Ptr profile) { - BooleanOption options[] = { + const auto options = QVector{ { _ui->enableBlinkingTextButton, Profile::BlinkingTextEnabled, SLOT(toggleBlinkingText(bool)) @@ -1443,8 +1429,7 @@ { _ui->enableBidiRenderingButton, Profile::BidiRenderingEnabled, SLOT(togglebidiRendering(bool)) - }, - { nullptr, Profile::Property(0), nullptr } + } }; setupCheckBoxes(options, profile);