#include <QMainWindow>
#include "session.hpp"
-#include "view/viewwidget.hpp"
+#include "views/viewbase.hpp"
struct srd_decoder;
{
Q_OBJECT
+private:
+ static const QString WindowTitle;
+
public:
explicit MainWindow(DeviceManager &device_manager,
std::string open_file_name = std::string(),
QAction* action_view_coloured_bg() const;
QAction* action_about() const;
- std::shared_ptr<pv::view::View> get_active_view() const;
+ std::shared_ptr<views::ViewBase> get_active_view() const;
- std::shared_ptr<pv::view::View> add_view(const QString &title,
- view::ViewType type, Session &session);
+ std::shared_ptr<views::ViewBase> add_view(const QString &title,
+ views::ViewType type, Session &session);
std::shared_ptr<Session> add_session();
+ void remove_session(std::shared_ptr<Session> session);
+
private:
void setup_ui();
virtual bool restoreState(const QByteArray &state, int version = 0);
private Q_SLOTS:
+ void on_add_view(const QString &title, views::ViewType type,
+ Session *session);
+
+ void on_focus_changed();
+
+ void on_new_session();
+ void on_session_name_changed();
+ void on_new_view(Session *session);
+ void on_view_close_clicked();
+
void on_actionViewStickyScrolling_triggered();
void on_actionViewColouredBg_triggered();
private:
DeviceManager &device_manager_;
- std::vector< std::shared_ptr<Session> > sessions_;
+ std::list< std::shared_ptr<Session> > sessions_;
std::map< std::shared_ptr<QDockWidget>,
- std::shared_ptr<pv::view::View> > view_docks_;
+ std::shared_ptr<views::ViewBase> > view_docks_;
QAction *const action_view_sticky_scrolling_;
QAction *const action_view_coloured_bg_;