implemented saving/loading for groups

This commit is contained in:
itsmattkc
2021-12-28 21:52:28 -08:00
parent 74d9c43ff5
commit a4934f1d47
14 changed files with 170 additions and 94 deletions
+5 -47
View File
@@ -52,24 +52,6 @@ public:
void SetOutputPassthrough(Node *node);
const QString &GetCustomName() const
{
return custom_name_;
}
void SetCustomName(const QString &name)
{
custom_name_ = name;
// NOTE: Not technically the right signal, but should achieve the right goal
emit LabelChanged(custom_name_);
}
void ClearCustomName()
{
custom_name_.clear();
}
static QString GetGroupInputIDFromInput(const NodeInput &input);
const QHash<QString, NodeInput> &GetInputPassthroughs() const
@@ -88,40 +70,16 @@ signals:
void OutputPassthroughChanged(NodeGroup *group, Node *output);
protected:
virtual bool LoadCustom(QXmlStreamReader* reader, XMLNodeData& xml_node_data, uint version, const QAtomicInt* cancelled) override;
virtual void SaveCustom(QXmlStreamWriter* writer) const override;
private:
QHash<QString, NodeInput> input_passthroughs_;
Node *output_passthrough_;
QString custom_name_;
};
class NodeGroupSetCustomNameCommand : public UndoCommand
{
public:
NodeGroupSetCustomNameCommand(NodeGroup *group, const QString &name) :
group_(group),
new_name_(name)
{}
virtual Project * GetRelevantProject() const override
{
return group_->project();
}
protected:
virtual void redo() override;
virtual void undo() override;
private:
NodeGroup *group_;
QString old_name_;
QString new_name_;
};
class NodeGroupAddInputPassthrough : public UndoCommand