From a9674d1c8c5ab81b6ea642ce263d2dd316f0e33c Mon Sep 17 00:00:00 2001 From: Gerhard Sittig Date: Mon, 14 May 2018 20:25:41 +0200 Subject: [PATCH] session: apply input format match to interactively loaded files, too Move the format match logic from load_init_file() to load_file(), so that it transparently takes effect on each "opened" file. Users still can choose to "import" files and specify options when required. In the case of lookup miss, sigrok session is assumed as before. This fixes the remainder of bug #1015. --- pv/session.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/pv/session.cpp b/pv/session.cpp index 50e89e5..6767951 100644 --- a/pv/session.cpp +++ b/pv/session.cpp @@ -483,7 +483,6 @@ void Session::load_init_file(const string &file_name, const string &format) map input_opts; if (!format.empty()) { - // Got a user provided input format spec. const map > formats = device_manager_.context()->input_formats(); auto user_opts = pv::util::split_string(format, ":"); @@ -500,11 +499,6 @@ void Session::load_init_file(const string &file_name, const string &format) input_format = (*iter).second; input_opts = input_format_options(user_opts, input_format->options()); - } else { - // (Try to) auto detect the input format. Lookup failure - // is not fatal, when no input module claimed responsibility, - // then a session file gets loaded. - input_format = device_manager_.context()->input_format_match(file_name); } load_file(QString::fromStdString(file_name), input_format, input_opts); @@ -517,6 +511,10 @@ void Session::load_file(QString file_name, const QString errorMessage( QString("Failed to load file %1").arg(file_name)); + // In the absence of a caller's format spec, try to auto detect. + // Assume "sigrok session file" upon lookup miss. + if (!format) + format = device_manager_.context()->input_format_match(file_name.toStdString()); try { if (format) set_device(shared_ptr( -- 2.30.2