+void Session::add_generated_signal(shared_ptr<data::SignalBase> signal)
+{
+ signalbases_.push_back(signal);
+
+ for (shared_ptr<views::ViewBase>& view : views_)
+ view->add_signalbase(signal);
+
+ update_signals();
+}
+
+void Session::remove_generated_signal(shared_ptr<data::SignalBase> signal)
+{
+ signalbases_.erase(std::remove_if(signalbases_.begin(), signalbases_.end(),
+ [&](shared_ptr<data::SignalBase> s) { return s == signal; }),
+ signalbases_.end());
+
+ for (shared_ptr<views::ViewBase>& view : views_)
+ view->remove_signalbase(signal);
+
+ update_signals();
+}
+