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<Glib::Variant<bool>>(
+ 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)),
if (!_check_box)
return;
- _setter(g_variant_new_boolean(
+ _setter(Glib::Variant<bool>::create(
_check_box->checkState() == Qt::Checked));
}