From 60488d722bf29f3ff0ce3e08b90f30523a8d7b6d Mon Sep 17 00:00:00 2001 From: Aldrik Ramaekers Date: Sun, 26 Oct 2025 17:23:28 +0100 Subject: loading animations and block navigation while writing to disk --- src/ui/ui_contacts.cpp | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) (limited to 'src/ui/ui_contacts.cpp') diff --git a/src/ui/ui_contacts.cpp b/src/ui/ui_contacts.cpp index 0f1716f..5d92f8a 100644 --- a/src/ui/ui_contacts.cpp +++ b/src/ui/ui_contacts.cpp @@ -154,10 +154,15 @@ static void draw_contact_list() } } +static void _reset_to_default_view() +{ + current_view_state = ui::view_state::LIST_ALL; +} + static void draw_contacts_create() { - if (ImGui::Button(locale::get("form.back"))) { - current_view_state = ui::view_state::LIST_ALL; + if (ImGui::Button(locale::get("form.back"), true, false)) { + _reset_to_default_view(); } ImGui::ContactForm(&active_contact, false, false); @@ -167,17 +172,17 @@ static void draw_contacts_create() if (!can_save) ImGui::BeginDisabled(); // Save button ImGui::Spacing(); - if (ImGui::Button(locale::get("form.save"))) { + if (ImGui::Button(locale::get("form.save"), true)) { + administration_writer::set_write_completed_event_callback(_reset_to_default_view); administration::contact_add(active_contact); - current_view_state = ui::view_state::LIST_ALL; } if (!can_save) ImGui::EndDisabled(); } static void draw_contacts_update() { - if (ImGui::Button(locale::get("form.back"))) { - current_view_state = ui::view_state::LIST_ALL; + if (ImGui::Button(locale::get("form.back"), true, false)) { + _reset_to_default_view(); } ImGui::ContactForm(&active_contact, false, false); @@ -187,9 +192,9 @@ static void draw_contacts_update() if (!can_save) ImGui::BeginDisabled(); // Save button ImGui::Spacing(); - if (ImGui::Button(locale::get("form.save"))) { + if (ImGui::Button(locale::get("form.save"), true)) { + administration_writer::set_write_completed_event_callback(_reset_to_default_view); administration::contact_update(active_contact); - current_view_state = ui::view_state::LIST_ALL; } if (!can_save) ImGui::EndDisabled(); } @@ -203,8 +208,8 @@ void ui::draw_contacts() case ui::view_state::EDIT_EXISTING: draw_contacts_update(); break; case ui::view_state::VIEW_EXISTING: - if (ImGui::Button(locale::get("form.back"))) { - current_view_state = ui::view_state::LIST_ALL; + if (ImGui::Button(locale::get("form.back"), true, false)) { + _reset_to_default_view(); } ImGui::ContactForm(&active_contact, true, false); -- cgit v1.2.3-70-g09d2