#ifndef XMLREADLOOP_H #define XMLREADLOOP_H #include #include class Node; class NodeParam; class NodeInput; class NodeOutput; #include "project/item/footage/stream.h" #define XMLAttributeLoop(reader, item) \ QXmlStreamAttributes __attributes = reader->attributes(); \ foreach (const QXmlStreamAttribute& item, __attributes) Node *XMLLoadNode(QXmlStreamReader* reader); struct XMLNodeData { struct SerializedConnection { NodeInput* input; quintptr output; }; struct FootageConnection { NodeInput* input; quintptr footage; }; QHash output_ptrs; QList desired_connections; QHash footage_ptrs; QList footage_connections; }; void XMLConnectNodes(const QHash &output_ptrs, const QList &desired_connections, QUndoCommand* command = nullptr); bool XMLReadNextStartElement(QXmlStreamReader* reader); #endif // XMLREADLOOP_H