diff options
| author | Anders Betts <anders.betts@gmail.com> | 2026-09-20 00:05:51 +0200 |
|---|---|---|
| committer | Anders Betts <anders.betts@gmail.com> | 2026-09-20 00:05:51 +0200 |
| commit | a61cfeefb0599e74fc9189b189b16dd0b6d36f0f (patch) | |
| tree | 83e0934e190744605e91e69cd032e91c85eecf57 /clients/bokftui.c | |
| parent | 1f2d7a8190876e3d1c541251e079a11a2cc637f2 (diff) | |
| download | bokf-a61cfeefb0599e74fc9189b189b16dd0b6d36f0f.tar.gz bokf-a61cfeefb0599e74fc9189b189b16dd0b6d36f0f.zip | |
tui: remember the focused row in forms and the bokslut hubv0.1.44
Diffstat (limited to 'clients/bokftui.c')
| -rw-r--r-- | clients/bokftui.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/clients/bokftui.c b/clients/bokftui.c index 3258f22..f7500bf 100644 --- a/clients/bokftui.c +++ b/clients/bokftui.c @@ -320,6 +320,7 @@ static void update_status(struct app *a) /* Create a new fiscal year. Returns the new id (>0) or 0. */ static int64_t fy_new_form(struct app *a) { + static int sel = 0; char label[32] = "", start[16] = "", end[16] = ""; char *resp = client_rpc(&a->conn, "fiscal_year.list", a->session, a->org, "{}"); @@ -372,7 +373,7 @@ static int64_t fy_new_form(struct app *a) ff[2].value = end; ff[2].cap = sizeof end; ff[2].kind = TUI_F_DATE; - int r = tui_form_run("Nytt räkenskapsår", ff, 3, 1); + int r = tui_form_run("Nytt räkenskapsår", ff, 3, 1, &sel); if (r == TUI_FORM_BACK) return 0; if (r != TUI_FORM_REFRESH && r != TUI_FORM_SUBMIT) @@ -4130,6 +4131,7 @@ static void board_screen(struct app *a) static void company_screen(struct app *a) { + static int sel = 0; const int nf = (int)(sizeof COMPANY_FIELDS / sizeof COMPANY_FIELDS[0]); int owner = a->role[0] && strcmp(a->role, "owner") == 0; for (;;) { @@ -4164,7 +4166,7 @@ static void company_screen(struct app *a) free(resp); ff[nf].label = "Styrelseledamöter"; ff[nf].kind = TUI_F_ACTION; - int r = tui_form_run("Företagsuppgifter", ff, nf + 1, owner); + int r = tui_form_run("Företagsuppgifter", ff, nf + 1, owner, &sel); if (r >= 0 && r < nf) { if (!company_field_valid(&COMPANY_FIELDS[r], vals[r])) { tui_message("Ogiltigt värde", "%s", COMPANY_FIELDS[r].label); @@ -4204,6 +4206,7 @@ static const char *const SETTING_LABELS[] = { "Standardserie", static void settings_screen(struct app *a) { + static int sel = 0; const int nset = (int)(sizeof SETTING_KEYS / sizeof SETTING_KEYS[0]); for (;;) { if (g_quit) @@ -4231,7 +4234,7 @@ static void settings_screen(struct app *a) ff[i].kind = TUI_F_TEXT; } free(resp); - int r = tui_form_run("Inställningar", ff, nset, 1); + int r = tui_form_run("Inställningar", ff, nset, 1, &sel); if (r >= 0) { yyjson_mut_doc *d = yyjson_mut_doc_new(NULL); yyjson_mut_val *o = yyjson_mut_obj(d); @@ -4472,6 +4475,7 @@ static void bokslut_plan(struct app *a, const char *fond, const char *rate, view. New years inherit the stable fields. */ static void bokslut_screen(struct app *a) { + static int sel = 0; static const char *const labels[6] = { "Väsentliga händelser", "Årsstämma (YYYY-MM-DD)", @@ -4574,7 +4578,7 @@ static void bokslut_screen(struct app *a) " bokslutsplan ^Enter = bokför planen (frågar" " först) Esc/q = tillbaka ^C = avsluta"); int r = tui_form_run_actions("Bokslut", ff, nf + 2, can_edit, acts, 5, - NULL); + NULL, &sel); if (r >= 0 && r < nf) { yyjson_mut_doc *d = yyjson_mut_doc_new(NULL); yyjson_mut_val *o = yyjson_mut_obj(d); @@ -5606,6 +5610,7 @@ static int try_login(struct app *a, const char *user, const char *pass, static int login_screen(struct app *a) { + static int sel = 0; char socket_path[256], user[64], pass[128]; snprintf(socket_path, sizeof socket_path, "%s", a->socket); const char *env_pass = getenv("BOKFD_PASSWORD"); @@ -5631,7 +5636,7 @@ static int login_screen(struct app *a) ff[3].kind = TUI_F_ACTION; for (;;) { - int r = tui_form_run("bokf — inloggning", ff, 4, 1); + int r = tui_form_run("bokf — inloggning", ff, 4, 1, &sel); if (r == TUI_FORM_BACK) { if (g_quit) { endwin(); |
