From aae9aad4f68de8c9bd1e369eb4edc454f91e1260 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Wed, 21 Feb 2024 18:05:39 -0500 Subject: [PATCH] GUI: prepare to improve pattern manager --- src/engine/song.cpp | 6 ++++++ src/engine/song.h | 2 ++ src/gui/patManager.cpp | 18 +++++++++++++++++- 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/engine/song.cpp b/src/engine/song.cpp index 70d625597..8330f8f89 100644 --- a/src/engine/song.cpp +++ b/src/engine/song.cpp @@ -57,6 +57,12 @@ void DivSubSong::rearrangePatterns() { } } +void DivSubSong::sortOrders() { +} + +void DivSubSong::makePatUnique() { +} + void DivSong::clearSongData() { for (DivSubSong* i: subsong) { i->clearData(); diff --git a/src/engine/song.h b/src/engine/song.h index 932e3924d..3db07cec5 100644 --- a/src/engine/song.h +++ b/src/engine/song.h @@ -175,6 +175,8 @@ struct DivSubSong { void clearData(); void optimizePatterns(); void rearrangePatterns(); + void sortOrders(); + void makePatUnique(); DivSubSong(): hilightA(4), diff --git a/src/gui/patManager.cpp b/src/gui/patManager.cpp index 8721ef200..c93239b3b 100644 --- a/src/gui/patManager.cpp +++ b/src/gui/patManager.cpp @@ -33,7 +33,9 @@ void FurnaceGUI::drawPatManager() { unsigned char isUsed[DIV_MAX_PATTERNS]; bool isNull[DIV_MAX_PATTERNS]; if (ImGui::Begin("Pattern Manager",&patManagerOpen,globalWinFlags)) { - ImGui::Text("Global Tasks"); + ImGui::Text("Global Tasks:"); + + ImGui::SameLine(); if (ImGui::Button("De-duplicate patterns")) { e->lockEngine([this]() { @@ -48,6 +50,20 @@ void FurnaceGUI::drawPatManager() { }); MARK_MODIFIED; } + ImGui::SameLine(); + if (ImGui::Button("Sort orders")) { + e->lockEngine([this]() { + e->curSubSong->sortOrders(); + }); + MARK_MODIFIED; + } + ImGui::SameLine(); + if (ImGui::Button("Make patterns unique")) { + e->lockEngine([this]() { + e->curSubSong->makePatUnique(); + }); + MARK_MODIFIED; + } if (ImGui::BeginTable("PatManTable",257,ImGuiTableFlags_ScrollX|ImGuiTableFlags_SizingFixedFit)) { ImGui::PushFont(patFont);