X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fdialogs%2Fdecoder.cpp;h=07375f649b35a883efa8b65991f5f1d300d8a88c;hb=3045c869ada2e32bf55cbb68633b5213b9b11e28;hp=97df5d45f43c605f3d774d25848d4d0557247e93;hpb=708c552391bc942e91bc09bc808577e2564347bd;p=pulseview.git diff --git a/pv/dialogs/decoder.cpp b/pv/dialogs/decoder.cpp index 97df5d4..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), @@ -69,7 +70,7 @@ Decoder::Decoder(QWidget *parent, const srd_decoder *decoder, _layout.addWidget(&_form); _layout.addWidget(&_button_box); - _form_layout.addRow(new QLabel("

Probes

", &_form)); + _form_layout.addRow(new QLabel(tr("

Probes

"), &_form)); // Add the mandatory probes for(probe = decoder->probes; probe; probe = probe->next) { @@ -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; } }