diff --git a/DSView/DSView.qrc b/DSView/DSView.qrc index 00b550b7..f93bad84 100644 --- a/DSView/DSView.qrc +++ b/DSView/DSView.qrc @@ -51,5 +51,9 @@ icons/trigger_cn.png icons/trigger_dis_cn.png icons/protocol_cn.png + icons/instant_dis.png + icons/instant_dis_cn.png + icons/start_dis.png + icons/start_dis_cn.png diff --git a/DSView/icons/instant_dis.png b/DSView/icons/instant_dis.png new file mode 100755 index 00000000..e3f8adfc Binary files /dev/null and b/DSView/icons/instant_dis.png differ diff --git a/DSView/icons/instant_dis_cn.png b/DSView/icons/instant_dis_cn.png new file mode 100755 index 00000000..4477a544 Binary files /dev/null and b/DSView/icons/instant_dis_cn.png differ diff --git a/DSView/icons/start_dis.png b/DSView/icons/start_dis.png new file mode 100755 index 00000000..62eee6d5 Binary files /dev/null and b/DSView/icons/start_dis.png differ diff --git a/DSView/icons/start_dis_cn.png b/DSView/icons/start_dis_cn.png new file mode 100755 index 00000000..86531127 Binary files /dev/null and b/DSView/icons/start_dis_cn.png differ diff --git a/DSView/pv/sigsession.cpp b/DSView/pv/sigsession.cpp index 6f9d9592..acc4e427 100644 --- a/DSView/pv/sigsession.cpp +++ b/DSView/pv/sigsession.cpp @@ -942,6 +942,15 @@ void SigSession::feed_in_dso(const sr_datafeed_dso &dso) if (!_cur_dso_snapshot) { + // reset scale of dso signal + BOOST_FOREACH(const boost::shared_ptr s, _signals) + { + assert(s); + boost::shared_ptr dsoSig; + if (dsoSig = dynamic_pointer_cast(s)) + dsoSig->set_scale(dsoSig->get_view_rect().height() / 256.0f); + } + // Create a new data snapshot _cur_dso_snapshot = boost::shared_ptr( new data::DsoSnapshot(dso, _dev_inst->get_sample_limit(), get_ch_num(SR_CHANNEL_DSO), _instant)); diff --git a/DSView/pv/toolbars/samplingbar.cpp b/DSView/pv/toolbars/samplingbar.cpp index 4e4957de..64213885 100644 --- a/DSView/pv/toolbars/samplingbar.cpp +++ b/DSView/pv/toolbars/samplingbar.cpp @@ -92,10 +92,14 @@ SamplingBar::SamplingBar(SigSession &session, QWidget *parent) : _icon_stop(":/icons/stop_cn.png"), _icon_start(":/icons/start_cn.png"), _icon_instant(":/icons/instant_cn.png"), + _icon_start_dis(":/icons/start_dis_cn.png"), + _icon_instant_dis(":/icons/instant_dis_cn.png"), #else _icon_stop(":/icons/stop.png"), _icon_start(":/icons/start.png"), _icon_instant(":/icons/instant.png"), + _icon_start_dis(":/icons/start_dis.png"), + _icon_instant_dis(":/icons/instant_dis.png"), #endif _run_stop_button(this), _instant_button(this), @@ -295,10 +299,13 @@ void SamplingBar::update_sample_rate() void SamplingBar::set_sampling(bool sampling) { - if (_instant) + if (_instant) { _instant_button.setIcon(sampling ? _icon_stop : _icon_instant); - else + _run_stop_button.setIcon(sampling ? _icon_start_dis : _icon_start); + } else { _run_stop_button.setIcon(sampling ? _icon_stop : _icon_start); + _instant_button.setIcon(sampling ? _icon_instant_dis : _icon_instant); + } if (!sampling) { g_usleep(100000); diff --git a/DSView/pv/toolbars/samplingbar.h b/DSView/pv/toolbars/samplingbar.h index 52d9f748..1414ceca 100644 --- a/DSView/pv/toolbars/samplingbar.h +++ b/DSView/pv/toolbars/samplingbar.h @@ -140,6 +140,8 @@ private: QIcon _icon_stop; QIcon _icon_start; QIcon _icon_instant; + QIcon _icon_start_dis; + QIcon _icon_instant_dis; QToolButton _run_stop_button; QToolButton _instant_button; diff --git a/DSView/pv/view/dsosignal.cpp b/DSView/pv/view/dsosignal.cpp index fe814713..aaa52270 100644 --- a/DSView/pv/view/dsosignal.cpp +++ b/DSView/pv/view/dsosignal.cpp @@ -738,9 +738,6 @@ void DsoSignal::paint_mid(QPainter &p, int left, int right) _data->get_snapshots(); if (snapshots.empty()) return; - - if (_view->session().get_capture_state() == SigSession::Running) - _scale = height * 1.0f / 256; const boost::shared_ptr &snapshot = snapshots.front();