MainWindow::MainWindow(DeviceManager &device_manager,
string open_file_name, string open_file_format,
- QWidget *parent) :
+ bool restore_sessions, QWidget *parent) :
QMainWindow(parent),
device_manager_(device_manager),
session_selector_(this),
bind(&MainWindow::on_settingViewShowAnalogMinorGrid_changed, this, _1));
setup_ui();
- restore_ui_settings();
+ restore_ui_settings(restore_sessions);
if (!open_file_name.empty()) {
shared_ptr<Session> session = add_session();
dock_main->setCentralWidget(v.get());
dock->setWidget(dock_main);
+ dock->setContextMenuPolicy(Qt::PreventContextMenu);
dock->setFeatures(QDockWidget::DockWidgetMovable |
QDockWidget::DockWidgetFloatable | QDockWidget::DockWidgetClosable);
settings.setValue("sessions", id);
}
-void MainWindow::restore_ui_settings()
+void MainWindow::restore_ui_settings(bool restore_sessions)
{
QSettings settings;
- int i, session_count;
settings.beginGroup("MainWindow");
settings.endGroup();
- session_count = settings.value("sessions", 0).toInt();
+ if (restore_sessions) {
+ int i, session_count;
- for (i = 0; i < session_count; i++) {
- settings.beginGroup("Session" + QString::number(i));
- shared_ptr<Session> session = add_session();
- session->restore_settings(settings);
- settings.endGroup();
+ session_count = settings.value("sessions", 0).toInt();
+
+ for (i = 0; i < session_count; i++) {
+ settings.beginGroup("Session" + QString::number(i));
+ shared_ptr<Session> session = add_session();
+ session->restore_settings(settings);
+ settings.endGroup();
+ }
}
}
{
shared_ptr<Session> session = get_tab_session(index);
- assert(session);
+ if (!session)
+ return;
if (session->data_saved() || (QMessageBox::question(this, tr("Confirmation"),
tr("This session contains unsaved data. Close it anyway?"),