Files
2026-07-16 15:35:29 +08:00

50 lines
1.7 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#ifndef PICSCENELOADER_H
#define PICSCENELOADER_H
#include <QImage>
#include <QString>
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