From b644de1c1f2f2cc426c859c16155cb9062f72e9d Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 14 Jan 2023 14:07:50 -0500 Subject: [PATCH] GUI: add setting for double click time --- src/gui/gui.cpp | 2 +- src/gui/gui.h | 2 ++ src/gui/pattern.cpp | 2 +- src/gui/settings.cpp | 11 +++++++++++ 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index e8fb31286..c22a1c2b6 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -5148,7 +5148,7 @@ bool FurnaceGUI::loop() { renderTimeDelta=renderTimeEnd-renderTimeBegin; eventTimeDelta=eventTimeEnd-eventTimeBegin; - soloTimeout-=ImGui::GetIO().DeltaTime*60.0f; + soloTimeout-=ImGui::GetIO().DeltaTime; if (soloTimeout<0) { soloTimeout=0; } else { diff --git a/src/gui/gui.h b/src/gui/gui.h index 750d46f59..48488eac4 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -1294,6 +1294,7 @@ class FurnaceGUI { int exportLoops; double exportFadeOut; int macroLayout; + float doubleClickTime; unsigned int maxUndoSteps; String mainFontPath; String patFontPath; @@ -1428,6 +1429,7 @@ class FurnaceGUI { exportLoops(0), exportFadeOut(0.0), macroLayout(0), + doubleClickTime(0.3f), maxUndoSteps(100), mainFontPath(""), patFontPath(""), diff --git a/src/gui/pattern.cpp b/src/gui/pattern.cpp index 3502b8a52..fbaf4e655 100644 --- a/src/gui/pattern.cpp +++ b/src/gui/pattern.cpp @@ -755,7 +755,7 @@ void FurnaceGUI::drawPattern() { soloTimeout=0; } else { e->toggleMute(i); - soloTimeout=20; + soloTimeout=settings.doubleClickTime; soloChan=i; } } diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index b998d3215..bcb90d35f 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -492,6 +492,13 @@ void FurnaceGUI::drawSettings() { ImGui::Separator(); + if (CWSliderFloat("Double-click time (seconds)",&settings.doubleClickTime,0.02,1.0,"%.2f")) { + if (settings.doubleClickTime<0.02) settings.doubleClickTime=0.02; + if (settings.doubleClickTime>1.0) settings.doubleClickTime=1.0; + + applyUISettings(false); + } + ImGui::Text("Toggle channel solo on:"); if (ImGui::RadioButton("Right-click or double-click##soloA",settings.soloAction==0)) { settings.soloAction=0; @@ -2557,6 +2564,7 @@ void FurnaceGUI::syncSettings() { settings.exportLoops=e->getConfInt("exportLoops",0); settings.exportFadeOut=e->getConfDouble("exportFadeOut",0.0); settings.macroLayout=e->getConfInt("macroLayout",0); + settings.doubleClickTime=e->getConfFloat("doubleClickTime",0.3f); clampSetting(settings.mainFontSize,2,96); clampSetting(settings.patFontSize,2,96); @@ -2667,6 +2675,7 @@ void FurnaceGUI::syncSettings() { clampSetting(settings.ordersCursor,0,1); clampSetting(settings.persistFadeOut,0,1); clampSetting(settings.macroLayout,0,4); + clampSetting(settings.doubleClickTime,0.02,1.0); if (settings.exportLoops<0.0) settings.exportLoops=0.0; if (settings.exportFadeOut<0.0) settings.exportFadeOut=0.0; @@ -2870,6 +2879,7 @@ void FurnaceGUI::commitSettings() { e->setConf("exportLoops",settings.exportLoops); e->setConf("exportFadeOut",settings.exportFadeOut); e->setConf("macroLayout",settings.macroLayout); + e->setConf("doubleClickTime",settings.doubleClickTime); // colors for (int i=0; i