Ejemplo n.º 1
0
void UndoRedo::clear_history() {

	ERR_FAIL_COND(action_level > 0);
	_discard_redo();

	while (actions.size())
		_pop_history_tail();

	//version++;
}
Ejemplo n.º 2
0
void UndoRedo::clear_history(bool p_increase_version) {

	ERR_FAIL_COND(action_level > 0);
	_discard_redo();

	while (actions.size())
		_pop_history_tail();

	if (p_increase_version)
		version++;
}
Ejemplo n.º 3
0
void UndoRedo::commit_action() {

	ERR_FAIL_COND(action_level <= 0);
	action_level--;
	if (action_level > 0)
		return; //still nested

	redo(); // perform action

	if (max_steps > 0 && actions.size() > max_steps) {
		//clear early steps

		while (actions.size() > max_steps)
			_pop_history_tail();
	}

	if (callback && actions.size() > 0) {
		callback(callback_ud, actions[actions.size() - 1].name);
	}
}