#pragma once #include #include "xml/tinyxml2.h" class WorkSpace; class WorkSpaceXMLWrite : public QObject { Q_OBJECT public: explicit WorkSpaceXMLWrite(WorkSpace* workspace, QObject* parent = nullptr) noexcept; ~WorkSpaceXMLWrite() override = default; bool Save(const QString& path); protected: bool SaveScene(tinyxml2::XMLElement* scene); bool SaveTimeStep(tinyxml2::XMLElement* scene); bool SaveLamp(tinyxml2::XMLElement* scene); bool SaveCommond(tinyxml2::XMLElement* scene); bool SaveEntities(tinyxml2::XMLElement* scene, tinyxml2::XMLDocument* doc); bool SaveChart(tinyxml2::XMLElement* scene, tinyxml2::XMLDocument* doc); bool SaveFiles(tinyxml2::XMLElement* scene, tinyxml2::XMLDocument* doc); private: WorkSpace* workSpace_; };