* 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 <map>
#include <memory>
+#include <glibmm/variant.h>
+
#include <QMainWindow>
#include "session.hpp"
class QVBoxLayout;
namespace sigrok {
-class Device;
+class InputFormat;
+class OutputFormat;
}
namespace pv {
}
namespace widgets {
+#ifdef ENABLE_DECODE
class DecoderMenu;
+#endif
}
class MainWindow : public QMainWindow
public:
explicit MainWindow(DeviceManager &device_manager,
- const char *open_file_name = NULL,
+ const char *open_file_name = nullptr,
QWidget *parent = 0);
QAction* action_open() 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);
+ void select_device(std::shared_ptr<devices::Device> device);
+
+public Q_SLOTS:
+ void export_file(std::shared_ptr<sigrok::OutputFormat> format);
+ void import_file(std::shared_ptr<sigrok::InputFormat> format);
private:
void setup_ui();
void keyReleaseEvent(QKeyEvent *event);
private Q_SLOTS:
- void load_file(QString file_name);
+ void load_file(QString file_name,
+ std::shared_ptr<sigrok::InputFormat> format = nullptr,
+ const std::map<std::string, Glib::VariantBase> &options =
+ std::map<std::string, Glib::VariantBase>());
void show_session_error(
const QString text, const QString info_text);
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