]> sigrok.org Git - pulseview.git/blobdiff - pv/mainwindow.cpp
Fix two small decode bugs
[pulseview.git] / pv / mainwindow.cpp
index ceace369f982158b26668ed38d4e836655e84f2d..6662180c7f19fde5fc5dad428e10bad8d412613c 100644 (file)
@@ -320,8 +320,6 @@ shared_ptr<subwindows::SubWindowBase> MainWindow::add_subwindow(
        if (w->minimum_width() > 0)
                dock->setMinimumSize(w->minimum_width(), 0);
 
-       w->setFocus();
-
        return w;
 }
 
@@ -571,10 +569,16 @@ void MainWindow::setup_ui()
 
 void MainWindow::update_acq_button(Session *session)
 {
-       int state = session->get_capture_state();
+       int state;
+       QString run_caption;
 
-       const QString run_caption =
-               session->using_file_device() ? tr("Reload") : tr("Run");
+       if (session) {
+               state = session->get_capture_state();
+               run_caption = session->using_file_device() ? tr("Reload") : tr("Run");
+       } else {
+               state = Session::Stopped;
+               run_caption = tr("Run");
+       }
 
        const QIcon *icons[] = {&icon_grey_, &icon_red_, &icon_green_};
        run_stop_button_->setIcon(*icons[state]);
@@ -849,6 +853,9 @@ void MainWindow::on_tab_close_requested(int index)
                tr("This session contains unsaved data. Close it anyway?"),
                QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes))
                remove_session(session);
+
+       if (sessions_.empty())
+               update_acq_button(nullptr);
 }
 
 void MainWindow::on_show_decoder_selector(Session *session)