X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fsession.cpp;h=31cbb73c19e1fb37fde8955dff2de9e35062f683;hp=c9a569f7f9e9d67fb3288b16a724accf8e761428;hb=24c29d4f917ffac5a280d572cc04d1edb66a81b9;hpb=7b254679cb45fc4d032fe68c0797642a237f0fa6 diff --git a/pv/session.cpp b/pv/session.cpp index c9a569f7..31cbb73c 100644 --- a/pv/session.cpp +++ b/pv/session.cpp @@ -415,16 +415,17 @@ void Session::set_device(shared_ptr device) device_->open(); } catch (const QString &e) { device_.reset(); - device_changed(); - throw; } - device_->session()->add_datafeed_callback([=] - (shared_ptr device, shared_ptr packet) { - data_feed_in(device, packet); - }); + if (device_) { + device_->session()->add_datafeed_callback([=] + (shared_ptr device, shared_ptr packet) { + data_feed_in(device, packet); + }); + + update_signals(); + } - update_signals(); device_changed(); }