DecodeSignal: Save/restore row and column visibilities
authorSoeren Apel <soeren@apelpie.net>
Wed, 8 Jan 2020 21:26:25 +0000 (22:26 +0100)
committerSoeren Apel <soeren@apelpie.net>
Fri, 10 Jan 2020 21:20:35 +0000 (22:20 +0100)
pv/data/decodesignal.cpp

index ce38fbe3df15b90abec65378851ad20cbcae758f..fdf55b73f5d0216c3ecbfbde7a4c2137fb8e4bcf 100644 (file)
@@ -689,6 +689,24 @@ void DecodeSignal::save_settings(QSettings &settings) const
                        i++;
                }
 
+               // Save row properties
+               i = 0;
+               for (const Row* row : decoder->get_rows()) {
+                       settings.beginGroup("row" + QString::number(i));
+                       settings.setValue("visible", row->visible());
+                       settings.endGroup();
+                       i++;
+               }
+
+               // Save class properties
+               i = 0;
+               for (const AnnotationClass* ann_class : decoder->ann_classes()) {
+                       settings.beginGroup("ann_class" + QString::number(i));
+                       settings.setValue("visible", ann_class->visible);
+                       settings.endGroup();
+                       i++;
+               }
+
                settings.endGroup();
        }
 
@@ -754,6 +772,25 @@ void DecodeSignal::restore_settings(QSettings &settings)
 
                                // Include the newly created decode channels in the channel lists
                                update_channel_list();
+
+                               // Restore row properties
+                               int i = 0;
+                               for (Row* row : decoder->get_rows()) {
+                                       settings.beginGroup("row" + QString::number(i));
+                                       row->set_visible(settings.value("visible", true).toBool());
+                                       settings.endGroup();
+                                       i++;
+                               }
+
+                               // Restore class properties
+                               i = 0;
+                               for (AnnotationClass* ann_class : decoder->ann_classes()) {
+                                       settings.beginGroup("ann_class" + QString::number(i));
+                                       ann_class->visible = settings.value("visible", true).toBool();
+                                       settings.endGroup();
+                                       i++;
+                               }
+
                                break;
                        }
                }