summaryrefslogtreecommitdiff
path: root/src/ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/imgui_extensions.cpp38
-rw-r--r--src/ui/ui_contacts.cpp2
-rw-r--r--src/ui/ui_earnings.cpp2
-rw-r--r--src/ui/ui_expenses.cpp17
-rw-r--r--src/ui/ui_invoices.cpp17
-rw-r--r--src/ui/ui_projects.cpp2
-rw-r--r--src/ui/ui_settings.cpp13
-rw-r--r--src/ui/ui_tax.cpp2
8 files changed, 49 insertions, 44 deletions
diff --git a/src/ui/imgui_extensions.cpp b/src/ui/imgui_extensions.cpp
index 31b6f22..dca73f2 100644
--- a/src/ui/imgui_extensions.cpp
+++ b/src/ui/imgui_extensions.cpp
@@ -58,17 +58,17 @@ namespace ImGui
return button_size;
}
- static void DrawSuccessMark(int bWidth = 0)
+ static void DrawSuccessMark(int bWidth = 0, bool isButton = true)
{
ImGui::PushStyleColor(ImGuiCol_Text, config::colors::COLOR_SUCCESS);
- result = ImGui::Button("√", ImVec2(bWidth, 0));
+ if (isButton) ImGui::Button("√", ImVec2(bWidth, 0)); else ImGui::Text("√");
ImGui::PopStyleColor();
}
- static void DrawFailureMark(int bWidth = 0)
+ static void DrawFailureMark(int bWidth = 0, bool isButton = true)
{
ImGui::PushStyleColor(ImGuiCol_Text, config::colors::COLOR_ERROR);
- result = ImGui::Button("X", ImVec2(bWidth, 0));
+ if (isButton) ImGui::Button("X", ImVec2(bWidth, 0)); else ImGui::Text("√");
ImGui::PopStyleColor();
}
@@ -145,7 +145,7 @@ namespace ImGui
ImGui::EndDisabled();
ImGui::PopID();
- if (ImGui::GetTime() - status_time > 1.0) {
+ if (ImGui::GetTime() - status_time > 0.5) {
show_status = false;
active_id = -1;
}
@@ -808,11 +808,11 @@ namespace ImGui
if (ImGui::BeginComboPreview())
{
if (last_err == E_ERR_SUCCESS) {
- DrawSuccessMark();
+ DrawSuccessMark(0, false);
ImGui::Text("Success"); // @Localize
}
else {
- DrawFailureMark();
+ DrawFailureMark(0, false);
ImGui::Text("Failed"); // @Localize
}
ImGui::EndComboPreview();
@@ -820,7 +820,7 @@ namespace ImGui
}
ImGui::EndDisabled();
- if (difftime(time(NULL), status_changed_at) > 1.0f) {
+ if (difftime(time(NULL), status_changed_at) > 0.5f) {
show_status_change = false;
}
}
@@ -829,4 +829,26 @@ namespace ImGui
}
return false;
}
+
+ bool InvalidCompanyInfoWarning()
+ {
+ if (!administration::company_info_is_valid()) {
+ ImGui::PushStyleColor(ImGuiCol_Text, IM_COL32(0, 102, 204, 255)); // blue
+ ImGui::Text(locale::get("ui.invoiceRequirementP1"));
+ ImGui::PopStyleColor();
+
+ if (ImGui::IsItemHovered()) {
+ ImGui::SetMouseCursor(ImGuiMouseCursor_Hand);
+ if (ImGui::IsMouseClicked(ImGuiMouseButton_Left)) {
+ ui::set_state(ui::main_state::UI_SETTINGS);
+ }
+ }
+
+ ImGui::SameLine();
+ ImGui::Text(locale::get("ui.invoiceRequirementP2"));
+ return true;
+ }
+
+ return false;
+ }
} \ No newline at end of file
diff --git a/src/ui/ui_contacts.cpp b/src/ui/ui_contacts.cpp
index a9559c5..f3581dd 100644
--- a/src/ui/ui_contacts.cpp
+++ b/src/ui/ui_contacts.cpp
@@ -37,6 +37,8 @@ void ui::setup_contacts()
static void draw_contact_list()
{
+ if (ImGui::InvalidCompanyInfoWarning()) return;
+
static char search_buffer[MAX_LEN_LONG_DESC];
contact_filter filter;
diff --git a/src/ui/ui_earnings.cpp b/src/ui/ui_earnings.cpp
index 8f08bcb..cb6c848 100644
--- a/src/ui/ui_earnings.cpp
+++ b/src/ui/ui_earnings.cpp
@@ -36,6 +36,8 @@ void ui::destroy_earnings()
void ui::draw_earnings()
{
+ if (ImGui::InvalidCompanyInfoWarning()) return;
+
static s32 current_page = 0;
s32 max_page = ((statement->quarter_count) / 4);
diff --git a/src/ui/ui_expenses.cpp b/src/ui/ui_expenses.cpp
index f86a1b5..4227e08 100644
--- a/src/ui/ui_expenses.cpp
+++ b/src/ui/ui_expenses.cpp
@@ -160,22 +160,7 @@ static void draw_expense_form(invoice* buffer, bool viewing_only = false)
static void draw_expenses_list()
{
- if (!administration::can_create_invoices()) {
- ImGui::PushStyleColor(ImGuiCol_Text, IM_COL32(0, 102, 204, 255)); // blue
- ImGui::Text(locale::get("ui.invoiceRequirementP1"));
- ImGui::PopStyleColor();
-
- if (ImGui::IsItemHovered()) {
- ImGui::SetMouseCursor(ImGuiMouseCursor_Hand);
- if (ImGui::IsMouseClicked(ImGuiMouseButton_Left)) {
- ui::set_state(ui::main_state::UI_SETTINGS);
- }
- }
-
- ImGui::SameLine();
- ImGui::Text(locale::get("ui.invoiceRequirementP2"));
- return;
- }
+ if (ImGui::InvalidCompanyInfoWarning()) return;
const u32 items_per_page = 50;
static s32 current_page = 0;
diff --git a/src/ui/ui_invoices.cpp b/src/ui/ui_invoices.cpp
index 2c0a8e4..a5fbd3c 100644
--- a/src/ui/ui_invoices.cpp
+++ b/src/ui/ui_invoices.cpp
@@ -268,22 +268,7 @@ static void draw_invoice_form(invoice* buffer, bool viewing_only = false)
static void draw_invoices_list()
{
- if (!administration::can_create_invoices()) {
- ImGui::PushStyleColor(ImGuiCol_Text, IM_COL32(0, 102, 204, 255)); // blue
- ImGui::Text(locale::get("ui.invoiceRequirementP1"));
- ImGui::PopStyleColor();
-
- if (ImGui::IsItemHovered()) {
- ImGui::SetMouseCursor(ImGuiMouseCursor_Hand);
- if (ImGui::IsMouseClicked(ImGuiMouseButton_Left)) {
- ui::set_state(ui::main_state::UI_SETTINGS);
- }
- }
-
- ImGui::SameLine();
- ImGui::Text(locale::get("ui.invoiceRequirementP2"));
- return;
- }
+ if (ImGui::InvalidCompanyInfoWarning()) return;
const u32 items_per_page = 50;
static s32 current_page = 0;
diff --git a/src/ui/ui_projects.cpp b/src/ui/ui_projects.cpp
index 42dba92..b3241f4 100644
--- a/src/ui/ui_projects.cpp
+++ b/src/ui/ui_projects.cpp
@@ -86,6 +86,8 @@ static void draw_project_form()
static void draw_project_list()
{
+ if (ImGui::InvalidCompanyInfoWarning()) return;
+
const u32 items_per_page = 50;
static s32 current_page = 0;
s32 max_page = (administration::project_count() + items_per_page - 1) / items_per_page;
diff --git a/src/ui/ui_settings.cpp b/src/ui/ui_settings.cpp
index defe119..d41affa 100644
--- a/src/ui/ui_settings.cpp
+++ b/src/ui/ui_settings.cpp
@@ -48,7 +48,7 @@ void ui::setup_settings()
select_company_tab = 1;
company_info = administration::company_info_get();
- if (administration::can_create_invoices()) {
+ if (administration::company_info_is_valid()) {
tax_rates = (tax_rate*)memops::alloc(sizeof(tax_rate) * 400);
tax_rate_count = country::get_available_tax_rates(administration::company_info_get().address.country_code, tax_rates, 400);
@@ -61,6 +61,12 @@ void ui::setup_settings()
}
}
+static void _write_company_info_callback()
+{
+ ui::setup_settings();
+ select_company_tab = 0;
+}
+
static bool is_writing_vat_rate = false;
static u32 writing_vat_rate_index = 0;
static void _vat_rate_write_complete_callback()
@@ -384,19 +390,18 @@ void ui::draw_settings()
select_company_tab = 0;
ImGui::ContactForm(&company_info, false, false, true);
- // Save button.
bool can_save = administration::contact_is_valid(company_info) == A_ERR_SUCCESS;
if (!can_save) ImGui::BeginDisabled();
ImGui::Spacing();
if (ImGui::Button(locale::get("form.save"), true)) {
- administration_writer::set_write_completed_event_callback(0);
+ administration_writer::set_write_completed_event_callback(_write_company_info_callback);
administration::company_info_set(company_info);
}
if (!can_save) ImGui::EndDisabled();
ImGui::EndTabItem();
}
- if (administration::can_create_invoices()) {
+ if (administration::company_info_is_valid()) {
if (ImGui::BeginTabItem(locale::get("settings.table.vatrates")))
{
draw_vat_rates();
diff --git a/src/ui/ui_tax.cpp b/src/ui/ui_tax.cpp
index af05cd7..a89bd7a 100644
--- a/src/ui/ui_tax.cpp
+++ b/src/ui/ui_tax.cpp
@@ -37,6 +37,8 @@ void ui::destroy_tax_report()
void ui::draw_tax_report()
{
+ if (ImGui::InvalidCompanyInfoWarning()) return;
+
static s32 current_page = 0;
s32 max_page = statement->report_count;