X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fmainwindow.h;h=d34db1bffaa6d4a4a53acf88f9b1d39617b2afdf;hp=b53138ee5f84c83bef3a06a1281a7bec0317ada1;hb=03ce95a9bb81c05bae0da9de189d280214db67c3;hpb=2a032dcb6151bd8b019c88f6ef1db1a8c1e5b61e diff --git a/pv/mainwindow.h b/pv/mainwindow.h index b53138ee..d34db1bf 100644 --- a/pv/mainwindow.h +++ b/pv/mainwindow.h @@ -21,7 +21,12 @@ #ifndef PULSEVIEW_PV_MAINWINDOW_H #define PULSEVIEW_PV_MAINWINDOW_H +#include + +#include + #include +#include #include "sigsession.h" @@ -35,7 +40,12 @@ class QWidget; namespace pv { +class DeviceManager; + +namespace toolbars { +class ContextBar; class SamplingBar; +} namespace view { class View; @@ -46,19 +56,66 @@ 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(); + 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); + + static gint decoder_name_cmp(gconstpointer a, gconstpointer b); + void setup_add_decoders(QMenu *parent); + +private slots: + void load_file(QString file_name); + + + void show_session_error( + const QString text, const QString info_text); + + void on_actionOpen_triggered(); + void on_actionQuit_triggered(); + + void on_actionConnect_triggered(); + + void on_actionViewZoomIn_triggered(); + + void on_actionViewZoomOut_triggered(); + + void on_actionViewShowCursors_triggered(); + + void on_actionAbout_triggered(); + + void device_selected(); + + void add_decoder(QObject *action); + + void run_stop(); + + void capture_state_changed(int state); + private: + DeviceManager &_device_manager; SigSession _session; + pv::view::View *_view; QMenuBar *_menu_bar; QMenu *_menu_file; QAction *_action_open; + QAction *_action_connect; QAction *_action_quit; QMenu *_menu_view; @@ -66,6 +123,10 @@ private: QAction *_action_view_zoom_out; QAction *_action_view_show_cursors; + QMenu *_menu_decoders; + QMenu *_menu_decoders_add; + QSignalMapper _decoders_add_mapper; + QMenu *_menu_help; QAction *_action_about; @@ -73,24 +134,7 @@ private: QVBoxLayout *_vertical_layout; QToolBar *_toolbar; - SamplingBar *_sampling_bar; - -private slots: - - void on_actionOpen_triggered(); - void on_actionQuit_triggered(); - - void on_actionViewZoomIn_triggered(); - - void on_actionViewZoomOut_triggered(); - - void on_actionViewShowCursors_triggered(); - - void on_actionAbout_triggered(); - - void run_stop(); - - void capture_state_changed(int state); + toolbars::SamplingBar *_sampling_bar; }; } // namespace pv