#ifndef INCLUDEGUIGUISCENEMANAGER_H #define INCLUDEGUIGUISCENEMANAGER_H #include #include #include #include class Scene; class GuiSceneManager : public QObject { Q_OBJECT private: explicit GuiSceneManager(QObject *parent = nullptr); ~GuiSceneManager(); public: static GuiSceneManager& getInstance() { static GuiSceneManager instance; return instance; } public slots: bool registerScene(QString scene_name, Scene* name); bool changeScene(QString scene_name, QString args = ""); Scene *getScene(QString scene_name); bool show(QString scene_name); bool hide(QString scene_name); private: std::map scenes_; QString current_scene_; QMainWindow* window_; QGridLayout* window_layout_; signals: public slots: }; #endif // INCLUDEGUIGUISCENEMANAGER_H