From 1bf5e50f320ff775ef287f2300296160a74d0e73 Mon Sep 17 00:00:00 2001 From: dreamsourcelabTAI Date: Mon, 27 Mar 2023 16:42:02 +0800 Subject: [PATCH] fix: Can't auto load the default sesssion file --- DSView/pv/mainwindow.cpp | 14 ++++++++++++++ DSView/pv/toolbars/filebar.cpp | 11 ++++++++++- DSView/pv/toolbars/filebar.h | 2 ++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/DSView/pv/mainwindow.cpp b/DSView/pv/mainwindow.cpp index eef53bdc..de768fe9 100644 --- a/DSView/pv/mainwindow.cpp +++ b/DSView/pv/mainwindow.cpp @@ -1513,11 +1513,25 @@ namespace pv { QString ses_name = genSessionFileName(true); + bool bExist = false; + QFile sf(ses_name); if (!sf.exists()){ dsv_info("Try to load the low version session file."); ses_name = genSessionFileName(false); } + else{ + bExist = true; + } + + if (!bExist) + { + QFile sf2(ses_name); + if (!sf2.exists()){ + dsv_info("Try to load the default session file."); + ses_name = _file_bar->genDefaultSessionFile(); + } + } on_load_session(ses_name); } diff --git a/DSView/pv/toolbars/filebar.cpp b/DSView/pv/toolbars/filebar.cpp index 8594c264..ab993298 100644 --- a/DSView/pv/toolbars/filebar.cpp +++ b/DSView/pv/toolbars/filebar.cpp @@ -192,12 +192,21 @@ void FileBar::on_actionDefault_triggered() "Cannot find default session file for this device!"), this); return; } + + QString file_name = genDefaultSessionFile(); + + sig_load_session(file_name); +} + +QString FileBar::genDefaultSessionFile() +{ + QDir dir(GetResourceDir()); QString driver_name = _session->get_device()->driver_name(); QString mode_name = QString::number(_session->get_device()->get_work_mode()); QString file_name = dir.absolutePath() + "/" + driver_name + mode_name +".def.dsc"; - sig_load_session(file_name); + return file_name; } void FileBar::on_actionStore_triggered() diff --git a/DSView/pv/toolbars/filebar.h b/DSView/pv/toolbars/filebar.h index af758f65..27212805 100644 --- a/DSView/pv/toolbars/filebar.h +++ b/DSView/pv/toolbars/filebar.h @@ -44,6 +44,8 @@ public: void update_view_status(); + QString genDefaultSessionFile(); + private: void changeEvent(QEvent *event); void retranslateUi();