Fix the build for older glibmm versions.
authorUwe Hermann <uwe@hermann-uwe.de>
Fri, 30 Jan 2015 18:39:30 +0000 (19:39 +0100)
committerUwe Hermann <uwe@hermann-uwe.de>
Fri, 30 Jan 2015 18:39:30 +0000 (19:39 +0100)
With older glibmm versions the following error occured:

  pv/toolbars/mainbar.cpp:228:6: error: no match for ‘operator!’ (operand
  type is ‘Glib::VariantContainerBase’)
    if (!gvar_dict) {
        ^

Work around the above issue by using .gobj() and not relying on
"Glib::VariantBase::operator BoolExpr() const", which was only
added in glibmm 2.36.

This fixes bug #548.

Tested on a Debian stable system with glibmm 2.32.1 and Boost 1.49.

pv/toolbars/mainbar.cpp

index 4ff8235727fd3ffea81c118eb0ab62c847f3503b..adecf6ac978b7f6f8c652af80b3a0e7c6ebe5a84 100644 (file)
@@ -239,7 +239,7 @@ void MainBar::update_sample_rate_selector()
                }
        }
 
-       if (!gvar_dict) {
+       if (!gvar_dict.gobj()) {
                sample_rate_.show_none();
                updating_sample_rate_ = false;
                return;
@@ -342,7 +342,7 @@ void MainBar::update_sample_count_selector()
                try {
                        auto gvar =
                                device->config_list(ConfigKey::LIMIT_SAMPLES);
-                       if (gvar)
+                       if (gvar.gobj())
                                g_variant_get(gvar.gobj(), "(tt)",
                                        &min_sample_count, &max_sample_count);
                } catch(const sigrok::Error &e) {