+
+ // Commit the probes
+ for (int i = 0; i < _probes.count(); i++) {
+ const QListWidgetItem *const item = _probes.item(i);
+ assert(item);
+ sr_probe *const probe = (sr_probe*)
+ item->data(UserRole).value<void*>();
+ assert(probe);
+ probe->enabled = item->checkState() == Checked;
+ }
+
+ // Commit the properties
+ const vector< shared_ptr<pv::prop::Property> > &properties =
+ _device_options_binding.properties();
+ BOOST_FOREACH(shared_ptr<pv::prop::Property> 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<pv::prop::Property> > &properties =
+ _device_options_binding.properties();
+ 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));
+ }
+
+ return form;
+}
+
+void DeviceOptions::setup_probes()
+{
+ using namespace Qt;
+
+ for (const GSList *l = _sdi->probes; l; l = l->next) {
+ sr_probe *const probe = (sr_probe*)l->data;
+ assert(probe);
+ QListWidgetItem *const item = new QListWidgetItem(
+ probe->name, &_probes);
+ assert(item);
+ item->setCheckState(probe->enabled ?
+ Checked : Unchecked);
+ item->setData(UserRole,
+ qVariantFromValue((void*)probe));
+ _probes.addItem(item);
+ }
+}
+
+void DeviceOptions::set_all_probes(bool set)
+{
+ for (int i = 0; i < _probes.count(); i++) {
+ QListWidgetItem *const item = _probes.item(i);
+ assert(item);
+ item->setCheckState(set ? Qt::Checked : Qt::Unchecked);
+ }
+}
+
+void DeviceOptions::enable_all_probes()
+{
+ set_all_probes(true);
+}
+
+void DeviceOptions::disable_all_probes()
+{
+ set_all_probes(false);