]> sigrok.org Git - pulseview.git/blobdiff - pv/prop/binding/binding.cpp
Add bindings for new device options
[pulseview.git] / pv / prop / binding / binding.cpp
index 3c9bba5aee16483c14596def207d5ca6d0b0249b..ec3127254b71c8e82085b4cb0f802020c65e2aa0 100644 (file)
@@ -26,7 +26,7 @@
 
 #include "binding.h"
 
-using namespace boost;
+using boost::shared_ptr;
 
 namespace pv {
 namespace prop {
@@ -45,19 +45,31 @@ void Binding::commit()
        }
 }
 
-QWidget* Binding::get_property_form(QWidget *parent) const
+void Binding::add_properties_to_form(QFormLayout *layout,
+       bool auto_commit) const
 {
-       QWidget *const form = new QWidget(parent);
-       QFormLayout *const layout = new QFormLayout(form);
-       form->setLayout(layout);
+       assert(layout);
 
        BOOST_FOREACH(shared_ptr<pv::prop::Property> p, _properties)
        {
                assert(p);
-               const QString label = p->labeled_widget() ? QString() : p->name();
-               layout->addRow(label, p->get_widget(form));
+
+               QWidget *const widget = p->get_widget(layout->parentWidget(),
+                       auto_commit);
+               if (p->labeled_widget())
+                       layout->addRow(widget);
+               else
+                       layout->addRow(p->name(), widget);
        }
+}
 
+QWidget* Binding::get_property_form(QWidget *parent,
+       bool auto_commit) const
+{
+       QWidget *const form = new QWidget(parent);
+       QFormLayout *const layout = new QFormLayout(form);
+       form->setLayout(layout);
+       add_properties_to_form(layout, auto_commit);
        return form;
 }