GUI: find and replace, part 11
lax mode done now replace time...
This commit is contained in:
parent
19251e84f6
commit
f0e9bd5f57
|
@ -126,8 +126,37 @@ void FurnaceGUI::doFind() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 1: // lax
|
case 1: { // lax
|
||||||
|
// locate first effect
|
||||||
|
int posOfFirst=-1;
|
||||||
|
for (int m=0; m<e->curPat[k].effectCols; m++) {
|
||||||
|
if (!checkCondition(l.effectMode[0],l.effect[0],l.effectMax[0],p->data[j][4+m*2])) continue;
|
||||||
|
if (!checkCondition(l.effectValMode[0],l.effectVal[0],l.effectValMax[0],p->data[j][5+m*2])) continue;
|
||||||
|
posOfFirst=m;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (posOfFirst<0) {
|
||||||
|
notMatched=true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
// make sure we aren't too far to the right
|
||||||
|
if ((posOfFirst+l.effectCount)>e->curPat[k].effectCols) {
|
||||||
|
notMatched=true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
// search from first effect location
|
||||||
|
for (int m=0; m<l.effectCount; m++) {
|
||||||
|
if (!checkCondition(l.effectMode[m],l.effect[m],l.effectMax[m],p->data[j][4+(m+posOfFirst)*2])) {
|
||||||
|
notMatched=true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (!checkCondition(l.effectValMode[m],l.effectVal[m],l.effectValMax[m],p->data[j][5+(m+posOfFirst)*2])) {
|
||||||
|
notMatched=true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case 2: // strict
|
case 2: // strict
|
||||||
int effectMax=l.effectCount;
|
int effectMax=l.effectCount;
|
||||||
if (effectMax>e->curPat[k].effectCols) {
|
if (effectMax>e->curPat[k].effectCols) {
|
||||||
|
@ -160,6 +189,9 @@ void FurnaceGUI::doFind() {
|
||||||
queryViewingResults=true;
|
queryViewingResults=true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FurnaceGUI::doReplace() {
|
||||||
|
}
|
||||||
|
|
||||||
#define FIRST_VISIBLE(x) (x==GUI_QUERY_MATCH || x==GUI_QUERY_MATCH_NOT || x==GUI_QUERY_RANGE || x==GUI_QUERY_RANGE_NOT)
|
#define FIRST_VISIBLE(x) (x==GUI_QUERY_MATCH || x==GUI_QUERY_MATCH_NOT || x==GUI_QUERY_RANGE || x==GUI_QUERY_RANGE_NOT)
|
||||||
#define SECOND_VISIBLE(x) (x==GUI_QUERY_RANGE || x==GUI_QUERY_RANGE_NOT)
|
#define SECOND_VISIBLE(x) (x==GUI_QUERY_RANGE || x==GUI_QUERY_RANGE_NOT)
|
||||||
|
|
||||||
|
@ -754,7 +786,7 @@ void FurnaceGUI::drawFindReplace() {
|
||||||
queryReplaceEffectPos=3;
|
queryReplaceEffectPos=3;
|
||||||
}
|
}
|
||||||
if (ImGui::Button("Replace##QueryReplace")) {
|
if (ImGui::Button("Replace##QueryReplace")) {
|
||||||
// TODO
|
doReplace();
|
||||||
}
|
}
|
||||||
ImGui::EndTabItem();
|
ImGui::EndTabItem();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1492,6 +1492,7 @@ class FurnaceGUI {
|
||||||
void doUndo();
|
void doUndo();
|
||||||
void doRedo();
|
void doRedo();
|
||||||
void doFind();
|
void doFind();
|
||||||
|
void doReplace();
|
||||||
void editOptions(bool topMenu);
|
void editOptions(bool topMenu);
|
||||||
void noteInput(int num, int key, int vol=-1);
|
void noteInput(int num, int key, int vol=-1);
|
||||||
void valueInput(int num, bool direct=false, int target=-1);
|
void valueInput(int num, bool direct=false, int target=-1);
|
||||||
|
|
Loading…
Reference in a new issue