diff options
Diffstat (limited to 'src/ui')
| -rw-r--r-- | src/ui/imgui_extensions.cpp | 42 | ||||
| -rw-r--r-- | src/ui/ui_expenses.cpp | 6 | ||||
| -rw-r--r-- | src/ui/ui_invoices.cpp | 6 |
3 files changed, 54 insertions, 0 deletions
diff --git a/src/ui/imgui_extensions.cpp b/src/ui/imgui_extensions.cpp index 8485dbf..483f5f6 100644 --- a/src/ui/imgui_extensions.cpp +++ b/src/ui/imgui_extensions.cpp @@ -6,6 +6,7 @@ #include "config.hpp" #include "locales.hpp" #include "administration.hpp" +#include "tinyfiledialogs.h" namespace ImGui { @@ -42,6 +43,47 @@ namespace ImGui } } + bool FormFileSelector(char* buffer) + { + bool result = false; + float widthAvailable = ImGui::GetContentRegionAvail().x; + ImGui::SetNextItemWidth(widthAvailable*0.5f); + + if (ImGui::Button("Select file...")) + { + // You can adjust filters, title, default path + const char *filterPatterns[] = { "*.png", "*.jpg", "*.pdf", "*" }; + const char *file = tinyfd_openFileDialog( + "Choose a file", // dialog title + NULL, // default path + 4, // number of filter patterns + filterPatterns, // filter patterns array + NULL, // single filter description (can be NULL) + 0); // allowMultiple (0 = single) + if (file) + { + strops_copy(buffer, file, MAX_LEN_PATH); + buffer[MAX_LEN_PATH-1] = '\0'; + result = true; + } + } + + if (buffer[0] != '\0') + { + ImGui::SameLine(); + if (ImGui::Button("Clear")) + { + buffer[0] = '\0'; + result = true; + } + ImGui::SameLine(); + ImGui::TextWrapped("Selected: %s", buffer); + + } + + return result; + } + void FormCountryCombo(char* buffer, size_t buf_size) { const char* selected_country = 0; diff --git a/src/ui/ui_expenses.cpp b/src/ui/ui_expenses.cpp index 9094d30..92f9c7c 100644 --- a/src/ui/ui_expenses.cpp +++ b/src/ui/ui_expenses.cpp @@ -85,6 +85,12 @@ static void draw_expense_form(invoice* buffer, bool viewing_only = false) ImGui::Separator(); + if (ImGui::FormFileSelector(buffer->document.original_path)) { + buffer->document.copy_path[0] = 0; + } + + ImGui::Separator(); + ImGui::Text(localize("invoice.form.supplier")); draw_contact_form_ex(&buffer->supplier, false, true); diff --git a/src/ui/ui_invoices.cpp b/src/ui/ui_invoices.cpp index 0ef3fb2..fdeafc6 100644 --- a/src/ui/ui_invoices.cpp +++ b/src/ui/ui_invoices.cpp @@ -206,6 +206,12 @@ static void draw_invoice_form(invoice* buffer, bool viewing_only = false) ImGui::Separator(); + if (ImGui::FormFileSelector(buffer->document.original_path)) { + buffer->document.copy_path[0] = 0; + } + + ImGui::Separator(); + ImGui::Text(localize("invoice.form.billinginformation")); draw_contact_form_ex(&buffer->customer, false, true); |
