+ // Restore generated signals
+ int gen_signal_count = settings.value("generated_signals").toInt();
+
+ for (int i = 0; i < gen_signal_count; i++) {
+ settings.beginGroup("generated_signal" + QString::number(i));
+ SignalBase::ChannelType type = (SignalBase::ChannelType)settings.value("type").toInt();
+ shared_ptr<data::SignalBase> signal;
+
+ if (type == SignalBase::MathChannel)
+ signal = make_shared<data::MathSignal>(*this);
+ else
+ qWarning() << tr("Can't restore generated signal of unknown type %1 (%2)") \
+ .arg((int)type) \
+ .arg(settings.value("name").toString());
+
+ if (signal) {
+ add_generated_signal(signal);
+ signal->restore_settings(settings);
+ }
+
+ settings.endGroup();
+ }
+