X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fmainwindow.h;h=6f3c8d56344d601d90628578ac1da419ac3f7e71;hp=b53138ee5f84c83bef3a06a1281a7bec0317ada1;hb=13a3528cfa6ed4dc18c44aae2353ac145b0160cc;hpb=2a032dcb6151bd8b019c88f6ef1db1a8c1e5b61e diff --git a/pv/mainwindow.h b/pv/mainwindow.h index b53138ee..6f3c8d56 100644 --- a/pv/mainwindow.h +++ b/pv/mainwindow.h @@ -21,76 +21,102 @@ #ifndef PULSEVIEW_PV_MAINWINDOW_H #define PULSEVIEW_PV_MAINWINDOW_H +#include + +#include + #include #include "sigsession.h" -class QAction; -class QMenuBar; -class QMenu; +struct srd_decoder; + class QVBoxLayout; -class QStatusBar; -class QToolBar; -class QWidget; namespace pv { +class DeviceManager; +class DevInst; + +namespace toolbars { +class ContextBar; class SamplingBar; +} namespace view { class View; } +namespace widgets { +class DecoderMenu; +} + class MainWindow : public QMainWindow { Q_OBJECT public: - explicit MainWindow(QWidget *parent = 0); + explicit MainWindow(DeviceManager &device_manager, + const char *open_file_name = NULL, + QWidget *parent = 0); private: void setup_ui(); -private: - - SigSession _session; - pv::view::View *_view; - - QMenuBar *_menu_bar; - QMenu *_menu_file; - QAction *_action_open; - QAction *_action_quit; + void session_error(const QString text, const QString info_text); - QMenu *_menu_view; - QAction *_action_view_zoom_in; - QAction *_action_view_zoom_out; - QAction *_action_view_show_cursors; + /** + * 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( + boost::shared_ptr selected_device = + boost::shared_ptr()); - QMenu *_menu_help; - QAction *_action_about; +private slots: + void load_file(QString file_name); - QWidget *_central_widget; - QVBoxLayout *_vertical_layout; - QToolBar *_toolbar; - SamplingBar *_sampling_bar; - -private slots: + void show_session_error( + const QString text, const QString info_text); void on_actionOpen_triggered(); + void on_actionSaveAs_triggered(); void on_actionQuit_triggered(); + void on_actionConnect_triggered(); + void on_actionViewZoomIn_triggered(); void on_actionViewZoomOut_triggered(); + void on_actionViewZoomFit_triggered(); + + void on_actionViewZoomOneToOne_triggered(); + void on_actionViewShowCursors_triggered(); void on_actionAbout_triggered(); + void add_decoder(srd_decoder *decoder); + void run_stop(); void capture_state_changed(int state); + +private: + DeviceManager &_device_manager; + + SigSession _session; + + pv::view::View *_view; + + QWidget *_central_widget; + QVBoxLayout *_vertical_layout; + + toolbars::SamplingBar *_sampling_bar; }; } // namespace pv