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();