X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fviews%2Fdecoder_output%2Fview.hpp;h=ece85ad65835f45a5d83a29ece14f8eb97515ae6;hb=03408f5f5b62ce74016d91d60bdadce8dbddd46b;hp=23023efbe633d55bf3b326abcfc2af86a0f958d3;hpb=ac9494eff3ebc74ae7a87746a4d8668c68f32b52;p=pulseview.git diff --git a/pv/views/decoder_output/view.hpp b/pv/views/decoder_output/view.hpp index 23023efb..ece85ad6 100644 --- a/pv/views/decoder_output/view.hpp +++ b/pv/views/decoder_output/view.hpp @@ -20,8 +20,10 @@ #ifndef PULSEVIEW_PV_VIEWS_DECODEROUTPUT_VIEW_HPP #define PULSEVIEW_PV_VIEWS_DECODEROUTPUT_VIEW_HPP +#include #include #include +#include #include #include @@ -36,6 +38,16 @@ namespace views { namespace decoder_output { +// When adding an entry here, don't forget to update SaveTypeNames as well +enum SaveType { + SaveTypeBinary, + SaveTypeHexDump, + SaveTypeCount // Indicates how many save types there are, must always be last +}; + +extern const char* SaveTypeNames[SaveTypeCount]; + + class View : public ViewBase { Q_OBJECT @@ -53,8 +65,6 @@ public: */ virtual void reset_view_state(); - virtual void clear_signals(); - virtual void clear_decode_signals(); virtual void add_decode_signal(shared_ptr signal); virtual void remove_decode_signal(shared_ptr signal); @@ -63,6 +73,7 @@ public: virtual void restore_settings(QSettings &settings); private: + void reset_data(); void update_data(); private Q_SLOTS: @@ -74,14 +85,24 @@ private Q_SLOTS: void on_decoder_stacked(void* decoder); void on_decoder_removed(void* decoder); + void on_actionSave_triggered(QAction* action = nullptr); + + virtual void perform_delayed_view_update(); + private: + QWidget* parent_; + QComboBox *decoder_selector_, *format_selector_, *class_selector_; QStackedWidget *stacked_widget_; QHexView *hex_view_; + QToolButton* save_button_; + QAction* save_action_; + data::DecodeSignal *signal_; const data::decode::Decoder *decoder_; uint32_t bin_class_id_; + bool binary_data_exists_; }; } // namespace decoder_output