StoreSession: Support output formats other than srzip
[pulseview.git] / pv / prop / binding / binding.cpp
index 1a5eb5ec097a32994d04e3057db5090bd41aee77..062ce6676a34fbb2d6b218b9c358ba9e061f10af 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
+#include <cassert>
+
 #include <QFormLayout>
 
-#include <pv/prop/property.h>
+#include <pv/prop/property.hpp>
 
-#include "binding.h"
+#include "binding.hpp"
 
-using boost::shared_ptr;
+using std::shared_ptr;
 
 namespace pv {
 namespace prop {
 namespace binding {
 
-const std::vector< boost::shared_ptr<Property> >& Binding::properties()
+const std::vector< std::shared_ptr<Property> >& Binding::properties()
 {
-       return _properties;
+       return properties_;
 }
 
 void Binding::commit()
 {
-       for (shared_ptr<pv::prop::Property> p : _properties) {
+       for (shared_ptr<pv::prop::Property> p : properties_) {
                assert(p);
                p->commit();
        }
@@ -48,7 +50,7 @@ void Binding::add_properties_to_form(QFormLayout *layout,
 {
        assert(layout);
 
-       for (shared_ptr<pv::prop::Property> p : _properties)
+       for (shared_ptr<pv::prop::Property> p : properties_)
        {
                assert(p);
 
@@ -71,18 +73,18 @@ QWidget* Binding::get_property_form(QWidget *parent,
        return form;
 }
 
-QString Binding::print_gvariant(GVariant *const gvar)
+QString Binding::print_gvariant(Glib::VariantBase gvar)
 {
        QString s;
 
-       if (g_variant_is_of_type(gvar, G_VARIANT_TYPE("s")))
-               s = QString::fromUtf8(g_variant_get_string(gvar, NULL));
+       if (!gvar.gobj())
+               s = QString::fromStdString("(null)");
+       else if (gvar.is_of_type(Glib::VariantType("s")))
+               s = QString::fromStdString(
+                       Glib::VariantBase::cast_dynamic<Glib::Variant<std::string>>(
+                               gvar).get());
        else
-       {
-               gchar *const text = g_variant_print(gvar, FALSE);
-               s = QString::fromUtf8(text);
-               g_free(text);
-       }
+               s = QString::fromStdString(gvar.print());
 
        return s;
 }