diff options
Diffstat (limited to 'src/ui')
| -rw-r--r-- | src/ui/imgui_extensions.cpp | 36 | ||||
| -rw-r--r-- | src/ui/ui_contacts.cpp | 8 | ||||
| -rw-r--r-- | src/ui/ui_expenses.cpp | 8 | ||||
| -rw-r--r-- | src/ui/ui_invoices.cpp | 10 | ||||
| -rw-r--r-- | src/ui/ui_projects.cpp | 8 |
5 files changed, 69 insertions, 1 deletions
diff --git a/src/ui/imgui_extensions.cpp b/src/ui/imgui_extensions.cpp index ee0bebb..0bfd5c8 100644 --- a/src/ui/imgui_extensions.cpp +++ b/src/ui/imgui_extensions.cpp @@ -470,4 +470,40 @@ namespace ImGui ImGui::EndCombo(); } } + + bool DrawWarningIcon(float radius) + { + ImGui::SameLine(); + + ImVec2 cursor_pos = ImGui::GetCursorScreenPos(); + ImVec2 center = ImVec2(cursor_pos.x + radius, cursor_pos.y + radius + 4); + + ImGui::PushID((int)center.y); + ImDrawList* draw_list = ImGui::GetWindowDrawList(); + + // Draw red circle + draw_list->AddCircleFilled(center, radius, IM_COL32(255, 0, 0, 255)); + + // Draw exclamation mark + float line_height = radius * 0.9f; + float line_thickness = radius * 0.3f; + float dot_radius = radius * 0.2f; + + ImVec2 line_start(center.x - line_thickness/3.0f, center.y - line_height * 0.7f); + ImVec2 line_end(center.x - line_thickness/3.0f, center.y + line_height * 0.1f); + + // Vertical bar + draw_list->AddLine(line_start, line_end, IM_COL32(255, 255, 255, 255), line_thickness); + + // Bottom dot + draw_list->AddCircleFilled(ImVec2(center.x - dot_radius/3.0f, center.y + line_height * 0.55f), dot_radius, IM_COL32(255, 255, 255, 255)); + + ImGui::SetCursorScreenPos(ImVec2(center.x - radius, center.y - radius)); + ImGui::InvisibleButton("##warning_icon", ImVec2(radius * 2, radius * 2)); + ImGui::PopID(); + if (ImGui::IsItemHovered()) { + 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 7d585c9..30d01de 100644 --- a/src/ui/ui_contacts.cpp +++ b/src/ui/ui_contacts.cpp @@ -154,6 +154,14 @@ static void draw_contact_list() ImGui::TableNextRow(); ImGui::TableSetColumnIndex(0); ImGui::Text(c.id); + + if (administration::contact_is_valid(c) != A_ERR_SUCCESS) + { + if (ImGui::DrawWarningIcon(8.0f)) { + ImGui::SetTooltip(locale::get("ui.tooltip.invalidContact")); + } + } + ImGui::TableSetColumnIndex(1); ImGui::Text(c.name); ImGui::TableSetColumnIndex(2); ImGui::Text("%s %s", c.address.address1, c.address.address2); diff --git a/src/ui/ui_expenses.cpp b/src/ui/ui_expenses.cpp index e22b5b1..b3c878a 100644 --- a/src/ui/ui_expenses.cpp +++ b/src/ui/ui_expenses.cpp @@ -228,6 +228,14 @@ static void draw_expenses_list() ImGui::TableNextRow(); ImGui::TableSetColumnIndex(0); ImGui::Text(c.sequential_number); + + if (administration::invoice_is_valid(&c) != A_ERR_SUCCESS) + { + if (ImGui::DrawWarningIcon(8.0f)) { + ImGui::SetTooltip(locale::get("ui.tooltip.invalidInvoice")); + } + } + ImGui::TableSetColumnIndex(1); ImGui::Text(c.supplier.name); ImGui::TableSetColumnIndex(2); ImGui::Text(c.customer.name); diff --git a/src/ui/ui_invoices.cpp b/src/ui/ui_invoices.cpp index 850c9a3..fbc6eb0 100644 --- a/src/ui/ui_invoices.cpp +++ b/src/ui/ui_invoices.cpp @@ -311,7 +311,7 @@ static void draw_invoices_list() if (ImGui::BeginTable("TableInvoices", 7, ImGuiTableFlags_Borders | ImGuiTableFlags_RowBg)) { - ImGui::TableSetupColumn(locale::get("invoice.table.invoicenumber"), ImGuiTableColumnFlags_WidthFixed, 120); + ImGui::TableSetupColumn(locale::get("invoice.table.invoicenumber"), ImGuiTableColumnFlags_WidthFixed, 130); ImGui::TableSetupColumn(locale::get("invoice.table.customer")); ImGui::TableSetupColumn(locale::get("invoice.table.addressee")); ImGui::TableSetupColumn(locale::get("invoice.table.issuedat")); @@ -325,6 +325,14 @@ static void draw_invoices_list() ImGui::TableNextRow(); ImGui::TableSetColumnIndex(0); ImGui::Text(c.sequential_number); + + if (administration::invoice_is_valid(&c) != A_ERR_SUCCESS) + { + if (ImGui::DrawWarningIcon(8.0f)) { + ImGui::SetTooltip(locale::get("ui.tooltip.invalidInvoice")); + } + } + ImGui::TableSetColumnIndex(1); ImGui::Text(c.customer.name); ImGui::TableSetColumnIndex(2); ImGui::Text(c.addressee.name); diff --git a/src/ui/ui_projects.cpp b/src/ui/ui_projects.cpp index 66cc336..43a8eb4 100644 --- a/src/ui/ui_projects.cpp +++ b/src/ui/ui_projects.cpp @@ -134,6 +134,14 @@ static void draw_project_list() ImGui::TableNextRow(); ImGui::TableSetColumnIndex(0); ImGui::Text(c.id); + + if (administration::project_is_valid(c) != A_ERR_SUCCESS) + { + if (ImGui::DrawWarningIcon(8.0f)) { + ImGui::SetTooltip(locale::get("ui.tooltip.invalidInvoice")); + } + } + ImGui::TableSetColumnIndex(1); ImGui::Text(locale::get(administration::project_get_status_string(c))); ImGui::TableSetColumnIndex(2); ImGui::Text(c.description); |
