From fb1ae39f1abe0dd0335489451e09a24e2336e606 Mon Sep 17 00:00:00 2001 From: Aldrik Ramaekers Date: Sat, 13 Sep 2025 08:54:05 +0200 Subject: handle file saving through administration callbacks --- src/ui/ui_contacts.cpp | 29 +++-------------------------- src/ui/ui_expenses.cpp | 22 +--------------------- src/ui/ui_invoices.cpp | 21 +-------------------- src/ui/ui_main.cpp | 5 ++--- src/ui/ui_projects.cpp | 12 ------------ src/ui/ui_settings.cpp | 30 ------------------------------ src/ui/ui_start.cpp | 35 +++++++---------------------------- 7 files changed, 14 insertions(+), 140 deletions(-) (limited to 'src/ui') diff --git a/src/ui/ui_contacts.cpp b/src/ui/ui_contacts.cpp index e1e9d5e..ed770d9 100644 --- a/src/ui/ui_contacts.cpp +++ b/src/ui/ui_contacts.cpp @@ -275,14 +275,7 @@ static void draw_contact_list() ImGui::Separator(); if (ImGui::Button(localize("form.yes"), ImVec2(120, 0))) { - if (administration_contact_remove(selected_for_removal)) { - if (administration_writer_delete_entry(selected_for_removal.id)) { - ui_set_status(localize("status.saved")); - } - else { - ui_set_status_error(localize("status.saveFailed")); - } - } + administration_contact_remove(selected_for_removal); ImGui::CloseCurrentPopup(); } ImGui::SameLine(); @@ -309,15 +302,7 @@ static void ui_draw_contacts_create() // Save button ImGui::Spacing(); if (ImGui::Button(localize("form.save"))) { - if (administration_contact_add(active_contact)) { - if (administration_writer_save_contact_blocking(active_contact)) { - ui_set_status(localize("status.saved")); - } - else { - ui_set_status_error(localize("status.saveFailed")); - } - } - + administration_contact_add(active_contact); current_view_state = view_state::LIST; } if (!can_save) ImGui::EndDisabled(); @@ -336,15 +321,7 @@ static void ui_draw_contacts_update() // Save button ImGui::Spacing(); if (ImGui::Button(localize("form.save"))) { - if (administration_contact_update(active_contact)) { - if (administration_writer_save_contact_blocking(active_contact)) { - ui_set_status(localize("status.saved")); - } - else { - ui_set_status_error(localize("status.saveFailed")); - } - } - + administration_contact_update(active_contact); current_view_state = view_state::LIST; } if (!can_save) ImGui::EndDisabled(); diff --git a/src/ui/ui_expenses.cpp b/src/ui/ui_expenses.cpp index 6c02a74..808d7fb 100644 --- a/src/ui/ui_expenses.cpp +++ b/src/ui/ui_expenses.cpp @@ -455,15 +455,7 @@ static void ui_draw_expenses_list() ImGui::Separator(); if (ImGui::Button(localize("form.yes"), ImVec2(120, 0))) { - if (administration_invoice_remove(&selected_for_removal)) { - if (administration_writer_delete_entry(selected_for_removal.id)) { - ui_set_status(localize("status.saved")); - } - else { - ui_set_status_error(localize("status.saveFailed")); - } - } - + administration_invoice_remove(&selected_for_removal); ImGui::CloseCurrentPopup(); } ImGui::SameLine(); @@ -492,12 +484,6 @@ static void ui_draw_expense_update() ImGui::Spacing(); if (ImGui::Button(localize("form.save"))) { administration_invoice_update(&active_invoice); - if (administration_writer_save_invoice_blocking(active_invoice)) { - ui_set_status(localize("status.saved")); - } - else { - ui_set_status_error(localize("status.saveFailed")); - } current_view_state = view_state::LIST; @@ -522,12 +508,6 @@ static void ui_draw_expense_create() ImGui::Spacing(); if (ImGui::Button(localize("form.save"))) { administration_invoice_add(&active_invoice); - if (administration_writer_save_invoice_blocking(active_invoice)) { - ui_set_status(localize("status.saved")); - } - else { - ui_set_status_error(localize("status.saveFailed")); - } current_view_state = view_state::LIST; diff --git a/src/ui/ui_invoices.cpp b/src/ui/ui_invoices.cpp index 146d298..75f46b3 100644 --- a/src/ui/ui_invoices.cpp +++ b/src/ui/ui_invoices.cpp @@ -488,14 +488,7 @@ static void ui_draw_invoices_list() ImGui::Separator(); if (ImGui::Button(localize("form.yes"), ImVec2(120, 0))) { - if (administration_invoice_remove(&selected_for_removal)) { - if (administration_writer_delete_entry(selected_for_removal.id)) { - ui_set_status(localize("status.saved")); - } - else { - ui_set_status_error(localize("status.saveFailed")); - } - } + administration_invoice_remove(&selected_for_removal); ImGui::CloseCurrentPopup(); } ImGui::SameLine(); @@ -524,12 +517,6 @@ static void ui_draw_invoice_update() ImGui::Spacing(); if (ImGui::Button(localize("form.save"))) { administration_invoice_update(&active_invoice); - if (administration_writer_save_invoice_blocking(active_invoice)) { - ui_set_status(localize("status.saved")); - } - else { - ui_set_status_error(localize("status.saveFailed")); - } current_view_state = view_state::LIST; @@ -554,12 +541,6 @@ static void ui_draw_invoice_create() ImGui::Spacing(); if (ImGui::Button(localize("form.save"))) { administration_invoice_add(&active_invoice); - if (administration_writer_save_invoice_blocking(active_invoice)) { - ui_set_status(localize("status.saved")); - } - else { - ui_set_status_error(localize("status.saveFailed")); - } current_view_state = view_state::LIST; diff --git a/src/ui/ui_main.cpp b/src/ui/ui_main.cpp index bc02243..b245d88 100644 --- a/src/ui/ui_main.cpp +++ b/src/ui/ui_main.cpp @@ -4,6 +4,7 @@ #include "locales.hpp" #include "tinyfiledialogs.h" #include "administration_writer.hpp" +#include "administration_reader.hpp" static main_state ui_state = main_state::UI_END; void (*drawcalls[main_state::UI_END])(void) = { @@ -49,8 +50,6 @@ void ui_set_state(main_state state) if (setupcalls[ui_state]) setupcalls[ui_state](); } -void create_new_administration(); - void ui_draw_main() { if (ui_state == main_state::UI_END) ui_set_state(main_state::UI_START); @@ -60,7 +59,7 @@ void ui_draw_main() { if (ImGui::BeginMenu("File")) { - if (ImGui::MenuItem("New")) { create_new_administration(); } + if (ImGui::MenuItem("New")) { administration_reader_open_new(); } if (ImGui::MenuItem("Open")) { /* Handle Save */ } ImGui::EndMenu(); diff --git a/src/ui/ui_projects.cpp b/src/ui/ui_projects.cpp index d736cf5..065e828 100644 --- a/src/ui/ui_projects.cpp +++ b/src/ui/ui_projects.cpp @@ -54,22 +54,10 @@ static void draw_project_form() if (ImGui::Button(localize("form.save"))) { if (current_view_state == view_state::CREATE) { administration_project_add(active_project); - if (administration_writer_save_project_blocking(active_project)) { - ui_set_status(localize("status.saved")); - } - else { - ui_set_status_error(localize("status.saveFailed")); - } } else if (current_view_state == view_state::EDIT) { administration_project_update(active_project); - if (administration_writer_save_project_blocking(active_project)) { - ui_set_status(localize("status.saved")); - } - else { - ui_set_status_error(localize("status.saveFailed")); - } } current_view_state = view_state::LIST; diff --git a/src/ui/ui_settings.cpp b/src/ui/ui_settings.cpp index 77d2a45..ae05b1a 100644 --- a/src/ui/ui_settings.cpp +++ b/src/ui/ui_settings.cpp @@ -131,12 +131,6 @@ static void ui_draw_vat_rates() is_adding_item = false; administration_tax_bracket_update(new_tax_bracket); - if (administration_writer_save_tax_bracket_blocking(new_tax_bracket)) { - ui_set_status(localize("status.saved")); - } - else { - ui_set_status_error(localize("status.saveFailed")); - } ui_destroy_settings(); ui_setup_settings(); @@ -183,12 +177,6 @@ static void ui_draw_vat_rates() is_adding_item = false; administration_tax_bracket_add(new_tax_bracket); - if (administration_writer_save_tax_bracket_blocking(new_tax_bracket)) { - ui_set_status(localize("status.saved")); - } - else { - ui_set_status_error(localize("status.saveFailed")); - } ui_destroy_settings(); ui_setup_settings(); @@ -245,12 +233,6 @@ static void ui_draw_cost_centers() is_adding_item = false; administration_cost_center_update(new_cost_center); - if (administration_writer_save_cost_center_blocking(new_cost_center)) { - ui_set_status(localize("status.saved")); - } - else { - ui_set_status_error(localize("status.saveFailed")); - } memset(&new_cost_center, 0, sizeof(new_cost_center)); @@ -306,12 +288,6 @@ static void ui_draw_cost_centers() is_adding_item = false; is_editing_item = false; administration_cost_center_add(new_cost_center); - if (administration_writer_save_cost_center_blocking(new_cost_center)) { - ui_set_status(localize("status.saved")); - } - else { - ui_set_status_error(localize("status.saveFailed")); - } ui_destroy_settings(); ui_setup_settings(); @@ -353,12 +329,6 @@ void ui_draw_settings() ImGui::Spacing(); if (ImGui::Button(localize("form.save"))) { administration_company_info_set(company_info); - if (administration_writer_save_contact_blocking(company_info)) { - ui_set_status(localize("status.saved")); - } - else { - ui_set_status_error(localize("status.saveFailed")); - } } if (!can_save) ImGui::EndDisabled(); diff --git a/src/ui/ui_start.cpp b/src/ui/ui_start.cpp index f1377ec..dd7b54d 100644 --- a/src/ui/ui_start.cpp +++ b/src/ui/ui_start.cpp @@ -4,47 +4,26 @@ #include "locales.hpp" #include "tinyfiledialogs.h" #include "administration_writer.hpp" - -void create_new_administration() -{ - // @localize - char const * lFilterPatterns[1] = { "*.openbook" }; - char* save_path = tinyfd_saveFileDialog("Select destination", NULL, 1, lFilterPatterns, NULL); - - if (!save_path) return; - - administration_create_empty(save_path); - - administration_writer_save_all_cost_centers_blocking(); - administration_writer_save_all_tax_brackets_blocking(); - administration_writer_save_all_administration_info_blocking(); - - ui_set_state(main_state::UI_SETTINGS); -} +#include "administration_reader.hpp" void ui_draw_start() { - // Get the window size ImVec2 windowSize = ImGui::GetContentRegionAvail(); - - // Calculate half the width for each button ImVec2 buttonSize(windowSize.x * 0.5f, windowSize.y); - ImGui::Columns(2, nullptr, false); // 2 columns, no border - - // Left button + ImGui::Columns(2, nullptr, false); if (ImGui::Button("Create", buttonSize)) { - create_new_administration(); + if (administration_reader_open_new()) { + ui_set_state(main_state::UI_SETTINGS); + } } ImGui::NextColumn(); - - // Right button if (ImGui::Button("Load", buttonSize)) { - // Handle Load action + } - ImGui::Columns(1); // Reset columns + ImGui::Columns(1); } \ No newline at end of file -- cgit v1.2.3-70-g09d2