Browse Source

Clean up file save name changing logic

Now only changes file name on "Save as" if the save was successful.
master
cancel 5 years ago
parent
commit
d95aa91171
  1. 24
      tui_main.c

24
tui_main.c

@ -2131,18 +2131,17 @@ void push_open_form(char const* initial) {
qform_push_to_nav(qf); qform_push_to_nav(qf);
} }
void try_save_with_msg(Field* field, Heapstr const* hstr) { bool try_save_with_msg(Field* field, Heapstr const* hstr) {
if (!heapstr_len(hstr)) if (!heapstr_len(hstr))
return; return false;
bool ok = hacky_try_save(field, hstr->str); bool ok = hacky_try_save(field, hstr->str);
Qmsg* msg = qmsg_push(3, 50);
WINDOW* msgw = qmsg_window(msg);
wmove(msgw, 0, 1);
if (ok) { if (ok) {
wprintw(msgw, "Saved to: %s", hstr->str); qmsg_printf_push(NULL, "Saved to:\n%s", hstr->str);
} else { } else {
wprintw(msgw, "FAILED to save to %s", hstr->str); qmsg_printf_push("Error Saving File", "Unable to save file to:\n%s",
hstr->str);
} }
return ok;
} }
void push_save_as_form(char const* initial) { void push_save_as_form(char const* initial) {
@ -3000,8 +2999,7 @@ int main(int argc, char** argv) {
} else { } else {
undo_history_pop(&ged_state.undo_hist, &ged_state.field, undo_history_pop(&ged_state.undo_hist, &ged_state.field,
&ged_state.tick_num); &ged_state.tick_num);
qmsg_printf_push("Error Loading File", qmsg_printf_push("Error Loading File", "%s:\n%s",
"%s:\n%s",
temp_name.str, field_load_error_string(fle)); temp_name.str, field_load_error_string(fle));
} }
} }
@ -3013,9 +3011,11 @@ int main(int argc, char** argv) {
if (qform_get_text_line(qf, Save_as_name_id, &temp_name) && if (qform_get_text_line(qf, Save_as_name_id, &temp_name) &&
heapstr_len(&temp_name) > 0) { heapstr_len(&temp_name) > 0) {
qnav_stack_pop(); qnav_stack_pop();
heapstr_set_cstr(&file_name, temp_name.str); bool saved_ok = try_save_with_msg(&ged_state.field, &temp_name);
ged_state.filename = file_name.str; if (saved_ok) {
try_save_with_msg(&ged_state.field, &file_name); heapstr_set_cstr(&file_name, temp_name.str);
ged_state.filename = file_name.str;
}
} }
heapstr_deinit(&temp_name); heapstr_deinit(&temp_name);
} break; } break;

Loading…
Cancel
Save