summaryrefslogtreecommitdiff
path: root/DSLogic-gui/pv/dialogs/deviceoptions.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'DSLogic-gui/pv/dialogs/deviceoptions.cpp')
-rw-r--r--DSLogic-gui/pv/dialogs/deviceoptions.cpp24
1 files changed, 19 insertions, 5 deletions
diff --git a/DSLogic-gui/pv/dialogs/deviceoptions.cpp b/DSLogic-gui/pv/dialogs/deviceoptions.cpp
index 75023c3..726fc92 100644
--- a/DSLogic-gui/pv/dialogs/deviceoptions.cpp
+++ b/DSLogic-gui/pv/dialogs/deviceoptions.cpp
@@ -50,7 +50,9 @@ DeviceOptions::DeviceOptions(QWidget *parent, struct sr_dev_inst *sdi) :
setWindowTitle(tr("Configure Device"));
setLayout(&_layout);
+ _last_mode = sdi->mode;
_mode_comboBox.addItem(mode_strings[LOGIC]);
+ _mode_comboBox.addItem(mode_strings[DSO]);
_mode_comboBox.addItem(mode_strings[ANALOG]);
_mode_comboBox.setCurrentIndex(_sdi->mode);
_props_box.setLayout(&_props_box_layout);
@@ -77,10 +79,11 @@ void DeviceOptions::accept()
QDialog::accept();
+ _last_mode = _sdi->mode;
// Commit the properties
- const vector< shared_ptr<pv::prop::Property> > &properties =
+ const vector< boost::shared_ptr<pv::prop::Property> > &properties =
_device_options_binding.properties();
- BOOST_FOREACH(shared_ptr<pv::prop::Property> p, properties) {
+ BOOST_FOREACH(boost::shared_ptr<pv::prop::Property> p, properties) {
assert(p);
p->commit();
}
@@ -96,6 +99,15 @@ void DeviceOptions::accept()
}
}
+void DeviceOptions::reject()
+{
+ using namespace Qt;
+ QDialog::reject();
+
+ // Mode Recovery
+ sr_config_set(_sdi, SR_CONF_DEVICE_MODE, g_variant_new_string(_mode_comboBox.itemText(_last_mode).toLocal8Bit()));
+}
+
QWidget* DeviceOptions::get_property_form()
{
QWidget *const form = new QWidget(this);
@@ -103,9 +115,9 @@ QWidget* DeviceOptions::get_property_form()
form->setLayout(layout);
layout->addRow("Device Mode", &_mode_comboBox);
- const vector< shared_ptr<pv::prop::Property> > &properties =
+ const vector< boost::shared_ptr<pv::prop::Property> > &properties =
_device_options_binding.properties();
- BOOST_FOREACH(shared_ptr<pv::prop::Property> p, properties)
+ BOOST_FOREACH(boost::shared_ptr<pv::prop::Property> p, properties)
{
assert(p);
const QString label = p->labeled_widget() ? QString() : p->name();
@@ -182,7 +194,9 @@ void DeviceOptions::disable_all_probes()
void DeviceOptions::mode_changed(QString mode)
{
- sr_config_set(_sdi, SR_CONF_DEVICE_MODE, g_variant_new_string(mode.toLocal8Bit()));
+ (void)mode;
+ // Commit mode
+ sr_config_set(_sdi, SR_CONF_DEVICE_MODE, g_variant_new_string(_mode_comboBox.currentText().toLocal8Bit()));
setup_probes();
}