50 lines
1.7 KiB
C++
50 lines
1.7 KiB
C++
#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
|