projects
/
pulseview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Modified Decode to only use LogicSignals
[pulseview.git]
/
pv
/
dialogs
/
decoder.cpp
diff --git
a/pv/dialogs/decoder.cpp
b/pv/dialogs/decoder.cpp
index 97df5d45f43c605f3d774d25848d4d0557247e93..07375f649b35a883efa8b65991f5f1d300d8a88c 100644
(file)
--- 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,
namespace dialogs {
Decoder::Decoder(QWidget *parent, const srd_decoder *decoder,
- const vector< shared_ptr<view::Signal> > &sigs) :
+ const vector< shared_ptr<view::LogicSignal> > &sigs,
+ GHashTable *options) :
QDialog(parent),
QDialog(parent),
- _decoder(decoder),
_sigs(sigs),
_sigs(sigs),
+ _binding(decoder, options),
_layout(this),
_form(this),
_form_layout(&_form),
_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);
_layout.addWidget(&_form);
_layout.addWidget(&_button_box);
- _form_layout.addRow(new QLabel(
"<h3>Probes</h3>"
, &_form));
+ _form_layout.addRow(new QLabel(
tr("<h3>Probes</h3>")
, &_form));
// Add the mandatory probes
for(probe = decoder->probes; probe; probe = probe->next) {
// 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("<i>* Required Probes</i>"), &_form));
_form_layout.addRow(new QLabel(
tr("<i>* Required Probes</i>"), &_form));
+
+ // Add the options
+ if (!_binding.properties().empty()) {
+ _form_layout.addRow(new QLabel(tr("<h3>Options</h3>"),
+ &_form));
+ _binding.add_properties_to_form(&_form_layout);
+ }
+}
+
+void Decoder::accept()
+{
+ QDialog::accept();
+ _binding.commit();
}
QComboBox* Decoder::create_probe_selector(
}
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++) {
selector->setCurrentIndex(0);
for(size_t i = 0; i < _sigs.size(); i++) {
- const shared_ptr<view::Signal> s(_sigs[i]);
+ const shared_ptr<view::
Logic
Signal> s(_sigs[i]);
assert(s);
assert(s);
- if (s->enabled()) {
+ if (s->enabled())
+ {
selector->addItem(s->get_name(), qVariantFromValue(i));
if(s->get_name().toLower().contains(
QString(name).toLower()))
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;
}
return selector;
}
-map<const srd_probe*, shared_ptr<view::Signal> > Decoder::get_probes()
+map<const srd_probe*, shared_ptr<view::
Logic
Signal> > Decoder::get_probes()
{
{
- map<const srd_probe*, shared_ptr<view::Signal> > probe_map;
+ map<const srd_probe*, shared_ptr<view::
Logic
Signal> > probe_map;
for(map<const srd_probe*, QComboBox*>::const_iterator i =
_probe_selector_map.begin();
i != _probe_selector_map.end(); i++)
for(map<const srd_probe*, QComboBox*>::const_iterator i =
_probe_selector_map.begin();
i != _probe_selector_map.end(); i++)
@@
-133,12
+148,8
@@
map<const srd_probe*, shared_ptr<view::Signal> > Decoder::get_probes()
const int probe_index =
combo->itemData(combo->currentIndex()).value<int>();
if(probe_index >= 0) {
const int probe_index =
combo->itemData(combo->currentIndex()).value<int>();
if(probe_index >= 0) {
- shared_ptr<view::Signal> sig = _sigs[probe_index];
- if(dynamic_cast<pv::view::LogicSignal*>(sig.get()))
- probe_map[(*i).first] = sig;
- else
- qDebug() << "Currently only logic signals "
- "are supported for decoding";
+ shared_ptr<view::LogicSignal> sig = _sigs[probe_index];
+ probe_map[(*i).first] = sig;
}
}
}
}