20 auto is_valid() const ->
bool override;
47 std::vector<std::function<std::shared_ptr<editing_action_t>()>>
step_factories;
51 bool first_run_done{
false};
54 void add_step(std::function<std::shared_ptr<editing_action_t>()> factory);
58 auto is_valid() const ->
bool override;
void add_sub_action(std::shared_ptr< editing_action_t > action)
void undo_action() override
void draw_in_inspector(rtti::context &ctx) override
void do_action() override
void merge_with(const editing_action_t &previous) override
auto is_valid() const -> bool override
auto is_mergeable(const editing_action_t &previous) const -> bool override
std::vector< std::shared_ptr< editing_action_t > > sub_actions
Single-undo container for a chain of DEPENDENT actions.
std::vector< std::shared_ptr< editing_action_t > > sub_actions
Captured sub-actions after first execution, replayed on redo and reversed on undo.
std::vector< std::function< std::shared_ptr< editing_action_t >()> > step_factories
Factories evaluated lazily on the first execution. Cleared once consumed.