From 8b20e7b3b0f2178b0555ac69858fa903065e66cb Mon Sep 17 00:00:00 2001
From: Aaron Cuevas Lopez <aacuelo@teleco.upv.es>
Date: Thu, 19 Nov 2015 20:01:41 +0100
Subject: [PATCH] Fix signal chain load when recordengine plugin is not present

---
 Source/UI/ControlPanel.cpp | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/Source/UI/ControlPanel.cpp b/Source/UI/ControlPanel.cpp
index b6565fd1a..2bca3db57 100755
--- a/Source/UI/ControlPanel.cpp
+++ b/Source/UI/ControlPanel.cpp
@@ -1008,7 +1008,7 @@ void ControlPanel::saveStateToXml(XmlElement* xml)
 	controlPanelState->setAttribute("recordPath", filenameComponent->getCurrentFile().getFullPathName());
     controlPanelState->setAttribute("prependText",prependText->getText());
     controlPanelState->setAttribute("appendText",appendText->getText());
-    controlPanelState->setAttribute("recordEngine",recordSelector->getSelectedId());
+    controlPanelState->setAttribute("recordEngine",recordEngines[recordSelector->getSelectedId()-1]->getID());
 
     audioEditor->saveStateToXml(xml);
 
@@ -1037,7 +1037,14 @@ void ControlPanel::loadStateFromXml(XmlElement* xml)
 			}
             appendText->setText(xmlNode->getStringAttribute("appendText", ""), dontSendNotification);
             prependText->setText(xmlNode->getStringAttribute("prependText", ""), dontSendNotification);
-            recordSelector->setSelectedId(xmlNode->getIntAttribute("recordEngine",1), sendNotificationSync);
+			String selectedEngine = xmlNode->getStringAttribute("recordEngine");
+			for (int i = 0; i < recordEngines.size(); i++)
+			{
+				if (recordEngines[i]->getID() == selectedEngine)
+				{
+					recordSelector->setSelectedId(i + 1, sendNotification);
+				}
+			}
 
             bool isOpen = xmlNode->getBoolAttribute("isOpen");
             openState(isOpen);
-- 
GitLab