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();
+}