X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fviews%2Ftabular_decoder%2Fview.hpp;h=9c251382c675bbb2e2cb074dbde47016eb02afc7;hb=6d46525fb5566856d01deac5a7787699b17cc4e4;hp=8e1dfa4179432ce96891e4ccce2e929ceaa89178;hpb=02c87df7336eb81b770457b4153cf2dc649ffdab;p=pulseview.git diff --git a/pv/views/tabular_decoder/view.hpp b/pv/views/tabular_decoder/view.hpp index 8e1dfa41..9c251382 100644 --- a/pv/views/tabular_decoder/view.hpp +++ b/pv/views/tabular_decoder/view.hpp @@ -25,6 +25,7 @@ #include #include +#include "pv/globalsettings.hpp" #include "pv/views/viewbase.hpp" #include "pv/data/decodesignal.hpp" @@ -35,13 +36,24 @@ namespace views { namespace tabular_decoder { -class AnnotationCollectionModel : public QAbstractTableModel +// When adding an entry here, don't forget to update SaveTypeNames as well +enum SaveType { + SaveTypeCSVEscaped, + SaveTypeCSVQuoted, + SaveTypeCount // Indicates how many save types there are, must always be last +}; + +extern const char* SaveTypeNames[SaveTypeCount]; + + +class AnnotationCollectionModel : public QAbstractTableModel, public GlobalSettingsInterface { Q_OBJECT public: AnnotationCollectionModel(QObject* parent = nullptr); + QVariant data_from_ann(const Annotation* ann, int index) const; QVariant data(const QModelIndex& index, int role) const override; Qt::ItemFlags flags(const QModelIndex& index) const override; @@ -57,11 +69,15 @@ public: void set_signal_and_segment(data::DecodeSignal* signal, uint32_t current_segment); + void on_setting_changed(const QString &key, const QVariant &value) override; + private: vector header_data_; const deque* all_annotations_; + data::DecodeSignal* signal_; uint32_t prev_segment_; uint64_t prev_last_row_; + bool theme_is_dark_; }; @@ -101,11 +117,12 @@ private: void reset_data(); void update_data(); - void save_data() const; + void save_data_as_csv(unsigned int save_type) const; private Q_SLOTS: void on_selected_decoder_changed(int index); void on_signal_name_changed(const QString &name); + void on_signal_color_changed(const QColor &color); void on_new_annotations(); void on_decoder_reset(); @@ -114,6 +131,11 @@ private Q_SLOTS: void on_actionSave_triggered(QAction* action = nullptr); + void on_table_item_clicked(const QModelIndex& index); + void on_table_item_double_clicked(const QModelIndex& index); + void on_table_header_requested(const QPoint& pos); + void on_table_header_toggled(bool checked); + virtual void perform_delayed_view_update(); private: @@ -130,7 +152,6 @@ private: data::DecodeSignal* signal_; const data::decode::Decoder* decoder_; - bool updating_data_; }; } // namespace tabular_decoder