X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fprop%2Fbool.cpp;h=699656f75d3ab60adbd81006d0c4c692886161db;hb=7c238e082a6fadc14f90285805f5901cc8f68570;hp=ac142fd440403c6b015c441f6e6b1d13ae3923aa;hpb=819f4c25391a9c74d3d2f528d462142d5c4aad4d;p=pulseview.git diff --git a/pv/prop/bool.cpp b/pv/prop/bool.cpp index ac142fd..699656f 100644 --- a/pv/prop/bool.cpp +++ b/pv/prop/bool.cpp @@ -42,15 +42,18 @@ QWidget* Bool::get_widget(QWidget *parent, bool auto_commit) if (_check_box) return _check_box; - _check_box = new QCheckBox(name(), parent); + if (!_getter) + return NULL; + + Glib::VariantBase variant = _getter(); + if (!variant.gobj()) + return NULL; - GVariant *const value = _getter ? _getter() : NULL; + bool value = Glib::VariantBase::cast_dynamic>( + variant).get(); - if (value) { - _check_box->setCheckState(g_variant_get_boolean(value) ? - Qt::Checked : Qt::Unchecked); - g_variant_unref(value); - } + _check_box = new QCheckBox(name(), parent); + _check_box->setCheckState(value ? Qt::Checked : Qt::Unchecked); if (auto_commit) connect(_check_box, SIGNAL(stateChanged(int)), @@ -71,7 +74,7 @@ void Bool::commit() if (!_check_box) return; - _setter(g_variant_new_boolean( + _setter(Glib::Variant::create( _check_box->checkState() == Qt::Checked)); }