add setting to disable scrollChangesOrder
it's kinda unreliable at the moment
This commit is contained in:
parent
d6333af330
commit
0e2ecaf6be
|
@ -812,6 +812,7 @@ class FurnaceGUI {
|
|||
int insEditColorize;
|
||||
int metroVol;
|
||||
int pushNibble;
|
||||
int scrollChangesOrder;
|
||||
unsigned int maxUndoSteps;
|
||||
String mainFontPath;
|
||||
String patFontPath;
|
||||
|
@ -880,6 +881,7 @@ class FurnaceGUI {
|
|||
insEditColorize(0),
|
||||
metroVol(100),
|
||||
pushNibble(0),
|
||||
scrollChangesOrder(0),
|
||||
maxUndoSteps(100),
|
||||
mainFontPath(""),
|
||||
patFontPath(""),
|
||||
|
|
|
@ -655,11 +655,11 @@ void FurnaceGUI::drawPattern() {
|
|||
scrollX=ImGui::GetScrollX();
|
||||
|
||||
// overflow changes order
|
||||
if (!e->isPlaying()) {
|
||||
// TODO: this is very unreliable and sometimes it can warp you out of the song
|
||||
if (settings.scrollChangesOrder && !e->isPlaying()) {
|
||||
if (wheelY!=0) {
|
||||
if (wheelY>0) {
|
||||
if (ImGui::GetScrollY()<=0) {
|
||||
logV("scroll %d",wheelY);
|
||||
if (haveHitBounds) {
|
||||
if (e->getOrder()>0) {
|
||||
e->setOrder(e->getOrder()-1);
|
||||
|
@ -675,9 +675,8 @@ void FurnaceGUI::drawPattern() {
|
|||
}
|
||||
} else {
|
||||
if (ImGui::GetScrollY()>=ImGui::GetScrollMaxY()) {
|
||||
logV("scroll %d",wheelY);
|
||||
if (haveHitBounds) {
|
||||
if (e->getOrder()<e->song.ordersLen) {
|
||||
if (e->getOrder()<(e->song.ordersLen-1)) {
|
||||
e->setOrder(e->getOrder()+1);
|
||||
ImGui::SetScrollY(0);
|
||||
updateScroll(0);
|
||||
|
|
|
@ -256,6 +256,11 @@ void FurnaceGUI::drawSettings() {
|
|||
settings.effectDeletionAltersValue=effectDeletionAltersValueB;
|
||||
}
|
||||
|
||||
bool scrollChangesOrderB=settings.scrollChangesOrder;
|
||||
if (ImGui::Checkbox("Change order when scrolling outside of pattern bounds",&scrollChangesOrderB)) {
|
||||
settings.scrollChangesOrder=scrollChangesOrderB;
|
||||
}
|
||||
|
||||
bool stepOnInsertB=settings.stepOnInsert;
|
||||
if (ImGui::Checkbox("Move cursor by edit step on insert (push)",&stepOnInsertB)) {
|
||||
settings.stepOnInsert=stepOnInsertB;
|
||||
|
@ -1574,6 +1579,7 @@ void FurnaceGUI::syncSettings() {
|
|||
settings.insEditColorize=e->getConfInt("insEditColorize",0);
|
||||
settings.metroVol=e->getConfInt("metroVol",100);
|
||||
settings.pushNibble=e->getConfInt("pushNibble",0);
|
||||
settings.scrollChangesOrder=e->getConfInt("scrollChangesOrder",0);
|
||||
|
||||
clampSetting(settings.mainFontSize,2,96);
|
||||
clampSetting(settings.patFontSize,2,96);
|
||||
|
@ -1631,6 +1637,7 @@ void FurnaceGUI::syncSettings() {
|
|||
clampSetting(settings.insEditColorize,0,1);
|
||||
clampSetting(settings.metroVol,0,200);
|
||||
clampSetting(settings.pushNibble,0,1);
|
||||
clampSetting(settings.scrollChangesOrder,0,1);
|
||||
|
||||
// keybinds
|
||||
for (int i=0; i<GUI_ACTION_MAX; i++) {
|
||||
|
@ -1715,6 +1722,7 @@ void FurnaceGUI::commitSettings() {
|
|||
e->setConf("insEditColorize",settings.insEditColorize);
|
||||
e->setConf("metroVol",settings.metroVol);
|
||||
e->setConf("pushNibble",settings.pushNibble);
|
||||
e->setConf("scrollChangesOrder",settings.scrollChangesOrder);
|
||||
|
||||
// colors
|
||||
for (int i=0; i<GUI_COLOR_MAX; i++) {
|
||||
|
|
Loading…
Reference in New Issue