From a37016969d880c58d72a158a1233992c3fbf2fb4 Mon Sep 17 00:00:00 2001 From: falkTX Date: Thu, 30 Jun 2022 19:42:01 +0100 Subject: [PATCH] Handle example/demo patches as templates Closes #270 Signed-off-by: falkTX --- src/CardinalCommon.cpp | 10 ++++++++-- src/CardinalCommon.hpp | 2 +- src/override/MenuBar.cpp | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/CardinalCommon.cpp b/src/CardinalCommon.cpp index b96557b..5358c77 100644 --- a/src/CardinalCommon.cpp +++ b/src/CardinalCommon.cpp @@ -151,11 +151,17 @@ void loadDialog() #endif } -void loadPathDialog(const std::string& path) +void loadPathDialog(const std::string& path, const bool asTemplate) { #ifndef HEADLESS - promptClear("The current patch is unsaved. Clear it and open the new patch?", [path]() { + promptClear("The current patch is unsaved. Clear it and open the new patch?", [path, asTemplate]() { APP->patch->loadAction(path); + + if (asTemplate) + { + APP->patch->path = ""; + APP->history->setSaved(); + } }); #endif } diff --git a/src/CardinalCommon.hpp b/src/CardinalCommon.hpp index 25ad855..b45b1e8 100644 --- a/src/CardinalCommon.hpp +++ b/src/CardinalCommon.hpp @@ -58,7 +58,7 @@ std::string getSpecialPath(SpecialPath type); namespace patchUtils { void loadDialog(); -void loadPathDialog(const std::string& path); +void loadPathDialog(const std::string& path, bool asTemplate = false); void loadSelectionDialog(); void loadTemplateDialog(); void revertDialog(); diff --git a/src/override/MenuBar.cpp b/src/override/MenuBar.cpp index 096c192..c19e857 100644 --- a/src/override/MenuBar.cpp +++ b/src/override/MenuBar.cpp @@ -176,7 +176,7 @@ struct FileButton : MenuButton { } menu->addChild(createMenuItem(label, "", [path]() { - patchUtils::loadPathDialog(path); + patchUtils::loadPathDialog(path, true); })); } }));