X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fdialogs%2Fdecoder.cpp;h=07375f649b35a883efa8b65991f5f1d300d8a88c;hb=3045c869ada2e32bf55cbb68633b5213b9b11e28;hp=1611d9b3217c9b22fd75192fc0d956e3d736aca5;hpb=de646fae0ec05793d39abf339f7b6f9507a9b23f;p=pulseview.git diff --git a/pv/dialogs/decoder.cpp b/pv/dialogs/decoder.cpp index 1611d9b..07375f6 100644 --- a/pv/dialogs/decoder.cpp +++ b/pv/dialogs/decoder.cpp @@ -40,10 +40,11 @@ namespace pv { namespace dialogs { Decoder::Decoder(QWidget *parent, const srd_decoder *decoder, - const vector< shared_ptr > &sigs) : + const vector< shared_ptr > &sigs, + GHashTable *options) : QDialog(parent), - _decoder(decoder), _sigs(sigs), + _binding(decoder, options), _layout(this), _form(this), _form_layout(&_form), @@ -97,6 +98,19 @@ Decoder::Decoder(QWidget *parent, const srd_decoder *decoder, _form_layout.addRow(new QLabel( tr("* Required Probes"), &_form)); + + // Add the options + if (!_binding.properties().empty()) { + _form_layout.addRow(new QLabel(tr("

Options

"), + &_form)); + _binding.add_properties_to_form(&_form_layout); + } +} + +void Decoder::accept() +{ + QDialog::accept(); + _binding.commit(); } QComboBox* Decoder::create_probe_selector( @@ -108,10 +122,11 @@ QComboBox* Decoder::create_probe_selector( selector->setCurrentIndex(0); for(size_t i = 0; i < _sigs.size(); i++) { - const shared_ptr s(_sigs[i]); + const shared_ptr s(_sigs[i]); assert(s); - if (s->enabled()) { + if (s->enabled()) + { selector->addItem(s->get_name(), qVariantFromValue(i)); if(s->get_name().toLower().contains( QString(name).toLower())) @@ -122,9 +137,9 @@ QComboBox* Decoder::create_probe_selector( return selector; } -map > Decoder::get_probes() +map > Decoder::get_probes() { - map > probe_map; + map > probe_map; for(map::const_iterator i = _probe_selector_map.begin(); i != _probe_selector_map.end(); i++) @@ -133,12 +148,8 @@ map > Decoder::get_probes() const int probe_index = combo->itemData(combo->currentIndex()).value(); if(probe_index >= 0) { - shared_ptr sig = _sigs[probe_index]; - if(dynamic_cast(sig.get())) - probe_map[(*i).first] = sig; - else - qDebug() << "Currently only logic signals " - "are supported for decoding"; + shared_ptr sig = _sigs[probe_index]; + probe_map[(*i).first] = sig; } }