# HG changeset patch # User Hasan Yavuz Ă–ZDERYA # Date 2016-09-04 03:03:28 # Node ID 938f730ccdfec2d663163762b24a4a6a0b0222b1 # Parent c6761f5a99cbda900333f74e53e131b19e1f3dc1 save/load data format selection diff --git a/src/dataformatpanel.cpp b/src/dataformatpanel.cpp --- a/src/dataformatpanel.cpp +++ b/src/dataformatpanel.cpp @@ -22,9 +22,11 @@ #include #include +#include #include #include "utils.h" +#include "setting_defines.h" #include "floatswap.h" DataFormatPanel::DataFormatPanel(QSerialPort* port, @@ -145,3 +147,53 @@ void DataFormatPanel::selectReader(Abstr currentReader = reader; } + +void DataFormatPanel::saveSettings(QSettings* settings) +{ + settings->beginGroup(SettingGroup_DataFormat); + + // save selected format + QString format; + if (currentReader == &bsReader) + { + format = "binary"; + } + else if (currentReader == &asciiReader) + { + format = "ascii"; + } + else // framed reader + { + format = "custom"; + } + settings->setValue(SG_DataFormat_Format, format); + + settings->endGroup(); +} + +void DataFormatPanel::loadSettings(QSettings* settings) +{ + settings->beginGroup(SettingGroup_DataFormat); + + // load selected format + QString format = settings->value( + SG_DataFormat_Format, QString()).toString(); + + if (format == "binary") + { + selectReader(&bsReader); + ui->rbBinary->setChecked(true); + } + else if (format == "ascii") + { + selectReader(&asciiReader); + ui->rbAscii->setChecked(true); + } + else if (format == "custom") + { + selectReader(&framedReader); + ui->rbFramed->setChecked(true); + } // else current selection stays + + settings->endGroup(); +} diff --git a/src/dataformatpanel.h b/src/dataformatpanel.h --- a/src/dataformatpanel.h +++ b/src/dataformatpanel.h @@ -25,6 +25,7 @@ #include #include #include +#include #include #include "framebuffer.h" @@ -48,7 +49,12 @@ public: QWidget *parent = 0); ~DataFormatPanel(); + /// Returns currently selected number of channels unsigned numOfChannels(); + /// Stores data format panel settings into a `QSettings` + void saveSettings(QSettings* settings); + /// Loads data format panel settings from a `QSettings`. + void loadSettings(QSettings* settings); public slots: void pause(bool); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -431,12 +431,14 @@ void MainWindow::saveAllSettings(QSettin { saveMWSettings(settings); portControl.saveSettings(settings); + dataFormatPanel.saveSettings(settings); } void MainWindow::loadAllSettings(QSettings* settings) { loadMWSettings(settings); portControl.loadSettings(settings); + dataFormatPanel.loadSettings(settings); } void MainWindow::saveMWSettings(QSettings* settings) diff --git a/src/setting_defines.h b/src/setting_defines.h --- a/src/setting_defines.h +++ b/src/setting_defines.h @@ -40,4 +40,7 @@ const char SG_Port_DataBits[] = "dataBit const char SG_Port_StopBits[] = "stopBits"; const char SG_Port_FlowControl[] = "flowControl"; +// data format panel keys +const char SG_DataFormat_Format[] = "format"; + #endif // SETTING_DEFINES_H