# HG changeset patch # User Hasan Yavuz Ă–ZDERYA # Date 2016-09-05 03:32:57 # Node ID 5b3f4916ebcf380de03aefbddd66353acbff862f # Parent d90a9a2092c3e41d445d2f0b7c0ff79f5cd0b78e implemented settings for ascii reader diff --git a/src/asciireader.cpp b/src/asciireader.cpp --- a/src/asciireader.cpp +++ b/src/asciireader.cpp @@ -159,3 +159,13 @@ void AsciiReader::onDataReady() emit dataAdded(); } } + +void AsciiReader::saveSettings(QSettings* settings) +{ + _settingsWidget.saveSettings(settings); +} + +void AsciiReader::loadSettings(QSettings* settings) +{ + _settingsWidget.loadSettings(settings); +} diff --git a/src/asciireader.h b/src/asciireader.h --- a/src/asciireader.h +++ b/src/asciireader.h @@ -20,6 +20,8 @@ #ifndef ASCIIREADER_H #define ASCIIREADER_H +#include + #include "abstractreader.h" #include "asciireadersettings.h" @@ -32,6 +34,10 @@ public: QWidget* settingsWidget(); unsigned numOfChannels(); void enable(bool enabled = true); + /// Stores settings into a `QSettings` + void saveSettings(QSettings* settings); + /// Loads settings from a `QSettings`. + void loadSettings(QSettings* settings); public slots: void pause(bool); diff --git a/src/asciireadersettings.cpp b/src/asciireadersettings.cpp --- a/src/asciireadersettings.cpp +++ b/src/asciireadersettings.cpp @@ -18,10 +18,13 @@ */ #include "utils.h" +#include "setting_defines.h" #include "asciireadersettings.h" #include "ui_asciireadersettings.h" +#include + AsciiReaderSettings::AsciiReaderSettings(QWidget *parent) : QWidget(parent), ui(new Ui::AsciiReaderSettings) @@ -45,3 +48,40 @@ unsigned AsciiReaderSettings::numOfChann { return ui->spNumOfChannels->value(); } + +void AsciiReaderSettings::saveSettings(QSettings* settings) +{ + settings->beginGroup(SettingGroup_ASCII); + + // save number of channels setting + QString numOfChannelsSetting = QString::number(numOfChannels()); + if (numOfChannelsSetting == "0") numOfChannelsSetting = "auto"; + settings->setValue(SG_ASCII_NumOfChannels, numOfChannelsSetting); + + settings->endGroup(); +} + +void AsciiReaderSettings::loadSettings(QSettings* settings) +{ + settings->beginGroup(SettingGroup_ASCII); + + // load number of channels + QString numOfChannelsSetting = + settings->value(SG_ASCII_NumOfChannels, numOfChannels()).toString(); + + if (numOfChannelsSetting == "auto") + { + ui->spNumOfChannels->setValue(0); + } + else + { + bool ok; + int nc = numOfChannelsSetting.toInt(&ok); + if (ok) + { + ui->spNumOfChannels->setValue(nc); + } + } + + settings->endGroup(); +} diff --git a/src/asciireadersettings.h b/src/asciireadersettings.h --- a/src/asciireadersettings.h +++ b/src/asciireadersettings.h @@ -21,6 +21,7 @@ #define ASCIIREADERSETTINGS_H #include +#include namespace Ui { class AsciiReaderSettings; @@ -35,6 +36,10 @@ public: ~AsciiReaderSettings(); unsigned numOfChannels(); + /// Stores settings into a `QSettings` + void saveSettings(QSettings* settings); + /// Loads settings from a `QSettings`. + void loadSettings(QSettings* settings); signals: void numOfChannelsChanged(unsigned); diff --git a/src/dataformatpanel.cpp b/src/dataformatpanel.cpp --- a/src/dataformatpanel.cpp +++ b/src/dataformatpanel.cpp @@ -172,6 +172,7 @@ void DataFormatPanel::saveSettings(QSett // save reader settings bsReader.saveSettings(settings); + asciiReader.saveSettings(settings); } void DataFormatPanel::loadSettings(QSettings* settings) @@ -202,4 +203,5 @@ void DataFormatPanel::loadSettings(QSett // load reader settings bsReader.loadSettings(settings); + asciiReader.loadSettings(settings); } diff --git a/src/setting_defines.h b/src/setting_defines.h --- a/src/setting_defines.h +++ b/src/setting_defines.h @@ -24,6 +24,7 @@ const char SettingGroup_MainWindow[] = " const char SettingGroup_Port[] = "Port"; const char SettingGroup_DataFormat[] = "DataFormat"; const char SettingGroup_Binary[] = "DataFormat_Binary"; +const char SettingGroup_ASCII[] = "DataFormat_ASCII"; const char SettingGroup_Channels[] = "Channels"; const char SettingGroup_Plot[] = "Plot"; const char SettingGroup_Commands[] = "Commands"; @@ -50,4 +51,7 @@ const char SG_Binary_NumOfChannels[] = " const char SG_Binary_NumberFormat[] = "numberFormat"; const char SG_Binary_Endianness[] = "endianness"; +// ascii reader keys +const char SG_ASCII_NumOfChannels[] = "numOfChannels"; + #endif // SETTING_DEFINES_H