From 00d0793b6772a41434fb100914288e522d6a41f7 Mon Sep 17 00:00:00 2001 From: SweetId <2630750+SweetId@users.noreply.github.com> Date: Tue, 17 Oct 2023 18:19:53 -0400 Subject: [PATCH] add Quit action --- include/NazaraEditor/Core.hpp | 1 + .../Application/Actions/EditorAction_Quit.hpp | 15 ++++++++++++ .../Application/Actions/EditorAction_Quit.cpp | 24 +++++++++++++++++++ src/NazaraEditor/Editor/main.cpp | 6 +++++ 4 files changed, 46 insertions(+) create mode 100644 include/NazaraEditor/Core/Application/Actions/EditorAction_Quit.hpp create mode 100644 src/NazaraEditor/Core/Application/Actions/EditorAction_Quit.cpp diff --git a/include/NazaraEditor/Core.hpp b/include/NazaraEditor/Core.hpp index 0f9d4c0..d8f7a1c 100644 --- a/include/NazaraEditor/Core.hpp +++ b/include/NazaraEditor/Core.hpp @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include diff --git a/include/NazaraEditor/Core/Application/Actions/EditorAction_Quit.hpp b/include/NazaraEditor/Core/Application/Actions/EditorAction_Quit.hpp new file mode 100644 index 0000000..7ae3a96 --- /dev/null +++ b/include/NazaraEditor/Core/Application/Actions/EditorAction_Quit.hpp @@ -0,0 +1,15 @@ +#pragma once + +#include + +namespace Nz +{ + class NAZARAEDITOR_CORE_API EditorAction_Quit final + : public EditorAction + { + EDITORACTION_BODY(EditorAction_Quit, false); + + public: + void Execute() override; + }; +} \ No newline at end of file diff --git a/src/NazaraEditor/Core/Application/Actions/EditorAction_Quit.cpp b/src/NazaraEditor/Core/Application/Actions/EditorAction_Quit.cpp new file mode 100644 index 0000000..a457423 --- /dev/null +++ b/src/NazaraEditor/Core/Application/Actions/EditorAction_Quit.cpp @@ -0,0 +1,24 @@ +#include +#include +#include + +namespace Nz +{ + void EditorAction_Quit::Execute() + { + Nz::EditorPopupManager::Instance()->CreatePopup({ + .title = "Warning", + .description = "Are you sure you want to exit? All unsaved work will be discarded", + .choices = { + { + .name = "Yes", + .callback = []() { Nz::EditorBaseApplication::Instance()->Quit(); } + }, + { + .name = "No" + } + } + }); + + } +} \ No newline at end of file diff --git a/src/NazaraEditor/Editor/main.cpp b/src/NazaraEditor/Editor/main.cpp index 5e24ea1..6dffae4 100644 --- a/src/NazaraEditor/Editor/main.cpp +++ b/src/NazaraEditor/Editor/main.cpp @@ -64,6 +64,12 @@ int WinMain(int argc, char* argv[]) .path = "Copy to Clipboard", .category = "Output", }); + app.RegisterAction({ + .description = "Exits the editor", + .path = "File|Exit", + .category = "General", + .shortcut = Nz::Shortcut::Create(Nz::Keyboard::VKey::F4, false, false, true), + }); entt::meta() .type(entt::type_hash::value())