summaryrefslogtreecommitdiff
path: root/src/ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/helpers.cpp17
-rw-r--r--src/ui/ui_settings.cpp19
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();