# HG changeset patch # User Hasan Yavuz Ă–ZDERYA # Date 2016-09-03 02:19:30 # Node ID 30cf692b39eef5033494cf2acde54e7b571c5285 # Parent 64927d61468d59b9ce0d81fcd98643a6ae22ba39 simplified parity setting code diff --git a/src/portcontrol.cpp b/src/portcontrol.cpp --- a/src/portcontrol.cpp +++ b/src/portcontrol.cpp @@ -23,11 +23,19 @@ #include #include #include +#include #include #include "utils.h" #define TBPORTLIST_MINWIDTH (200) +// setting mappings +const QMap paritySettingMap({ + {QSerialPort::NoParity, "none"}, + {QSerialPort::OddParity, "odd"}, + {QSerialPort::EvenParity, "even"}, + }); + PortControl::PortControl(QSerialPort* port, QWidget* parent) : QWidget(parent), ui(new Ui::PortControl), @@ -311,18 +319,8 @@ void PortControl::onTbPortListActivated( QString PortControl::currentParityText() { - if (parityButtons.checkedId() == QSerialPort::OddParity) - { - return "odd"; - } - else if (parityButtons.checkedId() == QSerialPort::EvenParity) - { - return "even"; - } - else // no parity - { - return "none"; - } + return paritySettingMap.value( + (QSerialPort::Parity) parityButtons.checkedId()); } QString PortControl::currentFlowControlText() @@ -373,22 +371,12 @@ void PortControl::loadSettings(QSettings if (baudIndex > -1) ui->cbBaudRate->setCurrentIndex(baudIndex); // load parity setting - QString paritySetting = + QString parityText = settings->value("parity", currentParityText()).toString(); - - if (paritySetting == "odd") - { - ui->rbOddParity->setChecked(true); - } - else if (paritySetting == "even") - { - ui->rbEvenParity->setChecked(true); - } - else - { - ui->rbNoParity->setChecked(true); - } - selectParity((QSerialPort::Parity) parityButtons.checkedId()); + QSerialPort::Parity paritySetting = paritySettingMap.key( + parityText, (QSerialPort::Parity) parityButtons.checkedId()); + parityButtons.button(paritySetting)->setChecked(true); + selectParity(paritySetting); // load number of bits int dataBits = settings->value("dataBits", dataBitsButtons.checkedId()).toInt();