]> sigrok.org Git - pulseview.git/blobdiff - pv/data/decode/row.cpp
Fix some DecodeTrace UI issues
[pulseview.git] / pv / data / decode / row.cpp
index 72a6869f94250abcbe731a75d5ebcaffc3b028a2..341c61dfd1fea3547bc3dab46fd1d965970e425b 100644 (file)
@@ -75,11 +75,17 @@ const QString Row::description() const
 
 vector<AnnotationClass*> Row::ann_classes() const
 {
+       assert(decoder_);
+
        vector<AnnotationClass*> result;
 
-       if (!srd_row_)
+       if (!srd_row_) {
+               if (index_ == 0) {
+                       // When operating as the fallback row, all annotation classes belong to it
+                       return decoder_->ann_classes();
+               }
                return result;
-       assert(decoder_);
+       }
 
        for (GSList *l = srd_row_->ann_classes; l; l = l->next) {
                size_t class_id = (size_t)l->data;
@@ -104,6 +110,15 @@ void Row::set_visible(bool visible)
        visible_ = visible;
 }
 
+bool Row::has_hidden_classes() const
+{
+       for (const AnnotationClass* c : ann_classes())
+               if (!c->visible)
+                       return true;
+
+       return false;
+}
+
 bool Row::operator<(const Row& other) const
 {
        return (decoder_ < other.decoder_) ||