]> sigrok.org Git - pulseview.git/blobdiff - pv/mainwindow.h
Header: Remove snap-to-grid behaviour
[pulseview.git] / pv / mainwindow.h
index 8129020348109ec6c395672f27bfa98995f9f9c3..b9fc3e0e3dc77b8c488b5269ac568a3fd9d21e12 100644 (file)
 #define PULSEVIEW_PV_MAINWINDOW_H
 
 #include <list>
+#include <memory>
 
 #include <QMainWindow>
 
 #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;
 }
 
@@ -45,28 +45,43 @@ 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 save_ui_settings();
+
+       void restore_ui_settings();
 
        void session_error(const QString text, const QString info_text);
 
-private slots:
-       void load_file(QString file_name);
+       /**
+        * Updates the device list in the sampling bar
+        */
+       void update_device_list();
+
+       void closeEvent(QCloseEvent *event);
 
+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();
@@ -75,41 +90,42 @@ 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:
+       /**
+        * Name of the setting used to remember the directory
+        * containing the last file that was opened.
+        */
+       static const char *SettingOpenDirectory;
 
-       SigSession _session;
-       std::list<sr_dev_inst*> _devices;
-
-       pv::view::View *_view;
+       /**
+        * Name of the setting used to remember the directory
+        * containing the last file that was saved.
+        */
+       static const char *SettingSaveDirectory;
 
-       QMenuBar *_menu_bar;
-       QMenu *_menu_file;
-       QAction *_action_open;
-       QAction *_action_connect;
-       QAction *_action_quit;
+       DeviceManager &_device_manager;
 
-       QMenu *_menu_view;
-       QAction *_action_view_zoom_in;
-       QAction *_action_view_zoom_out;
-       QAction *_action_view_show_cursors;
+       SigSession _session;
 
-       QMenu *_menu_help;
-       QAction *_action_about;
+       pv::view::View *_view;
 
        QWidget *_central_widget;
        QVBoxLayout *_vertical_layout;
 
-       QToolBar *_toolbar;
        toolbars::SamplingBar *_sampling_bar;
 };