X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fmainwindow.h;h=0f1449d34fad15f1b9de897f6d685c4930bb452f;hp=8129020348109ec6c395672f27bfa98995f9f9c3;hb=5d1f6de47dc60b1abf8ddbcdfdfdf354b8c06be8;hpb=5ac961e325a9d2cbafdd8fae3a6704d7348cf19a diff --git a/pv/mainwindow.h b/pv/mainwindow.h index 81290203..0f1449d3 100644 --- a/pv/mainwindow.h +++ b/pv/mainwindow.h @@ -23,21 +23,20 @@ #include +#include + #include #include "sigsession.h" -class QAction; -class QMenuBar; -class QMenu; class QVBoxLayout; -class QStatusBar; -class QToolBar; -class QWidget; namespace pv { +class DeviceManager; + namespace toolbars { +class ContextBar; class SamplingBar; } @@ -45,20 +44,33 @@ namespace view { class View; } +namespace widgets { +class DecoderMenu; +} + class MainWindow : public QMainWindow { Q_OBJECT public: - explicit MainWindow(const char *open_file_name = NULL, + explicit MainWindow(DeviceManager &device_manager, + const char *open_file_name = NULL, QWidget *parent = 0); private: void setup_ui(); - void scan_devices(); void session_error(const QString text, const QString info_text); + /** + * Updates the device list in the sampling bar, and updates the + * selection. + * @param selected_device The device to select, or NULL if the + * first device in the device list should be selected. + */ + void update_device_list( + struct sr_dev_inst *selected_device = NULL); + private slots: void load_file(QString file_name); @@ -75,41 +87,30 @@ private slots: void on_actionViewZoomOut_triggered(); + void on_actionViewZoomFit_triggered(); + + void on_actionViewZoomOneToOne_triggered(); + void on_actionViewShowCursors_triggered(); void on_actionAbout_triggered(); - void device_selected(); + void add_decoder(srd_decoder *decoder); void run_stop(); void capture_state_changed(int state); private: + DeviceManager &_device_manager; SigSession _session; - std::list _devices; pv::view::View *_view; - QMenuBar *_menu_bar; - QMenu *_menu_file; - QAction *_action_open; - QAction *_action_connect; - QAction *_action_quit; - - QMenu *_menu_view; - QAction *_action_view_zoom_in; - QAction *_action_view_zoom_out; - QAction *_action_view_show_cursors; - - QMenu *_menu_help; - QAction *_action_about; - QWidget *_central_widget; QVBoxLayout *_vertical_layout; - QToolBar *_toolbar; toolbars::SamplingBar *_sampling_bar; };