diff options
Diffstat (limited to 'src/ui')
| -rw-r--r-- | src/ui/helpers.cpp | 17 | ||||
| -rw-r--r-- | src/ui/ui_settings.cpp | 19 |
2 files changed, 30 insertions, 6 deletions
diff --git a/src/ui/helpers.cpp b/src/ui/helpers.cpp index c15528e..37c4b36 100644 --- a/src/ui/helpers.cpp +++ b/src/ui/helpers.cpp @@ -11,8 +11,14 @@ void ui_draw_status() { float region_width = ImGui::GetContentRegionAvail().x; float text_width = ImGui::CalcTextSize(current_status.text).x; + + if (current_status.loading) + { + ImGui::SetCursorPosX(ImGui::GetCursorPosX() + region_width - text_width - 20.0f); + ImGui::Text("%c", "|/-\\"[(int)(ImGui::GetTime() / 0.1f) & 3]); + return; + } - // Move cursor so that the text ends at the right edge if (current_status.visible) { ImGui::SetCursorPosX(ImGui::GetCursorPosX() + region_width - text_width); @@ -43,6 +49,7 @@ void ui_set_status_ex(const char* txt, int color) current_status.visible = true; current_status.time = 0.0f; current_status.color = color; + current_status.loading = false; strops_copy(current_status.text, txt, STATUS_TEXT_LEN); } @@ -56,6 +63,13 @@ void ui_set_status(const char* txt) ui_set_status_ex(txt, COLOR_DEFAULT); } +void ui_set_status_loading(bool loading) +{ + current_status.visible = true; + current_status.time = 0.0f; + current_status.loading = loading; +} + ui_status ui_get_status() { return current_status; @@ -134,4 +148,3 @@ int TextInputWithAutocomplete(const char* label, const char* hint, char* buffer, } return result; } - diff --git a/src/ui/ui_settings.cpp b/src/ui/ui_settings.cpp index 9cc2cd9..75c4918 100644 --- a/src/ui/ui_settings.cpp +++ b/src/ui/ui_settings.cpp @@ -125,7 +125,7 @@ static void ui_draw_vat_rates() is_adding_item = false; administration_tax_bracket_update(new_tax_bracket); - if (administration_writer_save_tax_brackets()) { + if (administration_writer_save_all_tax_brackets()) { ui_set_status(localize("status.saved")); } else { @@ -177,7 +177,7 @@ static void ui_draw_vat_rates() is_adding_item = false; administration_tax_bracket_add(new_tax_bracket); - if (administration_writer_save_tax_brackets()) { + if (administration_writer_save_all_tax_brackets()) { ui_set_status(localize("status.saved")); } else { @@ -239,7 +239,13 @@ static void ui_draw_cost_centers() is_adding_item = false; administration_cost_center_update(new_cost_center); - administration_writer_save_cost_centers(); + if (administration_writer_save_all_cost_centers()) { + ui_set_status(localize("status.saved")); + } + else { + ui_set_status_error(localize("status.saveFailed")); + } + memset(&new_cost_center, 0, sizeof(new_cost_center)); ui_destroy_settings(); @@ -294,7 +300,12 @@ static void ui_draw_cost_centers() is_adding_item = false; is_editing_item = false; administration_cost_center_add(new_cost_center); - administration_writer_save_cost_centers(); + if (administration_writer_save_all_cost_centers()) { + ui_set_status(localize("status.saved")); + } + else { + ui_set_status_error(localize("status.saveFailed")); + } ui_destroy_settings(); ui_setup_settings(); |
