#ifndef ORBITHUB_SESSION_WINDOW_H #define ORBITHUB_SESSION_WINDOW_H #include "profile_repository.h" #include "session_tab.h" #include #include class QTabWidget; class ProfilesWindow; class SessionWindow : public QMainWindow { Q_OBJECT public: explicit SessionWindow(QWidget* parent = nullptr); void openProfile(const Profile& profile); private: QTabWidget* m_tabs; ProfilesWindow* m_profilesWidget; SessionUiPreferences m_preferences; // Last known connection state per tab, so the tab color can be // restored correctly once an awaitingUserInputChanged(false) fires // (that signal is orthogonal to SessionState -- see session_tab.h). QHash m_tabStates; void addSessionTab(const Profile& profile); void updateTabTitle(SessionTab* tab, const QString& title); void loadUiPreferences(); void saveUiPreferences() const; int sessionTabCount() const; }; #endif