summaryrefslogtreecommitdiff
path: root/src/ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/imgui_extensions.cpp42
-rw-r--r--src/ui/ui_expenses.cpp6
-rw-r--r--src/ui/ui_invoices.cpp6
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);