]> sigrok.org Git - pulseview.git/blobdiff - pv/mainwindow.cpp
Rename 'probe' to 'channel' (libsigrokdecode change).
[pulseview.git] / pv / mainwindow.cpp
index 2a74d5b292a40f8ac6ecaf42ba1dbdc791eef7a5..0089b112a721f1585a9813134328cfd30c360ccb 100644 (file)
@@ -220,7 +220,7 @@ void MainWindow::setup_ui()
                "MainWindow", "&Decoders", 0, QApplication::UnicodeUTF8));
 
        pv::widgets::DecoderMenu *const menu_decoders_add =
                "MainWindow", "&Decoders", 0, QApplication::UnicodeUTF8));
 
        pv::widgets::DecoderMenu *const menu_decoders_add =
-               new pv::widgets::DecoderMenu(menu_decoders);
+               new pv::widgets::DecoderMenu(menu_decoders, true);
        menu_decoders_add->setTitle(QApplication::translate(
                "MainWindow", "&Add", 0, QApplication::UnicodeUTF8));
        connect(menu_decoders_add, SIGNAL(decoder_selected(srd_decoder*)),
        menu_decoders_add->setTitle(QApplication::translate(
                "MainWindow", "&Add", 0, QApplication::UnicodeUTF8));
        connect(menu_decoders_add, SIGNAL(decoder_selected(srd_decoder*)),
@@ -296,10 +296,12 @@ void MainWindow::update_device_list()
        std::copy(_device_manager.devices().begin(),
                _device_manager.devices().end(), std::back_inserter(devices));
 
        std::copy(_device_manager.devices().begin(),
                _device_manager.devices().end(), std::back_inserter(devices));
 
-       _sampling_bar->set_device_list(devices);
+       if (std::find(devices.begin(), devices.end(), selected_device) ==
+               devices.end())
+               devices.push_back(selected_device);
+       assert(selected_device);
 
 
-       if (selected_device)
-               _sampling_bar->set_selected_device(selected_device);
+       _sampling_bar->set_device_list(devices, selected_device);
 }
 
 void MainWindow::load_file(QString file_name)
 }
 
 void MainWindow::load_file(QString file_name)
@@ -312,8 +314,13 @@ void MainWindow::load_file(QString file_name)
                _session.set_file(file_name.toStdString());
        } catch(QString e) {
                show_session_error(tr("Failed to load ") + file_name, e);
                _session.set_file(file_name.toStdString());
        } catch(QString e) {
                show_session_error(tr("Failed to load ") + file_name, e);
+               _session.set_default_device();
+               update_device_list();
+               return;
        }
 
        }
 
+       update_device_list();
+
        _session.start_capture(boost::bind(&MainWindow::session_error, this,
                errorMessage, infoMessage));
 }
        _session.start_capture(boost::bind(&MainWindow::session_error, this,
                errorMessage, infoMessage));
 }