summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrik@mailbox.org>2026-01-03 15:38:13 +0100
committerAldrik Ramaekers <aldrik@mailbox.org>2026-01-03 15:38:13 +0100
commit66a918a4621f1ecb828e68eac94fdb34852e9570 (patch)
tree48a4bd4b3545a8379ffb74cd79b03243dcb4629f /src
parent83a9739b3aff75cf767db687bd531fa5283e0e72 (diff)
ui improvements
Diffstat (limited to 'src')
-rw-r--r--src/administration.cpp2
-rw-r--r--src/ui/ui_earnings.cpp2
-rw-r--r--src/ui/ui_expenses.cpp3
-rw-r--r--src/ui/ui_invoices.cpp3
-rw-r--r--src/ui/ui_main.cpp43
-rw-r--r--src/ui/ui_settings.cpp9
-rw-r--r--src/ui/ui_tax.cpp2
7 files changed, 47 insertions, 17 deletions
diff --git a/src/administration.cpp b/src/administration.cpp
index 6e7d2f1..44438ff 100644
--- a/src/administration.cpp
+++ b/src/administration.cpp
@@ -227,7 +227,7 @@ void administration::create_empty(char* save_file)
void administration::create_default(char* save_file)
{
administration::create_empty(save_file);
- create_default_cost_centers();
+ if (!strops::empty(save_file)) create_default_cost_centers();
}
// Other functions.
diff --git a/src/ui/ui_earnings.cpp b/src/ui/ui_earnings.cpp
index cb6c848..afe0210 100644
--- a/src/ui/ui_earnings.cpp
+++ b/src/ui/ui_earnings.cpp
@@ -32,6 +32,8 @@ void ui::setup_earnings()
void ui::destroy_earnings()
{
memops::unalloc(statement);
+
+ statement = 0;
}
void ui::draw_earnings()
diff --git a/src/ui/ui_expenses.cpp b/src/ui/ui_expenses.cpp
index 7f8d1cc..45a0646 100644
--- a/src/ui/ui_expenses.cpp
+++ b/src/ui/ui_expenses.cpp
@@ -54,6 +54,9 @@ void ui::destroy_expenses()
{
memops::unalloc(invoice_items_buffer);
memops::unalloc(activity_buffer);
+
+ invoice_items_buffer = 0;
+ activity_buffer = 0;
}
void ui::setup_expenses()
diff --git a/src/ui/ui_invoices.cpp b/src/ui/ui_invoices.cpp
index 519544b..e9af66e 100644
--- a/src/ui/ui_invoices.cpp
+++ b/src/ui/ui_invoices.cpp
@@ -52,6 +52,9 @@ void ui::destroy_invoices()
{
memops::unalloc(invoice_items_buffer);
memops::unalloc(activity_buffer);
+
+ invoice_items_buffer = 0;
+ activity_buffer = 0;
}
void ui::setup_invoices()
diff --git a/src/ui/ui_main.cpp b/src/ui/ui_main.cpp
index 67d678f..dde0882 100644
--- a/src/ui/ui_main.cpp
+++ b/src/ui/ui_main.cpp
@@ -71,8 +71,14 @@ void ui::draw_main()
{
if (ImGui::BeginMenu(locale::get("ui.menu.file")))
{
- if (ImGui::MenuItem(locale::get("ui.menu.file.new"))) { administration_reader::open_new(); }
- if (ImGui::MenuItem(locale::get("ui.menu.file.open"))) { administration_reader::open_existing(NULL); }
+ if (ImGui::MenuItem(locale::get("ui.menu.file.new"))) {
+ administration_reader::open_new();
+ ui::set_state(ui::main_state::UI_SETTINGS);
+ }
+ if (ImGui::MenuItem(locale::get("ui.menu.file.open"))) {
+ administration_reader::open_existing(NULL);
+ ui::set_state(ui::main_state::UI_SETTINGS);
+ }
ImGui::EndMenu();
}
@@ -105,21 +111,26 @@ void ui::draw_main()
float buttonWidth = sidePanelWidth;
- if (ImGui::Button(locale::get("nav.invoices"), ImVec2(buttonWidth, 24))) ui::set_state(ui::main_state::UI_INVOICES);
- if (ImGui::Button(locale::get("nav.expenses"), ImVec2(buttonWidth, 24))) ui::set_state(ui::main_state::UI_EXPENSES);
- if (ImGui::Button(locale::get("nav.contacts"), ImVec2(buttonWidth, 24))) ui::set_state(ui::main_state::UI_CONTACTS);
-
- static bool reports_opened = true;
- ImGui::Button(locale::get("nav.reports"), ImVec2(buttonWidth, 24));
- if (reports_opened)
- {
- ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(20.0f, 0.0f));
- if (ImGui::Button(locale::get("nav.reports.results"), ImVec2(buttonWidth, 24))) ui::set_state(ui::main_state::UI_REPORT_RESULTS);
- if (ImGui::Button(locale::get("nav.reports.tax"), ImVec2(buttonWidth, 24))) ui::set_state(ui::main_state::UI_REPORT_TAX);
- ImGui::PopStyleVar();
+ if (administration::company_info_is_valid()) {
+ if (ImGui::Button(locale::get("nav.invoices"), ImVec2(buttonWidth, 24))) ui::set_state(ui::main_state::UI_INVOICES);
+ if (ImGui::Button(locale::get("nav.expenses"), ImVec2(buttonWidth, 24))) ui::set_state(ui::main_state::UI_EXPENSES);
+ if (ImGui::Button(locale::get("nav.contacts"), ImVec2(buttonWidth, 24))) ui::set_state(ui::main_state::UI_CONTACTS);
+
+ static bool reports_opened = true;
+ ImGui::Button(locale::get("nav.reports"), ImVec2(buttonWidth, 24));
+ if (reports_opened)
+ {
+ ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(20.0f, 0.0f));
+ if (ImGui::Button(locale::get("nav.reports.results"), ImVec2(buttonWidth, 24))) ui::set_state(ui::main_state::UI_REPORT_RESULTS);
+ if (ImGui::Button(locale::get("nav.reports.tax"), ImVec2(buttonWidth, 24))) ui::set_state(ui::main_state::UI_REPORT_TAX);
+ ImGui::PopStyleVar();
+ }
+
+ if (ImGui::Button(locale::get("nav.projects"), ImVec2(buttonWidth, 24))) ui::set_state(ui::main_state::UI_PROJECTS);
+ }
+ else {
+ if (ui_state != ui::main_state::UI_SETTINGS) ui::set_state(ui::main_state::UI_SETTINGS);
}
-
- if (ImGui::Button(locale::get("nav.projects"), ImVec2(buttonWidth, 24))) ui::set_state(ui::main_state::UI_PROJECTS);
if (ImGui::Button(locale::get("nav.settings"), ImVec2(buttonWidth, 24))) ui::set_state(ui::main_state::UI_SETTINGS);
ImGui::PopStyleColor(1);
diff --git a/src/ui/ui_settings.cpp b/src/ui/ui_settings.cpp
index d41affa..0d3a210 100644
--- a/src/ui/ui_settings.cpp
+++ b/src/ui/ui_settings.cpp
@@ -24,6 +24,7 @@
#include "countries.hpp"
#include "administration.hpp"
#include "administration_writer.hpp"
+#include "administration_reader.hpp"
static contact company_info;
@@ -41,6 +42,9 @@ void ui::destroy_settings()
{
memops::unalloc(tax_rates);
memops::unalloc(cost_centers);
+
+ tax_rates = 0;
+ cost_centers = 0;
}
void ui::setup_settings()
@@ -394,6 +398,11 @@ void ui::draw_settings()
if (!can_save) ImGui::BeginDisabled();
ImGui::Spacing();
if (ImGui::Button(locale::get("form.save"), true)) {
+
+ if (administration::get_file_path() == NULL) {
+ administration_reader::open_new();
+ }
+
administration_writer::set_write_completed_event_callback(_write_company_info_callback);
administration::company_info_set(company_info);
}
diff --git a/src/ui/ui_tax.cpp b/src/ui/ui_tax.cpp
index a89bd7a..1b1e374 100644
--- a/src/ui/ui_tax.cpp
+++ b/src/ui/ui_tax.cpp
@@ -33,6 +33,8 @@ void ui::setup_tax_report()
void ui::destroy_tax_report()
{
memops::unalloc(statement);
+
+ statement = 0;
}
void ui::draw_tax_report()