X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fdialogs%2Fdeviceoptions.cpp;h=39e41b589acfea3b110623cbf7cc310c7ef7ef5c;hb=708c552391bc942e91bc09bc808577e2564347bd;hp=e6b2f847d12969f15d78ffa01cbd89e0a8ef337b;hpb=ed773982d53396e94266288a8fcd87846706f1e4;p=pulseview.git diff --git a/pv/dialogs/deviceoptions.cpp b/pv/dialogs/deviceoptions.cpp index e6b2f847..39e41b58 100644 --- a/pv/dialogs/deviceoptions.cpp +++ b/pv/dialogs/deviceoptions.cpp @@ -20,8 +20,16 @@ #include "deviceoptions.h" +#include + +#include #include +#include + +using namespace boost; +using namespace std; + namespace pv { namespace dialogs { @@ -66,7 +74,7 @@ DeviceOptions::DeviceOptions(QWidget *parent, struct sr_dev_inst *sdi) : _props_box.setLayout(&_props_box_layout); - _props_box_layout.addWidget(_device_options_binding.get_form(this)); + _props_box_layout.addWidget(get_property_form()); _layout.addWidget(&_props_box); _layout.addWidget(&_button_box); @@ -89,7 +97,30 @@ void DeviceOptions::accept() } // Commit the properties - _device_options_binding.commit(); + const vector< shared_ptr > &properties = + _device_options_binding.properties(); + BOOST_FOREACH(shared_ptr p, properties) { + assert(p); + p->commit(); + } +} + +QWidget* DeviceOptions::get_property_form() +{ + QWidget *const form = new QWidget(this); + QFormLayout *const layout = new QFormLayout(form); + form->setLayout(layout); + + const vector< shared_ptr > &properties = + _device_options_binding.properties(); + BOOST_FOREACH(shared_ptr p, properties) + { + assert(p); + const QString label = p->labeled_widget() ? QString() : p->name(); + layout->addRow(label, p->get_widget(form)); + } + + return form; } void DeviceOptions::setup_probes()