summaryrefslogtreecommitdiff
path: root/src/ui/ui_projects.cpp
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrikboy@gmail.com>2025-10-26 17:23:28 +0100
committerAldrik Ramaekers <aldrikboy@gmail.com>2025-10-26 17:23:28 +0100
commit60488d722bf29f3ff0ce3e08b90f30523a8d7b6d (patch)
treec2e01243d8a0d970c35e250b66a66a226ab230dc /src/ui/ui_projects.cpp
parent5e06ad208e32330b662af90ce41613f5421095cb (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.cpp23
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();
}