From: Gerhard Sittig Date: Mon, 14 May 2018 18:25:41 +0000 (+0200) Subject: session: apply input format match to interactively loaded files, too X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=commitdiff_plain;h=a9674d1c8c5ab81b6ea642ce263d2dd316f0e33c;hp=d7168e582c71ebcc359b12efed83daa2a6b6f28e 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. --- diff --git a/pv/session.cpp b/pv/session.cpp index 50e89e56..6767951c 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(