X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fmainwindow.cpp;h=0089b112a721f1585a9813134328cfd30c360ccb;hp=2a74d5b292a40f8ac6ecaf42ba1dbdc791eef7a5;hb=8bd26d8b9c831b509ee3241ea4dac6f50c023622;hpb=d873f4d685e16c708a15fcde12fbbec66650511c diff --git a/pv/mainwindow.cpp b/pv/mainwindow.cpp index 2a74d5b2..0089b112 100644 --- a/pv/mainwindow.cpp +++ b/pv/mainwindow.cpp @@ -220,7 +220,7 @@ void MainWindow::setup_ui() "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*)), @@ -296,10 +296,12 @@ void MainWindow::update_device_list() 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) @@ -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_default_device(); + update_device_list(); + return; } + update_device_list(); + _session.start_capture(boost::bind(&MainWindow::session_error, this, errorMessage, infoMessage)); }