]> sigrok.org Git - pulseview.git/commitdiff
Use min/max notification for autoranging of analog signals
authorSoeren Apel <redacted>
Wed, 2 Aug 2017 16:23:32 +0000 (18:23 +0200)
committerUwe Hermann <redacted>
Thu, 3 Aug 2017 11:16:21 +0000 (13:16 +0200)
pv/data/signalbase.cpp
pv/data/signalbase.hpp
pv/views/trace/analogsignal.cpp
pv/views/trace/analogsignal.hpp

index da05f1079597bb2e708d587bb9f3789594baeb82..e267885d8d214356d6e19692decf19cf7f56d796 100644 (file)
@@ -590,13 +590,12 @@ void SignalBase::on_samples_added(QObject* segment, uint64_t start_sample,
 
 void SignalBase::on_min_max_changed(float min, float max)
 {
-       (void)min;
-       (void)max;
-
        // Restart conversion if one is enabled and uses a calculated threshold
        if ((conversion_type_ != NoConversion) &&
                (get_current_conversion_preset() == DynamicPreset))
                start_conversion(true);
+
+       min_max_changed(min, max);
 }
 
 void SignalBase::on_capture_state_changed(int state)
index 16a94bd43b816ce47ac6c7ca067b0611ea19bb93..865f2551662fed2ab137781752c9064191cb698d 100644 (file)
@@ -284,6 +284,8 @@ Q_SIGNALS:
        void samples_added(QObject* segment, uint64_t start_sample,
                uint64_t end_sample);
 
+       void min_max_changed(float min, float max);
+
 private Q_SLOTS:
        void on_samples_cleared();
 
index 81dd551b91d33b3913ccb53cb7c81b9e2ba12d56..90bf9673336f0da6b419140db785806445eef65b 100644 (file)
@@ -105,8 +105,8 @@ AnalogSignal::AnalogSignal(
        pv::data::Analog* analog_data =
                dynamic_cast<pv::data::Analog*>(data().get());
 
-       connect(analog_data, SIGNAL(samples_added(QObject*, uint64_t, uint64_t)),
-               this, SLOT(on_samples_added()));
+       connect(analog_data, SIGNAL(min_max_changed(float, float)),
+               this, SLOT(on_min_max_changed(float, float)));
 
        GlobalSettings gs;
        div_height_ = gs.value(GlobalSettings::Key_View_DefaultDivHeight).toInt();
@@ -861,9 +861,13 @@ void AnalogSignal::populate_popup_form(QWidget *parent, QFormLayout *form)
        form->addRow(layout);
 }
 
-void AnalogSignal::on_samples_added()
+void AnalogSignal::on_min_max_changed(float min, float max)
 {
-       perform_autoranging(false, false);
+       (void)min;
+       (void)max;
+
+       if (autoranging_)
+               perform_autoranging(false, false);
 }
 
 void AnalogSignal::on_pos_vdivs_changed(int vdivs)
index 24d4a21cacb6dae92aba8a37d85fb39f028ce86f..cf4938a721df410c67cb452e9ba13319c98a96fd 100644 (file)
@@ -156,7 +156,7 @@ protected:
        void populate_popup_form(QWidget *parent, QFormLayout *form);
 
 private Q_SLOTS:
-       void on_samples_added();
+       void on_min_max_changed(float min, float max);
 
        void on_pos_vdivs_changed(int vdivs);
        void on_neg_vdivs_changed(int vdivs);