Changeset - 716662cea3b5
[Not reviewed]
settings
0 2 0
Hasan Yavuz Ă–ZDERYA - 9 years ago 2016-09-03 02:24:25
hy@ozderya.net
close the port when loading settings
2 files changed with 4 insertions and 6 deletions:
0 comments (0 inline, 0 general)
src/portcontrol.cpp
Show inline comments
 
@@ -351,12 +351,15 @@ void PortControl::saveSettings(QSettings
 

	
 
    settings->endGroup();
 
}
 

	
 
void PortControl::loadSettings(QSettings* settings)
 
{
 
    // make sure the port is closed
 
    if (serialPort->isOpen()) togglePort();
 

	
 
    settings->beginGroup("Port");
 

	
 
    // set port name if it exists in the current list otherwise ignore
 
    QString portName = settings->value("selectedPort", QString()).toString();
 
    if (!portName.isEmpty())
 
    {
 
@@ -373,33 +376,29 @@ void PortControl::loadSettings(QSettings
 
    // load parity setting
 
    QString parityText =
 
        settings->value("parity", currentParityText()).toString();
 
    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();
 
    if (dataBits >=5 && dataBits <= 8)
 
    {
 
        dataBitsButtons.button((QSerialPort::DataBits) dataBits)->setChecked(true);
 
        selectDataBits(dataBits);
 
    }
 

	
 
    // load stop bits
 
    int stopBits = settings->value("stopBits", stopBitsButtons.checkedId()).toInt();
 
    if (stopBits == QSerialPort::OneStop)
 
    {
 
        ui->rb1StopBit->setChecked(true);
 
        selectStopBits(QSerialPort::OneStop);
 
    }
 
    else if (stopBits == QSerialPort::TwoStop)
 
    {
 
        ui->rb2StopBit->setChecked(true);
 
        selectStopBits(QSerialPort::TwoStop);
 
    }
 

	
 
    // load flow control
 
    QString flowControlSetting =
 
        settings->value("flowControl", currentFlowControlText()).toString();
 
    if (flowControlSetting == "hardware")
 
@@ -411,10 +410,9 @@ void PortControl::loadSettings(QSettings
 
        ui->rbSoftwareControl->setChecked(true);
 
    }
 
    else
 
    {
 
        ui->rbNoFlowControl->setChecked(true);
 
    }
 
    selectFlowControl(flowControlButtons.checkedId());
 

	
 
    settings->endGroup();
 
}
src/portcontrol.h
Show inline comments
 
@@ -45,13 +45,13 @@ public:
 

	
 
    QSerialPort* serialPort;
 
    QToolBar* toolBar();
 

	
 
    /// Stores port settings into a `QSettings`
 
    void saveSettings(QSettings* settings);
 
    /// Loads port settings from a `QSettings`
 
    /// Loads port settings from a `QSettings`. If open serial port is closed.
 
    void loadSettings(QSettings* settings);
 

	
 
private:
 
    Ui::PortControl *ui;
 

	
 
    QButtonGroup parityButtons;
0 comments (0 inline, 0 general)