using std::deque;
using std::div;
using std::div_t;
-using std::isnan;
+// Note that "using std::isnan;" is _not_ put here since that would break
+// compilation on some platforms. Use "std::isnan()" instead in checks below.
using std::max;
using std::make_pair;
using std::min;
shared_ptr<data::SignalBase> base) :
Signal(session, base),
scale_index_(4), // 20 per div
- scale_index_drag_offset_(0),
pos_vdivs_(1),
neg_vdivs_(1),
resolution_(0),
display_type_(DisplayBoth),
- autoranging_(true)
+ autoranging_(true),
+ value_at_hover_pos_(std::numeric_limits<float>::quiet_NaN())
{
axis_pen_ = AxisPen;
return make_pair(-ph, nh);
}
-int AnalogSignal::scale_handle_offset() const
-{
- const int h = (pos_vdivs_ + neg_vdivs_) * div_height_;
-
- return ((scale_index_drag_offset_ - scale_index_) * h / 4) - h / 2;
-}
-
-void AnalogSignal::scale_handle_dragged(int offset)
-{
- const int h = (pos_vdivs_ + neg_vdivs_) * div_height_;
-
- scale_index_ = scale_index_drag_offset_ - (offset + h / 2) / (h / 4);
-
- update_scale();
-}
-
-void AnalogSignal::scale_handle_drag_release()
-{
- scale_index_drag_offset_ = scale_index_;
- update_scale();
-}
-
void AnalogSignal::on_setting_changed(const QString &key, const QVariant &value)
{
Signal::on_setting_changed(key, value);
// Show the info section on the right side of the trace, including
// the value at the hover point when the hover marker is enabled
// and we have corresponding data available
- if (show_hover_marker_ && !isnan(value_at_hover_pos_)) {
+ if (show_hover_marker_ && !std::isnan(value_at_hover_pos_)) {
infotext = QString("[%1] %2 V/div")
.arg(format_value_si(value_at_hover_pos_, SIPrefix::unspecified, 0, "V", false))
.arg(resolution_);
{
// Note: NAN is used to indicate the non-existance of a value at this pixel
- if (isnan(prev_value_at_pixel_)) {
+ if (std::isnan(prev_value_at_pixel_)) {
if (x < 0) {
min_value_at_pixel_ = value;
max_value_at_pixel_ = value;
if (pixel_pos > current_pixel_pos_) {
if (pixel_pos - current_pixel_pos_ == 1) {
- if (isnan(prev_value_at_pixel_)) {
+ if (std::isnan(prev_value_at_pixel_)) {
value_at_pixel_pos_.push_back(prev_value_at_pixel_);
} else {
// Average the min/max range to create one value for the previous pixel
connect(conv_threshold_cb_, SIGNAL(currentIndexChanged(int)),
this, SLOT(on_conv_threshold_changed(int)));
- connect(conv_threshold_cb_, SIGNAL(editTextChanged(const QString)),
+ connect(conv_threshold_cb_, SIGNAL(editTextChanged(const QString&)),
this, SLOT(on_conv_threshold_changed())); // index will be -1
// Add the display type dropdown
} else {
try {
value_at_hover_pos_ = value_at_pixel_pos_.at(hp.x());
- } catch (out_of_range) {
+ } catch (out_of_range&) {
value_at_hover_pos_ = std::numeric_limits<float>::quiet_NaN();
}
}