]> sigrok.org Git - pulseview.git/blobdiff - pv/mainwindow.h
Ported pv::prop::binding::DeviceOptions to GVariants
[pulseview.git] / pv / mainwindow.h
index 61a8456fe802582b80b1b22e982eaa18d40d1520..47d3e66d0cad0efa131b7a72b4d796026966eb34 100644 (file)
@@ -21,6 +21,8 @@
 #ifndef PULSEVIEW_PV_MAINWINDOW_H
 #define PULSEVIEW_PV_MAINWINDOW_H
 
+#include <list>
+
 #include <QMainWindow>
 
 #include "sigsession.h"
@@ -35,7 +37,9 @@ class QWidget;
 
 namespace pv {
 
+namespace toolbars {
 class SamplingBar;
+}
 
 namespace view {
 class View;
@@ -46,36 +50,26 @@ class MainWindow : public QMainWindow
        Q_OBJECT
 
 public:
-       explicit MainWindow(QWidget *parent = 0);
+       explicit MainWindow(const char *open_file_name = NULL,
+               QWidget *parent = 0);
 
 private:
        void setup_ui();
+       void scan_devices();
 
-private:
-
-       SigSession _session;
-       pv::view::View *_view;
-
-       QAction *_action_open;
-       QAction *_action_view_zoom_in;
-       QAction *_action_view_zoom_out;
-       QAction *_action_view_show_cursors;
-       QAction *_action_about;
+       void session_error(const QString text, const QString info_text);
 
-       QMenuBar *_menu_bar;
-       QMenu *_menu_file;
-       QMenu *_menu_view;
-       QMenu *_menu_help;
-
-       QWidget *_central_widget;
-       QVBoxLayout *_vertical_layout;
+private slots:
+       void load_file(QString file_name);
 
-       QToolBar *_toolbar;
-       SamplingBar *_sampling_bar;
 
-private slots:
+       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();
 
@@ -88,6 +82,33 @@ private slots:
        void run_stop();
 
        void capture_state_changed(int state);
+
+private:
+
+       SigSession _session;
+       std::list<sr_dev_inst*> _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;
 };
 
 } // namespace pv