diff options
Diffstat (limited to 'clients/bokftui.c')
| -rw-r--r-- | clients/bokftui.c | 91 |
1 files changed, 27 insertions, 64 deletions
diff --git a/clients/bokftui.c b/clients/bokftui.c index af6e284..e94faeb 100644 --- a/clients/bokftui.c +++ b/clients/bokftui.c @@ -1427,6 +1427,7 @@ static void vform_template(struct vform *vf) free(tser); vf->rt.row = 0; vf->rt.col = 0; + vf->rt.focus = -1; vf->rt.fresh = 1; vf->rt.pos = (size_t)-1; tui_rt_normalize(&vf->rt); @@ -1579,42 +1580,22 @@ static int64_t vouchers_new(struct app *a) ff[2].value = vf.desc; ff[2].cap = sizeof vf.desc; ff[2].kind = TUI_F_TEXT; - const char *hint = "F4 = mall ^F = bifoga fil Tab = byta fält F5 =" - " validera ^X = rensa rad ^Enter = bokför Esc =" - " avbryt"; - int stage = 0; + tui_rt_set_fields(&vf.rt, ff, 3); + const char *hint = "Enter = ändra fält Tab = byta fält F4 = mall" + " ^F = bifoga fil F5 = validera ^X = rensa rad" + " ^Enter = bokför Esc = avbryt"; for (;;) { - if (stage == 0) { - int r = tui_form_run_hook("Nytt verifikat", ff, 3, 1, vform_key, - &vf); - if (r == TUI_FORM_BACK) - return 0; - if (r == TUI_FORM_REFRESH) { - vform_post(&vf, 1); - continue; - } - if (r == TUI_FORM_SUBMIT) { - int64_t id = vform_post(&vf, 0); - if (id > 0) - return id; - continue; - } - stage = 1; - } else { - int rr = tui_rt_run("Nytt verifikat", &vf.rt, hint); - if (rr == -1) { - stage = 0; - continue; - } - if (rr == -2) { - vform_post(&vf, 1); - continue; - } - if (rr == -3) { - int64_t id = vform_post(&vf, 0); - if (id > 0) - return id; - } + int rr = tui_rt_run("Nytt verifikat", &vf.rt, hint); + if (rr == -1) + return 0; + if (rr == -2) { + vform_post(&vf, 1); + continue; + } + if (rr == -3) { + int64_t id = vform_post(&vf, 0); + if (id > 0) + return id; } } } @@ -3601,38 +3582,20 @@ static int template_form(struct app *a, const char *load_name) ff[2].value = tf.desc; ff[2].cap = sizeof tf.desc; ff[2].kind = TUI_F_TEXT; + tui_rt_set_fields(&tf.rt, ff, 3); const char *title = load_name ? "Redigera mall" : "Ny mall"; - const char *hint = "Tab = byta fält F5 = validera ^X = rensa rad" - " ^Enter = spara Esc = avbryt"; - int stage = 0; + const char *hint = "Enter = ändra fält Tab = byta fält F5 = validera" + " ^X = rensa rad ^Enter = spara Esc = avbryt"; for (;;) { - if (stage == 0) { - int r = tui_form_run(title, ff, 3, 1); - if (r == TUI_FORM_BACK) - return 0; - if (r == TUI_FORM_REFRESH) { - tpl_save(&tf, 1); - continue; - } - if (r == TUI_FORM_SUBMIT) { - if (tpl_save(&tf, 0)) - return 1; - continue; - } - stage = 1; - } else { - int rr = tui_rt_run(title, &tf.rt, hint); - if (rr == -1) { - stage = 0; - continue; - } - if (rr == -2) { - tpl_save(&tf, 1); - continue; - } - if (rr == -3 && tpl_save(&tf, 0)) - return 1; + int rr = tui_rt_run(title, &tf.rt, hint); + if (rr == -1) + return 0; + if (rr == -2) { + tpl_save(&tf, 1); + continue; } + if (rr == -3 && tpl_save(&tf, 0)) + return 1; } } |
