]> sigrok.org Git - pulseview.git/blobdiff - pv/data/decodesignal.cpp
TabularDecView: Allow return/enter press and don't change scale
[pulseview.git] / pv / data / decodesignal.cpp
index ff7a27640fb597c4aed12863da5d6bf0ff9f2dd7..98275bad4b5f3fb17c84830ad916f5d3906ae533 100644 (file)
@@ -108,11 +108,12 @@ void DecodeSignal::remove_decoder(int index)
        assert(index < (int)stack_.size());
 
        // Find the decoder in the stack
-       auto iter = stack_.begin();
-       for (int i = 0; i < index; i++, iter++)
-               assert(iter != stack_.end());
+       auto iter = stack_.begin() + index;
+       assert(iter != stack_.end());
+
+       shared_ptr<Decoder> dec = *iter;
 
-       decoder_removed(iter->get());
+       decoder_removed(dec.get());
 
        // Delete the element
        stack_.erase(iter);
@@ -821,7 +822,7 @@ void DecodeSignal::restore_settings(QSettings &settings)
                QString assigned_signal_name = settings.value("assigned_signal_name").toString();
 
                for (const shared_ptr<data::SignalBase>& signal : signalbases)
-                       if (signal->name() == assigned_signal_name)
+                       if ((signal->name() == assigned_signal_name) && (signal->type() != SignalBase::DecodeChannel))
                                channel->assigned_signal = signal.get();
 
                channel->initial_pin_state = settings.value("initial_pin_state").toInt();