Files
oak-editor/app/widget/nodeparamview/nodeparamviewundo.h
T
itsmattkc bbef9badc7 implemented moving keyframes around in the NodeParamView
Can now change the time in the parameter panel.
2019-12-27 22:13:00 +11:00

99 lines
2.5 KiB
C++

#ifndef NODEPARAMVIEWUNDO_H
#define NODEPARAMVIEWUNDO_H
#include <QUndoCommand>
#include "node/input.h"
class NodeParamSetKeyframingCommand : public QUndoCommand {
public:
NodeParamSetKeyframingCommand(NodeInput* input, bool setting, QUndoCommand* parent = nullptr);
virtual void redo() override;
virtual void undo() override;
private:
NodeInput* input_;
bool setting_;
};
class NodeParamInsertKeyframeCommand : public QUndoCommand {
public:
NodeParamInsertKeyframeCommand(NodeInput* input, NodeKeyframePtr keyframe, QUndoCommand *parent = nullptr);
NodeParamInsertKeyframeCommand(NodeInput* input, NodeKeyframePtr keyframe, bool already_done, QUndoCommand *parent = nullptr);
virtual void redo() override;
virtual void undo() override;
private:
NodeInput* input_;
NodeKeyframePtr keyframe_;
bool done_;
};
class NodeParamRemoveKeyframeCommand : public QUndoCommand {
public:
NodeParamRemoveKeyframeCommand(NodeInput* input, NodeKeyframePtr keyframe, QUndoCommand *parent = nullptr);
virtual void redo() override;
virtual void undo() override;
private:
NodeInput* input_;
NodeKeyframePtr keyframe_;
};
class NodeParamSetKeyframeTimeCommand : public QUndoCommand {
public:
NodeParamSetKeyframeTimeCommand(NodeKeyframePtr key, const rational& time, QUndoCommand* parent = nullptr);
NodeParamSetKeyframeTimeCommand(NodeKeyframePtr key, const rational& new_time, const rational& old_time, QUndoCommand* parent = nullptr);
virtual void redo() override;
virtual void undo() override;
private:
NodeKeyframePtr key_;
rational old_time_;
rational new_time_;
};
class NodeParamSetKeyframeValueCommand : public QUndoCommand {
public:
NodeParamSetKeyframeValueCommand(NodeKeyframePtr key, const QVariant& value, QUndoCommand* parent = nullptr);
NodeParamSetKeyframeValueCommand(NodeKeyframePtr key, const QVariant& new_value, const QVariant& old_value, QUndoCommand* parent = nullptr);
virtual void redo() override;
virtual void undo() override;
private:
NodeKeyframePtr key_;
QVariant old_value_;
QVariant new_value_;
};
class NodeParamSetStandardValueCommand : public QUndoCommand {
public:
NodeParamSetStandardValueCommand(NodeInput* input, const QVariant& value, QUndoCommand* parent = nullptr);
NodeParamSetStandardValueCommand(NodeInput* input, const QVariant& new_value, const QVariant& old_value, QUndoCommand* parent = nullptr);
virtual void redo() override;
virtual void undo() override;
private:
NodeInput* input_;
QVariant old_value_;
QVariant new_value_;
};
#endif // NODEPARAMVIEWUNDO_H