From 84f281a1098ebc3a2dd18617edf70e90ed3d5300 Mon Sep 17 00:00:00 2001 From: Ardakaniz Date: Sun, 5 Aug 2018 22:00:07 +0200 Subject: [PATCH] Add possibility to set current patch as default one Added button (icon TODO) in toolbar to save the current patch into template.vcv (instead of having to know that we must save it with this name) --- include/app.hpp | 1 + src/app/RackScene.cpp | 6 ++++++ src/app/RackWidget.cpp | 5 +++++ src/app/Toolbar.cpp | 11 +++++++++++ 4 files changed, 23 insertions(+) diff --git a/include/app.hpp b/include/app.hpp index 8b9d09f4..07b04682 100644 --- a/include/app.hpp +++ b/include/app.hpp @@ -170,6 +170,7 @@ struct RackWidget : OpaqueWidget { /** Disconnects all wires */ void disconnect(); void save(std::string filename); + void setAsDefaultPatch(); void load(std::string filename); json_t *toJson(); void fromJson(json_t *rootJ); diff --git a/src/app/RackScene.cpp b/src/app/RackScene.cpp index d74f09d1..8ba8e746 100644 --- a/src/app/RackScene.cpp +++ b/src/app/RackScene.cpp @@ -95,6 +95,12 @@ void RackScene::onHoverKey(EventHoverKey &e) { e.consumed = true; } } break; + case GLFW_KEY_D: { + if (windowIsModPressed() && windowIsShiftPressed()) { + gRackWidget->setAsDefaultPatch(); + e.consumed = true; + } + } break; case GLFW_KEY_V: { if (windowIsModPressed() && !windowIsShiftPressed()) { gRackWidget->pastePresetClipboard(); diff --git a/src/app/RackWidget.cpp b/src/app/RackWidget.cpp index e7d5c065..06654ad6 100644 --- a/src/app/RackWidget.cpp +++ b/src/app/RackWidget.cpp @@ -139,6 +139,11 @@ void RackWidget::save(std::string filename) { json_decref(rootJ); } +void RackWidget::setAsDefaultPatch() { + info("Saving current patch as default one in 'tempalte.vcv'"); + save(assetLocal("template.vcv")); +} + void RackWidget::load(std::string filename) { info("Loading patch %s", filename.c_str()); FILE *file = fopen(filename.c_str(), "r"); diff --git a/src/app/Toolbar.cpp b/src/app/Toolbar.cpp index decae309..3268bf06 100644 --- a/src/app/Toolbar.cpp +++ b/src/app/Toolbar.cpp @@ -69,6 +69,16 @@ struct SaveAsButton : TooltipIconButton { } }; +struct SetAsDefaultPatchButton : TooltipIconButton { + SetAsDefaultPatchButton() { + setSVG(SVG::load(assetGlobal("res/icons/noun_1343811_cc.svg"))); + tooltipText = "Set patch as default (" WINDOW_MOD_KEY_NAME "+Shift+D)"; + } + void onAction(EventAction &e) override { + gRackWidget->setAsDefaultPatch(); + } +}; + struct RevertButton : TooltipIconButton { RevertButton() { setSVG(SVG::load(assetGlobal("res/icons/noun_1084369_cc.svg"))); @@ -170,6 +180,7 @@ Toolbar::Toolbar() { layout->addChild(new OpenButton()); layout->addChild(new SaveButton()); layout->addChild(new SaveAsButton()); + layout->addChild(new SetAsDefaultPatchButton()); layout->addChild(new RevertButton()); layout->addChild(new DisconnectCablesButton());