* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#ifndef PULSEVIEW_PV_MAINWINDOW_H
-#define PULSEVIEW_PV_MAINWINDOW_H
+#ifndef PULSEVIEW_PV_MAINWINDOW_HPP
+#define PULSEVIEW_PV_MAINWINDOW_HPP
#include <list>
#include <memory>
#include <QMainWindow>
-#include "sigsession.hpp"
+#include "session.hpp"
struct srd_decoder;
class QVBoxLayout;
+namespace sigrok {
+class Device;
+class OutputFormat;
+}
+
namespace pv {
class DeviceManager;
namespace toolbars {
class ContextBar;
-class SamplingBar;
+class MainBar;
}
namespace view {
}
namespace widgets {
+#ifdef ENABLE_DECODE
class DecoderMenu;
+#endif
}
class MainWindow : public QMainWindow
{
Q_OBJECT
+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;
+
public:
explicit MainWindow(DeviceManager &device_manager,
const char *open_file_name = NULL,
QWidget *parent = 0);
+ QAction* action_open() const;
+ QAction* action_save_as() const;
+ QAction* action_connect() const;
+ QAction* action_quit() const;
+ QAction* action_view_zoom_in() const;
+ QAction* action_view_zoom_out() const;
+ QAction* action_view_zoom_fit() const;
+ QAction* action_view_zoom_one_to_one() const;
+ QAction* action_view_show_cursors() const;
+ QAction* action_about() const;
+
+#ifdef ENABLE_DECODE
+ QMenu* menu_decoder_add() const;
+#endif
+
void run_stop();
+ void select_device(std::shared_ptr<sigrok::Device> device);
+
+public Q_SLOTS:
+ void export_file(std::shared_ptr<sigrok::OutputFormat> format);
+
private:
void setup_ui();
void session_error(const QString text, const QString info_text);
/**
- * Updates the device list in the sampling bar
+ * Updates the device list in the toolbar
*/
- void update_device_list();
+ void update_device_list();
+private:
void closeEvent(QCloseEvent *event);
+ void keyReleaseEvent(QKeyEvent *event);
+
private Q_SLOTS:
void load_file(QString file_name);
void device_selected();
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_;
Session session_;
QWidget *central_widget_;
QVBoxLayout *vertical_layout_;
- toolbars::SamplingBar *sampling_bar_;
+ toolbars::MainBar *main_bar_;
+
+ QAction *const action_open_;
+ QAction *const action_save_as_;
+ QAction *const action_connect_;
+ QAction *const action_quit_;
+ QAction *const action_view_zoom_in_;
+ QAction *const action_view_zoom_out_;
+ QAction *const action_view_zoom_fit_;
+ QAction *const action_view_zoom_one_to_one_;
+ QAction *const action_view_show_cursors_;
+ QAction *const action_about_;
+
+#ifdef ENABLE_DECODE
+ QMenu *const menu_decoders_add_;
+#endif
};
} // namespace pv
-#endif // PULSEVIEW_PV_MAINWINDOW_H
+#endif // PULSEVIEW_PV_MAINWINDOW_HPP