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