return result;
}
-vector<Row> DecodeSignal::visible_rows() const
+vector<Row> DecodeSignal::get_rows(bool visible_only) const
{
lock_guard<mutex> lock(output_mutex_);
for (const shared_ptr<decode::Decoder>& dec : stack_) {
assert(dec);
- if (!dec->shown())
+ if (visible_only && !dec->shown())
continue;
const srd_decoder *const decc = dec->decoder();
{
// Note: We put all vectors and lists on the heap, not the stack
- const vector<Row> rows = visible_rows();
+ const vector<Row> rows = get_rows(true);
// Use forward_lists for faster merging
forward_list<Annotation> *all_ann_list = new forward_list<Annotation>();
settings.beginGroup("decoder" + QString::number(decoder_idx++));
settings.setValue("id", decoder->decoder()->id);
+ settings.setValue("shown", decoder->shown());
// Save decoder options
const map<string, GVariant*>& options = decoder->options();
make_shared<decode::Decoder>(dec);
stack_.push_back(decoder);
+ decoder->show(settings.value("shown", true).toBool());
// Restore decoder options that differ from their default
int options = settings.value("options").toInt();