From 8808c195069e4dcf44218ebf7ca481a4c695fb12 Mon Sep 17 00:00:00 2001 From: Aldrik Ramaekers Date: Mon, 11 Mar 2024 21:47:49 +0100 Subject: export results to json,csv,xml format --- src/main.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp index 55487f2..bcbc4df 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -9,6 +9,7 @@ #include "platform.h" #include "image.h" #include "config.h" +#include "export.h" #include @@ -131,7 +132,7 @@ static void _ts_create_popups() { } } -static int _ts_create_menu() { +static int _ts_create_menu(int window_w, int window_h) { int menu_bar_h = 0; ImGui::PushStyleColor(ImGuiCol_PopupBg, ImGui::Spectrum::Color(0xDDDDDD)); ImGui::PushStyleVar(ImGuiStyleVar_PopupBorderSize, 1.0f); @@ -140,7 +141,9 @@ static int _ts_create_menu() { if (ImGui::BeginMenu("File")) { //ImGui::MenuItem("Open", "CTRL+O"); - //ImGui::MenuItem("Save", "CTRL+S"); + if (ImGui::MenuItem("Save As")) { + ifd::FileDialog::Instance().Save("FileSaveAsDialog", "Save results to file", "File (*.csv;*.json;*.xml){.csv,.json,.xml}"); + } ImGui::Separator(); if (ImGui::MenuItem("Exit")) { program_running = false; @@ -167,6 +170,14 @@ static int _ts_create_menu() { _ts_create_popups(); + if (ifd::FileDialog::Instance().IsDone("FileSaveAsDialog", window_w, window_h)) { + if (ifd::FileDialog::Instance().HasResult()) { + std::string res = ifd::FileDialog::Instance().GetResult().u8string(); + ts_export_result(current_search_result, (const utf8_int8_t *)res.c_str()); + } + ifd::FileDialog::Instance().Close(); + } + return menu_bar_h; } @@ -356,7 +367,7 @@ void ts_create_gui(int window_w, int window_h) { ImGuiWindowFlags_MenuBar); ImGui::PopStyleVar(); - int menu_bar_h = _ts_create_menu(); + int menu_bar_h = _ts_create_menu(window_w, window_h); float pos_y = 0; pos_y += menu_bar_h + 15.0f; -- cgit v1.2.3-70-g09d2