#pragma once #include class MainWindow; class TitleBar; class SideBar; class ProjectManager; class DataModel; class CodeGenerateEventModule; class MainWindowEventModule; class HomePage; class ProjectEventModule; class DataModelEventModule; class DataPackEventModule; class SearchEditEventModule; class XmlEditEventModule; /** * @brief 程序运行期间的事务处理管理组件 */ class Session : public QObject { Q_OBJECT public: explicit Session(MainWindow* parent); ~Session(); /** * @brief 返回标题栏管理组件 * @return 标题栏管理组件 */ TitleBar* titleBar(); /** * @brief 返回导航栏管理组件 * @return 导航栏管理组件 */ SideBar* sideBar(); /** * @brief 返回项目管理组件 * @return 项目管理组件 */ ProjectManager* projectManager(); /** * @brief 返回数据建模模块 * @return 数据建模模块 */ DataModel* dataModel(); /** * @brief 返回代码生成模块 * @return 代码生成模块 */ CodeGenerateEventModule* codeGenerate(); MainWindow* parent(); ProjectEventModule* projectEventModule(); DataModelEventModule* dataModelEventModule(); DataPackEventModule* dataPackEventModule(); SearchEditEventModule* searchEditEventModule(); XmlEditEventModule* xmlEditEventModule(); HomePage* homePage(); /** * @brief 返回Session单例对象 * @return Session对象 */ static Session* getSession(); private: TitleBar* _titleBar = nullptr; SideBar* _sideBar = nullptr; ProjectManager* _projectManager = nullptr; DataModel* _dataModel = nullptr; CodeGenerateEventModule* _codeGenerate = nullptr; HomePage* _homePage = nullptr; ProjectEventModule* _projectEventModule = nullptr; DataModelEventModule* _dataModelEventModule = nullptr; DataPackEventModule* _dataPackEvenModule = nullptr; SearchEditEventModule* _searchEditModule = nullptr; XmlEditEventModule* _xmlEditModule = nullptr; MainWindow* _parent = nullptr; static Session* _session; friend class MainWindow; };