Skip to content

Commit 0f7fe87

Browse files
committed
The list of open measurements is now saved and loaded from session files
1 parent 13ed44b commit 0f7fe87

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

src/ngscopeclient/MainWindow.cpp

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2150,6 +2150,33 @@ bool MainWindow::LoadUIConfiguration(int version, const YAML::Node& node)
21502150
return false;
21512151
}
21522152

2153+
//Measurements
2154+
auto measurements = node["measurements"];
2155+
if(measurements)
2156+
{
2157+
//Make the measurements dialog
2158+
if(!m_measurementsDialog)
2159+
{
2160+
m_measurementsDialog = make_shared<MeasurementsDialog>(m_session);
2161+
AddDialog(m_measurementsDialog);
2162+
}
2163+
2164+
int index;
2165+
int stream;
2166+
for(auto m : measurements)
2167+
{
2168+
auto sin = m.as<string>();
2169+
if(2 != sscanf(sin.c_str(), "%d/%d", &index, &stream))
2170+
{
2171+
index = atoi(sin.c_str());
2172+
stream = 0;
2173+
}
2174+
2175+
m_measurementsDialog->AddStream(
2176+
StreamDescriptor(static_cast<OscilloscopeChannel*>(m_session.m_idtable[index]), stream));
2177+
}
2178+
}
2179+
21532180
LogTrace("ui config loaded\n");
21542181
return true;
21552182
}
@@ -2504,6 +2531,18 @@ YAML::Node MainWindow::SerializeUIConfiguration()
25042531
//Serialize dialogs
25052532
node["dialogs"] = SerializeDialogs();
25062533

2534+
//Serialize measurements
2535+
if(m_measurementsDialog)
2536+
{
2537+
auto measurements = m_measurementsDialog->GetStreams();
2538+
2539+
YAML::Node mnode;
2540+
for(auto stream : measurements)
2541+
mnode.push_back(to_string(m_session.m_idtable.emplace(stream.m_channel)) + "/" + to_string(stream.m_stream));
2542+
2543+
node["measurements"] = mnode;
2544+
}
2545+
25072546
return node;
25082547
}
25092548

0 commit comments

Comments
 (0)