summaryrefslogtreecommitdiff
path: root/src/ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/imgui_extensions.cpp14
-rw-r--r--src/ui/ui_expenses.cpp20
-rw-r--r--src/ui/ui_invoices.cpp13
3 files changed, 32 insertions, 15 deletions
diff --git a/src/ui/imgui_extensions.cpp b/src/ui/imgui_extensions.cpp
index 496bbe2..dee36a7 100644
--- a/src/ui/imgui_extensions.cpp
+++ b/src/ui/imgui_extensions.cpp
@@ -41,7 +41,7 @@ namespace ImGui
float radius = 10.0f;
const ImVec4 col = ImGui::GetStyleColorVec4(ImGuiCol_LoadingIndicatorFg);
const ImVec4 bg = ImGui::GetStyleColorVec4(ImGuiCol_LoadingIndicatorBg);
- ImGui::LoadingIndicatorCircle(radius, bg, col, 6, 4.0f);
+ ImGui::LoadingIndicatorCircle(radius, bg, col, 6, 4.0f, 0.0f);
}
bool CheckboxX(const char* label, bool* v, bool disabled, bool show_loading_indicator_while_disabled)
@@ -85,14 +85,14 @@ namespace ImGui
static void DrawSuccessMark(int bWidth = 0, bool isButton = true)
{
ImGui::PushStyleColor(ImGuiCol_Text, config::colors::COLOR_SUCCESS);
- if (isButton) ImGui::Button(ICON_FA_CHECK_SQUARE, ImVec2(bWidth, 0)); else ImGui::Text("√");
+ if (isButton) ImGui::Button(ICON_FA_CHECK_SQUARE, ImVec2(bWidth, 0)); else ImGui::Text(ICON_FA_CHECK_SQUARE);
ImGui::PopStyleColor();
}
static void DrawFailureMark(int bWidth = 0, bool isButton = true)
{
ImGui::PushStyleColor(ImGuiCol_Text, config::colors::COLOR_ERROR);
- if (isButton) ImGui::Button(ICON_FA_BAN, ImVec2(bWidth, 0)); else ImGui::Text("√");
+ if (isButton) ImGui::Button(ICON_FA_BAN, ImVec2(bWidth, 0)); else ImGui::Text(ICON_FA_BAN);
ImGui::PopStyleColor();
}
@@ -796,7 +796,7 @@ namespace ImGui
{
static bool is_new_request = false;
static bool show_status_change = false;
- static time_t status_changed_at = 0;
+ static double status_changed_at = 0;
static e_err last_err;
if (active_request && active_request->status == exporter::export_status::EXPORT_DONE && is_new_request)
@@ -804,7 +804,7 @@ namespace ImGui
is_new_request = false;
show_status_change = true;
last_err = active_request->error;
- status_changed_at = time(NULL);
+ status_changed_at = ImGui::GetTime();
}
if (active_request && active_request->status != exporter::export_status::EXPORT_DONE) {
@@ -834,14 +834,14 @@ namespace ImGui
}
else {
DrawFailureMark(0, false);
- ImGui::Text(locale::get("form.failure"));
+ ImGui::Text(locale::get("form.failed"));
}
ImGui::EndComboPreview();
}
}
ImGui::EndDisabled();
- if (difftime(time(NULL), status_changed_at) > 0.5f) {
+ if (ImGui::GetTime() - status_changed_at >= 1.0f) {
show_status_change = false;
}
}
diff --git a/src/ui/ui_expenses.cpp b/src/ui/ui_expenses.cpp
index 6ac043f..64dbc18 100644
--- a/src/ui/ui_expenses.cpp
+++ b/src/ui/ui_expenses.cpp
@@ -20,6 +20,7 @@
#include "ui.hpp"
#include "memops.hpp"
+#include "assets.hpp"
#include "strops.hpp"
#include "locales.hpp"
#include "importer.hpp"
@@ -431,6 +432,9 @@ static void draw_import_request()
}
}
+ ai_service ai = administration::get_active_ai_service();
+ importer::ai_provider_impl ai_impl = importer::get_ai_provider_implementation(ai.provider);
+
ImGui::PushFont(ui::fontBig);
ImVec2 windowSize = ImGui::GetWindowSize();
@@ -439,17 +443,25 @@ static void draw_import_request()
const char* text = importer::status_to_string(active_import_request->status);
if (active_import_request->error != I_ERR_SUCCESS) text = importer::error_to_string(active_import_request->error);
ImVec2 textSize = ImGui::CalcTextSize(text);
- ImGui::SetCursorPos(ImVec2((windowSize.x - textSize.x) * 0.5f,
+
+ ImGui::SetCursorPos(ImVec2((windowSize.x - textSize.x) * 0.5f - 24,
(windowSize.y) * 0.5f - radius - 40.0f));
+ ImGui::Image(assets::load_image(ai_impl.icon_name), ImVec2(24, 24));
+
+
+ ImGui::SetCursorPos(ImVec2((windowSize.x - textSize.x) * 0.5f + 10,
+ (windowSize.y) * 0.5f - radius - 40.0f - 2));
ImGui::Text(text);
if (active_import_request->error == I_ERR_SUCCESS) {
ImGui::SetCursorPos(ImVec2((windowSize.x - radius*2) * 0.5f,
(windowSize.y - radius*2) * 0.5f));
- const ImVec4 col = ImGui::GetStyleColorVec4(ImGuiCol_ButtonHovered);
- const ImVec4 bg = ImGui::GetStyleColorVec4(ImGuiCol_Button);
- ImGui::LoadingIndicatorCircle(radius, bg, col, 10, 4.0f);
+ const ImVec4 col = ImGui::GetStyleColorVec4(ImGuiCol_LoadingIndicatorFg);
+ const ImVec4 bg = ImGui::GetStyleColorVec4(ImGuiCol_LoadingIndicatorBg);
+ ImGui::LoadingIndicatorCircle(radius, bg, col, 10, 4.0f, 0.0f);
+
+ ImGui::Dummy(ImVec2(200,200));
}
ImGui::PopFont();
diff --git a/src/ui/ui_invoices.cpp b/src/ui/ui_invoices.cpp
index ffdfb9b..e7872d1 100644
--- a/src/ui/ui_invoices.cpp
+++ b/src/ui/ui_invoices.cpp
@@ -49,11 +49,13 @@ static void _set_active_invoice(invoice inv)
void ui::destroy_invoices()
{
- memops::unalloc(invoice_items_buffer);
- memops::unalloc(activity_buffer);
+ // Currently causes crash because of multithreaded imports.
+ // Main thread needs to be locked.
+ //memops::unalloc(invoice_items_buffer);
+ //memops::unalloc(activity_buffer);
- invoice_items_buffer = 0;
- activity_buffer = 0;
+ //invoice_items_buffer = 0;
+ //activity_buffer = 0;
}
void ui::setup_invoices()
@@ -497,6 +499,9 @@ static void draw_send_options()
_reload_activities();
}
+ else {
+ // @TODO show failure reason
+ }
});
}
// if (ImGui::Selectable(locale::get("ui.sendAs.einvoice"), false)) {