Use libsigrok C++ bindings (patch version 7).
[pulseview.git] / pv / prop / bool.cpp
index 179208a5e1c927b74de3469b3aca4a8d3634d453..699656f75d3ab60adbd81006d0c4c692886161db 100644 (file)
@@ -24,9 +24,6 @@
 
 #include "bool.h"
 
-using namespace std;
-using namespace boost;
-
 namespace pv {
 namespace prop {
 
@@ -45,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;
 
-       GVariant *const value = _getter ? _getter() : NULL;
+       Glib::VariantBase variant = _getter();
+       if (!variant.gobj())
+               return NULL;
 
-       if (value) {
-               _check_box->setCheckState(g_variant_get_boolean(value) ?
-                       Qt::Checked : Qt::Unchecked);
-               g_variant_unref(value);
-       }
+       bool value = Glib::VariantBase::cast_dynamic<Glib::Variant<bool>>(
+               variant).get();
+
+       _check_box = new QCheckBox(name(), parent);
+       _check_box->setCheckState(value ? Qt::Checked : Qt::Unchecked);
 
        if (auto_commit)
                connect(_check_box, SIGNAL(stateChanged(int)),
@@ -74,7 +74,7 @@ void Bool::commit()
        if (!_check_box)
                return;
 
-       _setter(g_variant_new_boolean(
+       _setter(Glib::Variant<bool>::create(
                _check_box->checkState() == Qt::Checked));
 }