summaryrefslogtreecommitdiff
path: root/src/ui
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrikboy@gmail.com>2025-09-13 08:54:05 +0200
committerAldrik Ramaekers <aldrikboy@gmail.com>2025-09-13 08:54:05 +0200
commitfb1ae39f1abe0dd0335489451e09a24e2336e606 (patch)
tree8bd482a824c11b67581679e6a445a39e11b607e7 /src/ui
parent5159a53e58cd4b3652ce6255856d50e15c275f80 (diff)
handle file saving through administration callbacks
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/ui_contacts.cpp29
-rw-r--r--src/ui/ui_expenses.cpp22
-rw-r--r--src/ui/ui_invoices.cpp21
-rw-r--r--src/ui/ui_main.cpp5
-rw-r--r--src/ui/ui_projects.cpp12
-rw-r--r--src/ui/ui_settings.cpp30
-rw-r--r--src/ui/ui_start.cpp35
7 files changed, 14 insertions, 140 deletions
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