summaryrefslogtreecommitdiff
path: root/editor
diff options
context:
space:
mode:
authorsimpuid <utkarsh.email@yahoo.com>2020-02-29 08:55:28 +0530
committersimpuid <utkarsh.email@yahoo.com>2020-02-29 16:52:12 +0530
commitf817ba83795ed4a8a44e569cce58bc37522860c0 (patch)
treea5306c10aab7409fb2d9b1c6379c524590243dd7 /editor
parent5bbb057cc9107d0585ab9e6b236919fa4b7023c4 (diff)
Implement undo-redo feature for Parameter Paste in the Inspector
EditorData::undo_redo.add_do_property and EditorData::undo_redo.add_undo_property is used in EditorData::paste_object_params to implement this feature. It's action name is set to "Paste Params" Changes made * Removed the call for clearing the history on paste params case. * Instead of directly setting the properties value, EditorData::undo_redo is used.
Diffstat (limited to 'editor')
-rw-r--r--editor/editor_data.cpp8
-rw-r--r--editor/inspector_dock.cpp1
2 files changed, 6 insertions, 3 deletions
diff --git a/editor/editor_data.cpp b/editor/editor_data.cpp
index 26d132665c..192e7d286f 100644
--- a/editor/editor_data.cpp
+++ b/editor/editor_data.cpp
@@ -435,10 +435,14 @@ void EditorData::restore_editor_global_states() {
void EditorData::paste_object_params(Object *p_object) {
+ ERR_FAIL_NULL(p_object);
+ undo_redo.create_action(TTR("Paste Params"));
for (List<PropertyData>::Element *E = clipboard.front(); E; E = E->next()) {
-
- p_object->set(E->get().name, E->get().value);
+ String name = E->get().name;
+ undo_redo.add_do_property(p_object, name, E->get().value);
+ undo_redo.add_undo_property(p_object, name, p_object->get(name));
}
+ undo_redo.commit_action();
}
bool EditorData::call_build() {
diff --git a/editor/inspector_dock.cpp b/editor/inspector_dock.cpp
index 6b8cb49412..2729d9ecb5 100644
--- a/editor/inspector_dock.cpp
+++ b/editor/inspector_dock.cpp
@@ -76,7 +76,6 @@ void InspectorDock::_menu_option(int p_option) {
editor_data->apply_changes_in_editors();
if (current)
editor_data->paste_object_params(current);
- editor_data->get_undo_redo().clear_history();
} break;
case OBJECT_UNIQUE_RESOURCES: {