+shared_ptr<pv::view::View> MainWindow::add_view(const QString &title,
+ view::ViewType type, Session &session)
+{
+ shared_ptr<pv::view::View> v;
+
+ if (type == pv::view::TraceView)
+ v = make_shared<pv::view::View>(session, this);
+
+ if (v) {
+ shared_ptr<QDockWidget> dock = make_shared<QDockWidget>(title, this);
+ dock->setWidget(v.get());
+ dock->setObjectName(title);
+ addDockWidget(Qt::TopDockWidgetArea, dock.get());
+ view_docks_[dock] = v;
+
+ if (type == view::TraceView) {
+ connect(&session, SIGNAL(trigger_event(util::Timestamp)), v.get(),
+ SLOT(trigger_event(util::Timestamp)));
+ connect(v.get(), SIGNAL(sticky_scrolling_changed(bool)), this,
+ SLOT(sticky_scrolling_changed(bool)));
+ connect(v.get(), SIGNAL(always_zoom_to_fit_changed(bool)), this,
+ SLOT(always_zoom_to_fit_changed(bool)));
+
+ v->enable_sticky_scrolling(action_view_sticky_scrolling_->isChecked());
+ v->enable_coloured_bg(action_view_coloured_bg_->isChecked());
+ action_view_show_cursors_->setChecked(v->cursors_shown());
+ }
+ }
+
+ return v;
+}
+