From 0f7fe878d00085001dcaf6676bdc4f2c9cf8b775 Mon Sep 17 00:00:00 2001 From: "Andrew D. Zonenberg" Date: Fri, 27 Oct 2023 00:35:33 -0700 Subject: [PATCH] The list of open measurements is now saved and loaded from session files --- src/ngscopeclient/MainWindow.cpp | 39 ++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/ngscopeclient/MainWindow.cpp b/src/ngscopeclient/MainWindow.cpp index 34e226f83..86e306e88 100644 --- a/src/ngscopeclient/MainWindow.cpp +++ b/src/ngscopeclient/MainWindow.cpp @@ -2150,6 +2150,33 @@ bool MainWindow::LoadUIConfiguration(int version, const YAML::Node& node) return false; } + //Measurements + auto measurements = node["measurements"]; + if(measurements) + { + //Make the measurements dialog + if(!m_measurementsDialog) + { + m_measurementsDialog = make_shared(m_session); + AddDialog(m_measurementsDialog); + } + + int index; + int stream; + for(auto m : measurements) + { + auto sin = m.as(); + if(2 != sscanf(sin.c_str(), "%d/%d", &index, &stream)) + { + index = atoi(sin.c_str()); + stream = 0; + } + + m_measurementsDialog->AddStream( + StreamDescriptor(static_cast(m_session.m_idtable[index]), stream)); + } + } + LogTrace("ui config loaded\n"); return true; } @@ -2504,6 +2531,18 @@ YAML::Node MainWindow::SerializeUIConfiguration() //Serialize dialogs node["dialogs"] = SerializeDialogs(); + //Serialize measurements + if(m_measurementsDialog) + { + auto measurements = m_measurementsDialog->GetStreams(); + + YAML::Node mnode; + for(auto stream : measurements) + mnode.push_back(to_string(m_session.m_idtable.emplace(stream.m_channel)) + "/" + to_string(stream.m_stream)); + + node["measurements"] = mnode; + } + return node; }