X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fsession.cpp;fp=pv%2Fsession.cpp;h=ec8082eb7cf0158ec0c85954a1bcc99e12227b86;hb=e6d85b8936b5b7aee80b03834f095fd5b52fe6f4;hp=840773d1aa7115bd4dcc7594496c776231bcdd15;hpb=2cd6be62cb3dbbc60f4af3a888b232b7d0437532;p=pulseview.git diff --git a/pv/session.cpp b/pv/session.cpp index 840773d1..ec8082eb 100644 --- a/pv/session.cpp +++ b/pv/session.cpp @@ -176,15 +176,14 @@ void Session::set_name(QString name) name_changed(); } -QString Session::path() const +QString Session::save_path() const { - return path_; + return save_path_; } -void Session::set_path(QString path) +void Session::set_save_path(QString path) { - path_ = path; - set_name(QFileInfo(path).fileName()); + save_path_ = path; } const vector< shared_ptr > Session::views() const @@ -456,18 +455,16 @@ void Session::restore_settings(QSettings &settings) } - QString path; + QString filename; if ((device_type == "sessionfile") || (device_type == "inputfile")) { if (device_type == "sessionfile") { settings.beginGroup("device"); - const QString filename = settings.value("filename").toString(); + filename = settings.value("filename").toString(); settings.endGroup(); - if (QFileInfo(filename).isReadable()) { - path = filename; + if (QFileInfo(filename).isReadable()) device = make_shared(device_manager_.context(), filename.toStdString()); - } } if (device_type == "inputfile") { @@ -487,8 +484,13 @@ void Session::restore_settings(QSettings &settings) set_name(QString::fromStdString( dynamic_pointer_cast(device)->display_name(device_manager_))); - if (!path.isEmpty()) - set_path(path); + if (!filename.isEmpty()) { + // Only set the save path if we load an srzip file + if (device_type == "sessionfile") + set_save_path(QFileInfo(filename).absolutePath()); + + set_name(QFileInfo(filename).fileName()); + } } } @@ -726,7 +728,11 @@ void Session::load_file(QString file_name, QString setup_file_name, start_capture([&, errorMessage](QString infoMessage) { MainWindow::show_session_error(errorMessage, infoMessage); }); - set_path(file_name); + // Only set save path if we loaded an srzip file + if (dynamic_pointer_cast(device_)) + set_save_path(QFileInfo(file_name).absolutePath()); + + set_name(QFileInfo(file_name).fileName()); } Session::capture_state Session::get_capture_state() const