X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fprop%2Fdouble.cpp;h=6f6fe0c1ea7e228ca7ed1487efa13e7202a3f5c2;hb=de1d99bbe58f825e30048baa48a9439c01686f10;hp=d7c79ca7db19ce6481d3b8293c06848fcd5364d0;hpb=9f6af8bd3a6bc12f9b32b91cd2a173a8a7763f5c;p=pulseview.git diff --git a/pv/prop/double.cpp b/pv/prop/double.cpp index d7c79ca7..6f6fe0c1 100644 --- a/pv/prop/double.cpp +++ b/pv/prop/double.cpp @@ -35,33 +35,36 @@ Double::Double(QString name, QString suffix, optional< pair > range, optional step, - function getter, - function setter) : - Property(name), + Getter getter, + Setter setter) : + Property(name, getter, setter), _decimals(decimals), _suffix(suffix), _range(range), _step(step), - _getter(getter), - _setter(setter), _spin_box(NULL) { } QWidget* Double::get_widget(QWidget *parent) { - if(_spin_box) + if (_spin_box) return _spin_box; _spin_box = new QDoubleSpinBox(parent); _spin_box->setDecimals(_decimals); _spin_box->setSuffix(_suffix); - if(_range) + if (_range) _spin_box->setRange(_range->first, _range->second); - if(_step) + if (_step) _spin_box->setSingleStep(*_step); - _spin_box->setValue(_getter ? _getter() : 0.0); + GVariant *const value = _getter ? _getter() : NULL; + + if (value) { + _spin_box->setValue(g_variant_get_double(value)); + g_variant_unref(value); + } return _spin_box; } @@ -70,10 +73,10 @@ void Double::commit() { assert(_setter); - if(!_spin_box) + if (!_spin_box) return; - _setter(_spin_box->value()); + _setter(g_variant_new_double(_spin_box->value())); } } // prop