ref: deaedbb837bebe03a79adc9a31717dad25f1b51f
parent: 4aea092443646b6acad0d4c8aa77c6c999ef9639
author: cancel <cancel@cancel.fm>
date: Sat Jan 18 17:06:06 EST 2020
Cleanup
--- a/tui_main.c
+++ b/tui_main.c
@@ -2224,6 +2224,14 @@
}
#endif
+oso *get_nonempty_singular_form_text(Qform *qf) {
+ oso *s = NULL;
+ if (qform_get_text_line(qf, Single_form_item_id, &s) && osolen(s) > 0)
+ return s;
+ osofree(s);
+ return NULL;
+}
+
//
// Misc utils
//
@@ -3268,103 +3276,95 @@
case Qform_action_type_submitted: {
switch (qform_id(qf)) {
case Open_form_id: {
- oso *temp_name = NULL;
- if (qform_get_text_line(qf, Single_form_item_id, &temp_name) &&
- osolen(temp_name) > 0) {
- undo_history_push(&t.ged.undo_hist, &t.ged.field,
- t.ged.tick_num);
- Field_load_error fle =
- field_load_file(osoc(temp_name), &t.ged.field);
- if (fle == Field_load_error_ok) {
- qnav_stack_pop();
- osoputoso(&t.file_name, temp_name);
- mbuf_reusable_ensure_size(&t.ged.mbuf_r, t.ged.field.height,
- t.ged.field.width);
- ged_cursor_confine(&t.ged.ged_cursor, t.ged.field.height,
- t.ged.field.width);
- ged_update_internal_geometry(&t.ged);
- ged_make_cursor_visible(&t.ged);
- t.ged.needs_remarking = true;
- t.ged.is_draw_dirty = true;
- pop_qnav_if_main_menu();
- } else {
- undo_history_pop(&t.ged.undo_hist, &t.ged.field,
- &t.ged.tick_num);
- qmsg_printf_push("Error Loading File", "%s:\n%s",
- osoc(temp_name),
- field_load_error_string(fle));
- }
+ oso *temp_name = get_nonempty_singular_form_text(qf);
+ if (!temp_name)
+ break;
+ undo_history_push(&t.ged.undo_hist, &t.ged.field, t.ged.tick_num);
+ Field_load_error fle =
+ field_load_file(osoc(temp_name), &t.ged.field);
+ if (fle == Field_load_error_ok) {
+ qnav_stack_pop();
+ osoputoso(&t.file_name, temp_name);
+ mbuf_reusable_ensure_size(&t.ged.mbuf_r, t.ged.field.height,
+ t.ged.field.width);
+ ged_cursor_confine(&t.ged.ged_cursor, t.ged.field.height,
+ t.ged.field.width);
+ ged_update_internal_geometry(&t.ged);
+ ged_make_cursor_visible(&t.ged);
+ t.ged.needs_remarking = true;
+ t.ged.is_draw_dirty = true;
+ pop_qnav_if_main_menu();
+ } else {
+ undo_history_pop(&t.ged.undo_hist, &t.ged.field,
+ &t.ged.tick_num);
+ qmsg_printf_push("Error Loading File", "%s:\n%s",
+ osoc(temp_name), field_load_error_string(fle));
}
osofree(temp_name);
} break;
case Save_as_form_id: {
- oso *temp_name = NULL;
- if (qform_get_text_line(qf, Single_form_item_id, &temp_name) &&
- osolen(temp_name) > 0) {
- qnav_stack_pop();
- bool saved_ok = try_save_with_msg(&t.ged.field, temp_name);
- if (saved_ok) {
- osoputoso(&t.file_name, temp_name);
- }
- }
+ oso *temp_name = get_nonempty_singular_form_text(qf);
+ if (!temp_name)
+ break;
+ qnav_stack_pop();
+ bool saved_ok = try_save_with_msg(&t.ged.field, temp_name);
+ if (saved_ok)
+ osoputoso(&t.file_name, temp_name);
osofree(temp_name);
} break;
case Set_tempo_form_id: {
- oso *tmpstr = NULL;
- if (qform_get_text_line(qf, Single_form_item_id, &tmpstr) &&
- osolen(tmpstr) > 0) {
- int newbpm = atoi(osoc(tmpstr));
- if (newbpm > 0) {
- t.ged.bpm = (Usz)newbpm;
- qnav_stack_pop();
- }
+ oso *tmpstr = get_nonempty_singular_form_text(qf);
+ if (!tmpstr)
+ break;
+ int newbpm = atoi(osoc(tmpstr));
+ if (newbpm > 0) {
+ t.ged.bpm = (Usz)newbpm;
+ qnav_stack_pop();
}
osofree(tmpstr);
} break;
case Set_grid_dims_form_id: {
- oso *tmpstr = NULL;
- if (qform_get_text_line(qf, Single_form_item_id, &tmpstr) &&
- osolen(tmpstr) > 0) {
- int newheight, newwidth;
- if (sscanf(osoc(tmpstr), "%dx%d", &newwidth, &newheight) == 2 &&
- newheight > 0 && newwidth > 0 && newheight < ORCA_Y_MAX &&
- newwidth < ORCA_X_MAX) {
- if (t.ged.field.height != (Usz)newheight ||
- t.ged.field.width != (Usz)newwidth) {
- ged_resize_grid(&t.ged.field, &t.ged.mbuf_r, (Usz)newheight,
- (Usz)newwidth, t.ged.tick_num,
- &t.ged.scratch_field, &t.ged.undo_hist,
- &t.ged.ged_cursor);
- ged_update_internal_geometry(&t.ged);
- t.ged.needs_remarking = true;
- t.ged.is_draw_dirty = true;
- ged_make_cursor_visible(&t.ged);
- }
- qnav_stack_pop();
+ oso *tmpstr = get_nonempty_singular_form_text(qf);
+ if (!tmpstr)
+ break;
+ int newheight, newwidth;
+ if (sscanf(osoc(tmpstr), "%dx%d", &newwidth, &newheight) == 2 &&
+ newheight > 0 && newwidth > 0 && newheight < ORCA_Y_MAX &&
+ newwidth < ORCA_X_MAX) {
+ if (t.ged.field.height != (Usz)newheight ||
+ t.ged.field.width != (Usz)newwidth) {
+ ged_resize_grid(&t.ged.field, &t.ged.mbuf_r, (Usz)newheight,
+ (Usz)newwidth, t.ged.tick_num,
+ &t.ged.scratch_field, &t.ged.undo_hist,
+ &t.ged.ged_cursor);
+ ged_update_internal_geometry(&t.ged);
+ t.ged.needs_remarking = true;
+ t.ged.is_draw_dirty = true;
+ ged_make_cursor_visible(&t.ged);
}
+ qnav_stack_pop();
}
osofree(tmpstr);
} break;
case Set_soft_margins_form_id: {
- oso *tmpstr = NULL;
- if (qform_get_text_line(qf, Soft_margins_text_line_id, &tmpstr) &&
- osolen(tmpstr) > 0) {
- bool do_save = false;
- int newy, newx;
- if (read_nxn_or_n(osoc(tmpstr), &newx, &newy) && newy >= 0 &&
- newx >= 0 &&
- (newy != t.softmargin_y || newx != t.softmargin_x)) {
- t.prefs_touched |= Preftouch_softmargins;
- t.softmargin_y = newy;
- t.softmargin_x = newx;
- ungetch(KEY_RESIZE); // kinda lame but whatever
- do_save = true;
- }
- qnav_stack_pop();
- // Might push message, so gotta pop old guy first
- if (do_save)
- tui_save_prefs(&t);
+ oso *tmpstr = get_nonempty_singular_form_text(qf);
+ if (!tmpstr)
+ break;
+ bool do_save = false;
+ int newy, newx;
+ if (read_nxn_or_n(osoc(tmpstr), &newx, &newy) && newy >= 0 &&
+ newx >= 0 &&
+ (newy != t.softmargin_y || newx != t.softmargin_x)) {
+ t.prefs_touched |= Preftouch_softmargins;
+ t.softmargin_y = newy;
+ t.softmargin_x = newx;
+ ungetch(KEY_RESIZE); // kinda lame but whatever
+ do_save = true;
}
+ qnav_stack_pop();
+ // Might push message, so gotta pop old guy first
+ if (do_save)
+ tui_save_prefs(&t);
osofree(tmpstr);
} break;
}