Continued ripping up the source.
[aesalon.git] / gui / src / SessionManager.h
blob2cf0ada8170bea75624cde6e3a054a5411a35e22
1 #ifndef AESALON_GUI_SESSION_MANAGER_H
2 #define AESALON_GUI_SESSION_MANAGER_H
4 #include <QWidget>
5 #include <QGridLayout>
6 #include <QVBoxLayout>
7 #include <QHBoxLayout>
8 #include <QPushButton>
10 #include "Session.h"
11 #include "SessionListWidget.h"
12 #include "ActiveSession.h"
14 namespace Aesalon {
15 namespace GUI {
17 class SessionManager : public QWidget { Q_OBJECT
18 private:
19 QList<Session *> session_list;
21 QVBoxLayout *layout;
22 SessionListWidget *session_list_view;
23 QHBoxLayout *session_button_layout;
24 QPushButton *new_session_button;
25 QPushButton *connect_to_session_button;
26 QPushButton *launch_session_button;
27 public:
28 SessionManager(QWidget *parent = 0);
29 virtual ~SessionManager();
31 Session *get_session_by_name(const QString &name) const;
32 public slots:
33 void save_sessions();
34 void new_session();
35 void launch_session(QListWidgetItem *session_item);
36 void launch_current_session() { launch_session(session_list_view->currentItem()); }
37 void edit_session(QListWidgetItem *session_item);
38 void edit_current_session() { edit_session(session_list_view->currentItem()); }
39 void delete_session(QListWidgetItem *session_item);
41 void close_active_session(ActiveSession *session);
42 signals:
43 void new_tab_request(QWidget *new_tab, QString name);
44 void remove_tab_request(QWidget *tab);
47 } // namespace GUI
48 } // namespace Aesalon
50 #endif