GUI: add "effect deletion alters value" setting

This commit is contained in:
tildearrow 2022-04-07 02:02:52 -05:00
parent dd6229a6b9
commit dab164f09e
3 changed files with 14 additions and 0 deletions

View File

@ -211,6 +211,10 @@ void FurnaceGUI::doDelete() {
if (selStart.y==selEnd.y) pat->data[j][2]=-1; if (selStart.y==selEnd.y) pat->data[j][2]=-1;
} }
pat->data[j][iFine+1]=(iFine<1)?0:-1; pat->data[j][iFine+1]=(iFine<1)?0:-1;
if (selStart.y==selEnd.y && iFine>2 && iFine&1 && settings.effectDeletionAltersValue) {
pat->data[j][iFine+2]=-1;
}
} }
} }
iFine=0; iFine=0;

View File

@ -754,6 +754,7 @@ class FurnaceGUI {
int titleBarInfo; int titleBarInfo;
int titleBarSys; int titleBarSys;
int frameBorders; int frameBorders;
int effectDeletionAltersValue;
unsigned int maxUndoSteps; unsigned int maxUndoSteps;
String mainFontPath; String mainFontPath;
String patFontPath; String patFontPath;
@ -813,6 +814,7 @@ class FurnaceGUI {
titleBarInfo(1), titleBarInfo(1),
titleBarSys(1), titleBarSys(1),
frameBorders(0), frameBorders(0),
effectDeletionAltersValue(1),
maxUndoSteps(100), maxUndoSteps(100),
mainFontPath(""), mainFontPath(""),
patFontPath(""), patFontPath(""),

View File

@ -240,6 +240,11 @@ void FurnaceGUI::drawSettings() {
settings.stepOnDelete=stepOnDeleteB; settings.stepOnDelete=stepOnDeleteB;
} }
bool effectDeletionAltersValueB=settings.effectDeletionAltersValue;
if (ImGui::Checkbox("Delete effect value when deleting effect",&effectDeletionAltersValueB)) {
settings.effectDeletionAltersValue=effectDeletionAltersValueB;
}
bool stepOnInsertB=settings.stepOnInsert; bool stepOnInsertB=settings.stepOnInsert;
if (ImGui::Checkbox("Move cursor by edit step on insert (push)",&stepOnInsertB)) { if (ImGui::Checkbox("Move cursor by edit step on insert (push)",&stepOnInsertB)) {
settings.stepOnInsert=stepOnInsertB; settings.stepOnInsert=stepOnInsertB;
@ -1445,6 +1450,7 @@ void FurnaceGUI::syncSettings() {
settings.titleBarInfo=e->getConfInt("titleBarInfo",1); settings.titleBarInfo=e->getConfInt("titleBarInfo",1);
settings.titleBarSys=e->getConfInt("titleBarSys",1); settings.titleBarSys=e->getConfInt("titleBarSys",1);
settings.frameBorders=e->getConfInt("frameBorders",0); settings.frameBorders=e->getConfInt("frameBorders",0);
settings.effectDeletionAltersValue=e->getConfInt("effectDeletionAltersValue",1);
clampSetting(settings.mainFontSize,2,96); clampSetting(settings.mainFontSize,2,96);
clampSetting(settings.patFontSize,2,96); clampSetting(settings.patFontSize,2,96);
@ -1496,6 +1502,7 @@ void FurnaceGUI::syncSettings() {
clampSetting(settings.titleBarInfo,0,3); clampSetting(settings.titleBarInfo,0,3);
clampSetting(settings.titleBarSys,0,1); clampSetting(settings.titleBarSys,0,1);
clampSetting(settings.frameBorders,0,1); clampSetting(settings.frameBorders,0,1);
clampSetting(settings.effectDeletionAltersValue,0,1);
// keybinds // keybinds
for (int i=0; i<GUI_ACTION_MAX; i++) { for (int i=0; i<GUI_ACTION_MAX; i++) {
@ -1570,6 +1577,7 @@ void FurnaceGUI::commitSettings() {
e->setConf("titleBarInfo",settings.titleBarInfo); e->setConf("titleBarInfo",settings.titleBarInfo);
e->setConf("titleBarSys",settings.titleBarSys); e->setConf("titleBarSys",settings.titleBarSys);
e->setConf("frameBorders",settings.frameBorders); e->setConf("frameBorders",settings.frameBorders);
e->setConf("effectDeletionAltersValue",settings.effectDeletionAltersValue);
// colors // colors
for (int i=0; i<GUI_COLOR_MAX; i++) { for (int i=0; i<GUI_COLOR_MAX; i++) {