diff --git a/DSView/pv/mainwindow.cpp b/DSView/pv/mainwindow.cpp index 9047ffe5..56205fd6 100644 --- a/DSView/pv/mainwindow.cpp +++ b/DSView/pv/mainwindow.cpp @@ -106,6 +106,10 @@ namespace pv { + namespace{ + QString tmp_file; + } + MainWindow::MainWindow(toolbars::TitleBar *title_bar, QWidget *parent) : QMainWindow(parent) { @@ -318,7 +322,12 @@ namespace pv if (QFile::exists(ldFileName)) { dsv_info("Auto load file:%s", file_name.c_str()); - on_load_file(ldFileName); + tmp_file = ldFileName; + + QTimer::singleShot(300, this, [this](){ + on_load_file(tmp_file); + tmp_file = ""; + }); } else { @@ -326,10 +335,8 @@ namespace pv MsgBox::Show(L_S(STR_PAGE_MSG, S_ID(IDS_MSG_OPEN_FILE_ERROR), "Open file error!"), ldFileName, NULL); } } - else - { - _session->set_default_device(); - } + + _session->set_default_device(); } //* diff --git a/DSView/pv/sigsession.cpp b/DSView/pv/sigsession.cpp index 6d40737a..93ac8ea6 100644 --- a/DSView/pv/sigsession.cpp +++ b/DSView/pv/sigsession.cpp @@ -2447,4 +2447,17 @@ namespace pv } } + void SigSession::update_dso_data_scale() + { + if (_device_agent.get_work_mode() == DSO) + { + for(auto s : _signals){ + if (s->get_type() == SR_CHANNEL_DSO){ + view::DsoSignal *ch = (view::DsoSignal*)s; + _capture_data->get_dso()->set_data_scale(ch->get_scale(), ch->get_index()); + } + } + } + } + } // namespace pv diff --git a/DSView/pv/sigsession.h b/DSView/pv/sigsession.h index 184fed34..1ae39acd 100644 --- a/DSView/pv/sigsession.h +++ b/DSView/pv/sigsession.h @@ -429,6 +429,8 @@ public: _decoder_pannel = pannel; } + void update_dso_data_scale(); + private: void set_cur_samplelimits(uint64_t samplelimits); void set_cur_snap_samplerate(uint64_t samplerate); diff --git a/DSView/pv/view/view.cpp b/DSView/pv/view/view.cpp index 49577410..a8d8b324 100644 --- a/DSView/pv/view/view.cpp +++ b/DSView/pv/view/view.cpp @@ -778,6 +778,7 @@ void View::signals_changed(const Trace* eventTrace) } } _time_viewport->clear_measure(); + _session->update_dso_data_scale(); } header_updated();