diff options
| author | Aldrik Ramaekers <aldrikboy@gmail.com> | 2025-10-26 17:23:28 +0100 |
|---|---|---|
| committer | Aldrik Ramaekers <aldrikboy@gmail.com> | 2025-10-26 17:23:28 +0100 |
| commit | 60488d722bf29f3ff0ce3e08b90f30523a8d7b6d (patch) | |
| tree | c2e01243d8a0d970c35e250b66a66a226ab230dc /src/ui/ui_projects.cpp | |
| parent | 5e06ad208e32330b662af90ce41613f5421095cb (diff) | |
loading animations and block navigation while writing to disk
Diffstat (limited to 'src/ui/ui_projects.cpp')
| -rw-r--r-- | src/ui/ui_projects.cpp | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/src/ui/ui_projects.cpp b/src/ui/ui_projects.cpp index 82597b4..94f2be6 100644 --- a/src/ui/ui_projects.cpp +++ b/src/ui/ui_projects.cpp @@ -26,22 +26,24 @@ static project selected_for_cancellation; static project active_project; -void ui::setup_projects() +static void _reset_to_default_view() { current_view_state = ui::view_state::LIST_ALL; active_project = administration::project_create_empty(); } +void ui::setup_projects() +{ + _reset_to_default_view(); +} + static void draw_project_form() { float widthAvailable = ImGui::GetContentRegionAvail().x; bool viewing_only = (current_view_state == ui::view_state::VIEW_EXISTING); - static const char* selected_country = NULL; - if (ImGui::Button(locale::get("form.back"))) { - current_view_state = ui::view_state::LIST_ALL; - active_project = administration::project_create_empty(); - selected_country = 0; + if (ImGui::Button(locale::get("form.back"), true, false)) { + _reset_to_default_view(); return; } ImGui::Spacing(); @@ -63,7 +65,10 @@ static void draw_project_form() 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); + if (current_view_state == ui::view_state::CREATE) { administration::project_add(active_project); } @@ -71,10 +76,6 @@ static void draw_project_form() else if (current_view_state == ui::view_state::EDIT_EXISTING) { administration::project_update(active_project); } - - current_view_state = ui::view_state::LIST_ALL; - selected_country = 0; - active_project = administration::project_create_empty(); } if (!can_save) ImGui::EndDisabled(); } |
