From 515e7a5a1d09afab3207b895a368b731505a7247 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 8 Dec 2022 02:42:34 -0500 Subject: [PATCH] GUI: smp edit hide chips sctn if no smpl mem chips --- .github/workflows/build.yml | 2 +- src/gui/sampleEdit.cpp | 65 +++++++++++++++++++------------------ 2 files changed, 34 insertions(+), 33 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ffe48ee1..149d234c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,7 +11,7 @@ defaults: shell: bash env: - BUILD_TYPE: Debug + BUILD_TYPE: Release jobs: build: diff --git a/src/gui/sampleEdit.cpp b/src/gui/sampleEdit.cpp index e304118a..45458bcc 100644 --- a/src/gui/sampleEdit.cpp +++ b/src/gui/sampleEdit.cpp @@ -134,7 +134,32 @@ void FurnaceGUI::drawSampleEdit() { ImGui::Separator(); - if (ImGui::BeginTable("SampleProps",4,ImGuiTableFlags_SizingStretchSame|ImGuiTableFlags_BordersV|ImGuiTableFlags_BordersOuterH)) { + bool isChipVisible[32]; + bool isTypeVisible[4]; + bool isMemVisible[4][32]; + bool isMemWarning[4][32]; + memset(isChipVisible,0,32*sizeof(bool)); + memset(isTypeVisible,0,4*sizeof(bool)); + memset(isMemVisible,0,32*4*sizeof(bool)); + memset(isMemWarning,0,32*4*sizeof(bool)); + for (int i=0; isong.systemLen; i++) { + DivDispatch* dispatch=e->getDispatch(i); + if (dispatch==NULL) continue; + + for (int j=0; j<4; j++) { + if (dispatch->getSampleMemCapacity(j)==0) continue; + isChipVisible[i]=true; + isTypeVisible[j]=true; + isMemVisible[j][i]=true; + if (!dispatch->isSampleLoaded(j,curSample)) isMemWarning[j][i]=true; + } + } + int selColumns=1; + for (int i=0; i<32; i++) { + if (isChipVisible[i]) selColumns++; + } + + if (ImGui::BeginTable("SampleProps",(selColumns>1)?4:3,ImGuiTableFlags_SizingStretchSame|ImGuiTableFlags_BordersV|ImGuiTableFlags_BordersOuterH)) { ImGui::TableNextRow(ImGuiTableRowFlags_Headers); ImGui::TableNextColumn(); if (ImGui::Button(sampleInfo?(ICON_FA_CHEVRON_UP "##SECollapse"):(ICON_FA_CHEVRON_DOWN "##SECollapse"))) { @@ -164,8 +189,11 @@ void FurnaceGUI::drawSampleEdit() { if (ImGui::IsItemHovered() && sample->depth==DIV_SAMPLE_DEPTH_BRR) { ImGui::SetTooltip("changing the loop in a BRR sample may result in glitches!"); } - ImGui::TableNextColumn(); - ImGui::Text("Chips"); + + if (selColumns>1) { + ImGui::TableNextColumn(); + ImGui::Text("Chips"); + } if (sampleInfo) { ImGui::TableNextRow(); @@ -297,35 +325,8 @@ void FurnaceGUI::drawSampleEdit() { } ImGui::EndDisabled(); - ImGui::TableNextColumn(); - - bool isChipVisible[32]; - bool isTypeVisible[4]; - bool isMemVisible[4][32]; - bool isMemWarning[4][32]; - memset(isChipVisible,0,32*sizeof(bool)); - memset(isTypeVisible,0,4*sizeof(bool)); - memset(isMemVisible,0,32*4*sizeof(bool)); - memset(isMemWarning,0,32*4*sizeof(bool)); - for (int i=0; isong.systemLen; i++) { - DivDispatch* dispatch=e->getDispatch(i); - if (dispatch==NULL) continue; - - for (int j=0; j<4; j++) { - if (dispatch->getSampleMemCapacity(j)==0) continue; - isChipVisible[i]=true; - isTypeVisible[j]=true; - isMemVisible[j][i]=true; - if (!dispatch->isSampleLoaded(j,curSample)) isMemWarning[j][i]=true; - } - } - int selColumns=1; - for (int i=0; i<32; i++) { - if (isChipVisible[i]) selColumns++; - } - if (selColumns<=1) { - ImGui::Text("NO CHIPS LESS GOOO"); - } else { + if (selColumns>1) { + ImGui::TableNextColumn(); if (ImGui::BeginTable("SEChipSel",selColumns,ImGuiTableFlags_SizingFixedSame)) { ImGui::TableNextRow(); ImGui::TableNextColumn();