feat(wip): implementing edit history and un-re-do
This commit is contained in:
parent
b875c2089b
commit
e2926f7c3f
6 changed files with 90 additions and 3 deletions
|
|
@ -7,6 +7,7 @@
|
|||
#include "scene/3d/node_3d.h"
|
||||
#include "scene/gui/file_dialog.h"
|
||||
#include "scene/resources/packed_scene.h"
|
||||
#include "terrain_editor/edit_history.h"
|
||||
#include "terrain_editor/macros.h"
|
||||
#include "terrain_editor/point_primitive_node.h"
|
||||
#include "terrain_editor/terrain_primitive.h"
|
||||
|
|
@ -110,15 +111,24 @@ void TerrainMeshEditor::_notification(int what) {
|
|||
void TerrainMeshEditor::unhandled_input(Ref<InputEvent> const &event) {
|
||||
Ref<InputEventKey> key{ event };
|
||||
if (key.is_valid() && key->get_key_label() == Key::S && key->get_modifiers_mask() == (KeyModifierMask::SHIFT | KeyModifierMask::CTRL)) {
|
||||
get_viewport()->set_input_as_handled();
|
||||
this->file_dialog->set_file_mode(FileDialog::FILE_MODE_SAVE_FILE);
|
||||
this->file_dialog->set_ok_button_text("Save");
|
||||
this->file_dialog->popup_file_dialog();
|
||||
} else if (key.is_valid() && key->get_key_label() == Key::S && key->get_modifiers_mask() == KeyModifierMask::CTRL) {
|
||||
get_viewport()->set_input_as_handled();
|
||||
save_data();
|
||||
} else if (key.is_valid() && key->get_key_label() == Key::O && key->get_modifiers_mask() == KeyModifierMask::CTRL) {
|
||||
get_viewport()->set_input_as_handled();
|
||||
this->file_dialog->set_file_mode(FileDialog::FILE_MODE_OPEN_FILE);
|
||||
this->file_dialog->set_ok_button_text("Open");
|
||||
this->file_dialog->popup_file_dialog();
|
||||
} else if (key.is_valid() && key->get_key_label() == Key::Z && key->get_modifiers_mask() == KeyModifierMask::CTRL) {
|
||||
get_viewport()->set_input_as_handled();
|
||||
EditHistory::get_singleton()->undo();
|
||||
} else if (key.is_valid() && key->get_key_label() == Key::Z && key->get_modifiers_mask() == (KeyModifierMask::CTRL | KeyModifierMask::SHIFT)) {
|
||||
get_viewport()->set_input_as_handled();
|
||||
EditHistory::get_singleton()->redo();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue