X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fsession.cpp;h=b4ecc6a87c2f4886c3a812df1191cea08542e4f8;hb=HEAD;hp=d30dbc0697cfac67631ab7500028ebf21a4faef8;hpb=79c0e0452fb025da84af9cc0953b85631af343f9;p=pulseview.git diff --git a/pv/session.cpp b/pv/session.cpp index d30dbc06..b4ecc6a8 100644 --- a/pv/session.cpp +++ b/pv/session.cpp @@ -126,6 +126,8 @@ Session::Session(DeviceManager &device_manager, QString name) : cur_samplerate_(0), data_saved_(true) { + // Use this name also for the QObject instance + setObjectName(name_); } Session::~Session() @@ -175,6 +177,9 @@ void Session::set_name(QString name) name_ = name; + // Use this name also for the QObject instance + setObjectName(name_); + name_changed(); } @@ -609,6 +614,9 @@ void Session::set_device(shared_ptr device) } catch (const QString &e) { device_.reset(); MainWindow::show_session_error(tr("Failed to open device"), e); + } catch (const sigrok::Error &e) { + device_.reset(); + MainWindow::show_session_error(tr("Failed to open device"), QString(e.what())); } if (device_) { @@ -751,8 +759,11 @@ void Session::load_file(QString file_name, QString setup_file_name, file_name.toStdString()))); } catch (Error& e) { MainWindow::show_session_error(tr("Failed to load %1").arg(file_name), e.what()); - set_default_device(); - main_bar_->update_device_list(); + return; + } + + if (!device_) { + MainWindow::show_session_error(errorMessage, ""); return; } @@ -771,7 +782,7 @@ void Session::load_file(QString file_name, QString setup_file_name, main_bar_->update_device_list(); start_capture([&, errorMessage](QString infoMessage) { - MainWindow::show_session_error(errorMessage, infoMessage); }); + Q_EMIT session_error_raised(errorMessage, infoMessage); }); // Only set save path if we loaded an srzip file if (dynamic_pointer_cast(device_)) @@ -824,6 +835,8 @@ void Session::start_capture(function error_handler) name_changed(); } + acq_start_time_ = Glib::DateTime::create_now_local(); + // Begin the session sampling_thread_ = std::thread(&Session::sample_thread_proc, this, error_handler); } @@ -918,6 +931,11 @@ double Session::get_samplerate() const return samplerate; } +Glib::DateTime Session::get_acquisition_start_time() const +{ + return acq_start_time_; +} + uint32_t Session::get_highest_segment_id() const { return highest_segment_id_;