# HG changeset patch # User Hasan Yavuz Ă–ZDERYA # Date 2016-09-07 02:33:22 # Node ID c331aa68f3c2a373658e8b7026524a1a75675905 # Parent a9d626540c2c5700b79e3e3e3e1839e826f2a56a save/load channel names diff --git a/src/channelmanager.cpp b/src/channelmanager.cpp --- a/src/channelmanager.cpp +++ b/src/channelmanager.cpp @@ -17,11 +17,12 @@ along with serialplot. If not, see . */ -#include "channelmanager.h" - #include #include +#include "channelmanager.h" +#include "setting_defines.h" + ChannelManager::ChannelManager(unsigned numberOfChannels, unsigned numberOfSamples, QObject *parent) : QObject(parent) { @@ -143,3 +144,29 @@ void ChannelManager::addChannelData(unsi { channelBuffer(channel)->addSamples(data, size); } + +void ChannelManager::saveSettings(QSettings* settings) +{ + settings->beginGroup(SettingGroup_Channels); + settings->beginWriteArray(SG_Channels_Channel); + for (unsigned i = 0; i < numOfChannels(); i++) + { + settings->setArrayIndex(i); + settings->setValue(SG_Channels_Name, channelName(i)); + } + settings->endArray(); + settings->endGroup(); +} + +void ChannelManager::loadSettings(QSettings* settings) +{ + settings->beginGroup(SettingGroup_Channels); + settings->beginReadArray(SG_Channels_Channel); + for (unsigned i = 0; i < numOfChannels(); i++) + { + settings->setArrayIndex(i); + setChannelName(i, settings->value(SG_Channels_Name, channelName(i)).toString()); + } + settings->endArray(); + settings->endGroup(); +} diff --git a/src/channelmanager.h b/src/channelmanager.h --- a/src/channelmanager.h +++ b/src/channelmanager.h @@ -24,6 +24,7 @@ #include #include #include +#include #include "framebuffer.h" @@ -39,6 +40,10 @@ public: FrameBuffer* channelBuffer(unsigned channel); QStringListModel* channelNames(); QString channelName(unsigned channel); + /// Stores channel names into a `QSettings` + void saveSettings(QSettings* settings); + /// Loads channel names from a `QSettings`. + void loadSettings(QSettings* settings); signals: void numOfChannelsChanged(unsigned value); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -432,6 +432,7 @@ void MainWindow::saveAllSettings(QSettin saveMWSettings(settings); portControl.saveSettings(settings); dataFormatPanel.saveSettings(settings); + channelMan.saveSettings(settings); } void MainWindow::loadAllSettings(QSettings* settings) @@ -439,6 +440,7 @@ void MainWindow::loadAllSettings(QSettin loadMWSettings(settings); portControl.loadSettings(settings); dataFormatPanel.loadSettings(settings); + channelMan.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 @@ -65,4 +65,8 @@ const char SG_CustomFrame_Endianness[] = const char SG_CustomFrame_Checksum[] = "checksum"; const char SG_CustomFrame_DebugMode[] = "debugMode"; +// channel manager keys +const char SG_Channels_Channel[] = "channel"; +const char SG_Channels_Name[] = "name"; + #endif // SETTING_DEFINES_H