X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fview%2Fdecodetrace.cpp;h=c0c4d167e109f17f16eeb374aba8420d863dd86f;hp=8674f40ca405ca2c5833cc708e278015839b2811;hb=60d9b99a32e551cffd2b537d3e157d578a761c9b;hpb=4c60462b00cc329e61daedd1c2e66724077bd412 diff --git a/pv/view/decodetrace.cpp b/pv/view/decodetrace.cpp index 8674f40c..c0c4d167 100644 --- a/pv/view/decodetrace.cpp +++ b/pv/view/decodetrace.cpp @@ -525,7 +525,7 @@ pair DecodeTrace::get_pixels_offset_samples_per_pixel() const assert(scale > 0); const double pixels_offset = - (view->offset() - decoder_stack_->start_time()) / scale; + ((view->offset() - decoder_stack_->start_time()) / scale).convert_to(); double samplerate = decoder_stack_->samplerate(); @@ -642,13 +642,17 @@ void DecodeTrace::create_decoder_form(int index, const srd_decoder *const decoder = dec->decoder(); assert(decoder); + const bool decoder_deletable = index > 0; + pv::widgets::DecoderGroupBox *const group = new pv::widgets::DecoderGroupBox( - QString::fromUtf8(decoder->name)); + QString::fromUtf8(decoder->name), nullptr, decoder_deletable); group->set_decoder_visible(dec->shown()); - delete_mapper_.setMapping(group, index); - connect(group, SIGNAL(delete_decoder()), &delete_mapper_, SLOT(map())); + if (decoder_deletable) { + delete_mapper_.setMapping(group, index); + connect(group, SIGNAL(delete_decoder()), &delete_mapper_, SLOT(map())); + } show_hide_mapper_.setMapping(group, index); connect(group, SIGNAL(show_hide_decoder()), @@ -658,7 +662,7 @@ void DecodeTrace::create_decoder_form(int index, group->add_layout(decoder_form); // Add the mandatory channels - for(l = decoder->channels; l; l = l->next) { + for (l = decoder->channels; l; l = l->next) { const struct srd_channel *const pdch = (struct srd_channel *)l->data; QComboBox *const combo = create_channel_selector(parent, dec, pdch); @@ -673,7 +677,7 @@ void DecodeTrace::create_decoder_form(int index, } // Add the optional channels - for(l = decoder->opt_channels; l; l = l->next) { + for (l = decoder->opt_channels; l; l = l->next) { const struct srd_channel *const pdch = (struct srd_channel *)l->data; QComboBox *const combo = create_channel_selector(parent, dec, pdch); @@ -748,7 +752,7 @@ void DecodeTrace::commit_decoder_channels(shared_ptr &dec for (const ChannelSelector &s : channel_selectors_) { - if(s.decoder_ != dec) + if (s.decoder_ != dec) break; const LogicSignal *const selection = @@ -756,7 +760,7 @@ void DecodeTrace::commit_decoder_channels(shared_ptr &dec s.combo_->currentIndex()).value(); for (shared_ptr sig : sigs) - if(sig.get() == selection) { + if (sig.get() == selection) { channel_map[s.pdch_] = dynamic_pointer_cast(sig); break; @@ -825,7 +829,7 @@ void DecodeTrace::on_show_hide_decoder(int index) // Find the decoder in the stack auto iter = stack.cbegin(); - for(int i = 0; i < index; i++, iter++) + for (int i = 0; i < index; i++, iter++) assert(iter != stack.end()); shared_ptr dec = *iter;