X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fmainwindow.h;h=94a6c42eab08bf0e0b0994448c02a4eb7c1864a7;hb=8dbbc7f0b9ea59d0f0d62225772f8a56eee125f5;hp=993c608493a39a6b4a1b4a1f75486ee822985e57;hpb=9663c82b7fa8ec54ece3045b41bbc4a53db8bb0b;p=pulseview.git diff --git a/pv/mainwindow.h b/pv/mainwindow.h index 993c608..94a6c42 100644 --- a/pv/mainwindow.h +++ b/pv/mainwindow.h @@ -21,66 +21,67 @@ #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; + +namespace toolbars { +class ContextBar; class SamplingBar; +} 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(); -private: - - SigSession _session; - pv::view::View *_view; - - QMenuBar *_menu_bar; - QMenu *_menu_file; - QAction *_action_open; - QAction *_action_connect; - QAction *_action_quit; + void save_ui_settings(); - QMenu *_menu_view; - QAction *_action_view_zoom_in; - QAction *_action_view_zoom_out; - QAction *_action_view_show_cursors; + void restore_ui_settings(); - QMenu *_menu_help; - QAction *_action_about; + void session_error(const QString text, const QString info_text); - QWidget *_central_widget; - QVBoxLayout *_vertical_layout; + /** + * Updates the device list in the sampling bar + */ + void update_device_list(); - QToolBar *_toolbar; - SamplingBar *_sampling_bar; + void closeEvent(QCloseEvent *event); -private slots: +private Q_SLOTS: void load_file(QString file_name); + 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(); @@ -89,13 +90,43 @@ private slots: 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: + /** + * Name of the setting used to remember the directory + * containing the last file that was opened. + */ + static const char *SettingOpenDirectory; + + /** + * Name of the setting used to remember the directory + * containing the last file that was saved. + */ + static const char *SettingSaveDirectory; + + DeviceManager &device_manager_; + + SigSession session_; + + pv::view::View *view_; + + QWidget *central_widget_; + QVBoxLayout *vertical_layout_; + + toolbars::SamplingBar *sampling_bar_; }; } // namespace pv