main_bar = make_shared<MainBar>(session, *this);
dock_main->addToolBar(main_bar.get());
session.set_main_bar(main_bar);
+
+ connect(main_bar.get(), SIGNAL(new_session()),
+ this, SLOT(on_new_session()));
+ connect(main_bar.get(), SIGNAL(new_view(Session*)),
+ this, SLOT(on_new_view(Session*)));
}
main_bar->action_view_show_cursors()->setChecked(v->cursors_shown());
shared_ptr<Session> session = make_shared<Session>(device_manager_, name);
+ connect(session.get(), SIGNAL(add_view(const QString&, view::ViewType, Session*)),
+ this, SLOT(on_add_view(const QString&, view::ViewType, Session*)));
+
sessions_.push_back(session);
shared_ptr<view::View> main_view =
action_about_->setObjectName(QString::fromUtf8("actionAbout"));
action_about_->setText(tr("&About..."));
+ setDockNestingEnabled(true);
+
// Set the title
setWindowTitle(tr("PulseView"));
}
dynamic_pointer_cast< devices::HardwareDevice >
(session->device());
- if (device->hardware_device()->driver()->name() == "demo")
+ if (device &&
+ device->hardware_device()->driver()->name() == "demo")
continue;
}
settings.beginGroup("Session" + QString::number(id++));
+ settings.remove(""); // Remove all keys in this group
session->save_settings(settings);
settings.endGroup();
}
return false;
}
+void MainWindow::on_add_view(const QString &title, view::ViewType type,
+ Session *session)
+{
+ // We get a pointer and need a reference
+ for (std::shared_ptr<Session> s : sessions_)
+ if (s.get() == session)
+ add_view(title, type, *s);
+}
+
+void MainWindow::on_new_session()
+{
+ add_session();
+}
+
+void MainWindow::on_new_view(Session *session)
+{
+ // We get a pointer and need a reference
+ for (std::shared_ptr<Session> s : sessions_)
+ if (s.get() == session)
+ add_view(session->name(), pv::view::TraceView, *s);
+}
+
void MainWindow::on_actionViewStickyScrolling_triggered()
{
shared_ptr<pv::view::View> view = get_active_view();