#ifndef PICSCENELOADER_H #define PICSCENELOADER_H #include #include class PicScene; class PrintSettingModel; namespace PicSceneLoader { /** * @brief 从 XML 文件解析并加载到已有 PicScene 场景 * * 读取 VBfiles 格式的 XML 文件,解析其中的 VBfile 元素构建场景图元, * 同时可选的提取 PrintSettings 打印配置。 * * @param xmlFilename XML 文件路径 * @param targetScene 目标场景,不可为 nullptr * @param outPrintSettings 输出参数,解析到的打印配置;仅当函数返回 true 时有效,可为 nullptr * @return 成功返回 true,失败返回 false */ bool loadSceneFromFile(const QString& xmlFilename, PicScene* targetScene, PrintSettingModel* outPrintSettings = nullptr); /** * @brief 从 XML 文件渲染场景预览图 * * 解析 XML 文件创建临时场景,将其渲染为 QImage 预览图后立即销毁场景。 * * @param xmlFilename XML 文件路径 * @return 成功返回场景渲染的 QImage,失败返回空 QImage */ QImage previewSceneFromFile(const QString& xmlFilename); /** * @brief 将 PicScene 场景保存为 XML 文件 * * 将场景中的所有 PicTextItem 图元序列化为 VBfiles 格式的 XML, * 同时可选的写入 PrintSettings 打印配置。 * * @param xmlFilename 目标 XML 文件路径 * @param scene 要保存的场景,不可为 nullptr * @param printSettings 要写入的打印配置,可为 nullptr 表示不写入 * @return true 保存成功,false 保存失败 */ bool saveSceneToXmlFile(const QString& xmlFilename, PicScene* scene, const PrintSettingModel* printSettings = nullptr); } // namespace PicSceneLoader #endif // PICSCENELOADER_H