]> sigrok.org Git - pulseview.git/blobdiff - pv/views/tabular_decoder/view.hpp
Introduce DecodeSignal::annotation_visibility_changed and use it
[pulseview.git] / pv / views / tabular_decoder / view.hpp
index 93761bda49bc15e56fadad2162bec7791aa55b13..ae2d5276de2a6a46cf54f12c9951f79a4b30a104 100644 (file)
@@ -27,6 +27,7 @@
 #include <QToolButton>
 
 #include "pv/globalsettings.hpp"
+#include "pv/metadata_obj.hpp"
 #include "pv/views/viewbase.hpp"
 #include "pv/data/decodesignal.hpp"
 
@@ -48,8 +49,8 @@ enum SaveType {
 enum ViewModeType {
        ViewModeAll,
        ViewModeLatest,
-//     ViewModeVisible,
-       ViewModeCount // Indicates how many save types there are, must always be last
+       ViewModeVisible,
+       ViewModeCount // Indicates how many view mode types there are, must always be last
 };
 
 extern const char* SaveTypeNames[SaveTypeCount];
@@ -78,12 +79,16 @@ public:
        int columnCount(const QModelIndex& parent_idx = QModelIndex()) const override;
 
        void set_signal_and_segment(data::DecodeSignal* signal, uint32_t current_segment);
+       void set_sample_range(uint64_t start_sample, uint64_t end_sample);
        void set_hide_hidden(bool hide_hidden);
 
        void update_annotations_without_hidden();
 
        void on_setting_changed(const QString &key, const QVariant &value) override;
 
+private Q_SLOTS:
+       void on_annotation_visibility_changed();
+
 private:
        vector<QVariant> header_data_;
        const deque<const Annotation*>* all_annotations_;
@@ -92,6 +97,7 @@ private:
        data::DecodeSignal* signal_;
        uint32_t prev_segment_;
        uint64_t prev_last_row_;
+       uint64_t start_sample_, end_sample_, start_index_, end_index_;
        bool hide_hidden_;
        bool theme_is_dark_;
 };
@@ -107,12 +113,13 @@ public:
 };
 
 
-class View : public ViewBase
+class View : public ViewBase, public MetadataObjObserverInterface
 {
        Q_OBJECT
 
 public:
        explicit View(Session &session, bool is_main_view=false, QMainWindow *parent = nullptr);
+       ~View();
 
        virtual ViewType get_type() const;
 
@@ -155,6 +162,9 @@ private Q_SLOTS:
        void on_table_header_requested(const QPoint& pos);
        void on_table_header_toggled(bool checked);
 
+       virtual void on_metadata_object_changed(MetadataObject* obj,
+               MetadataValueType value_type);
+
        virtual void perform_delayed_view_update();
 
 private: