diff options
Diffstat (limited to 'src/ui/ui_settings.cpp')
| -rw-r--r-- | src/ui/ui_settings.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/ui/ui_settings.cpp b/src/ui/ui_settings.cpp index 892e580..1f9fe5a 100644 --- a/src/ui/ui_settings.cpp +++ b/src/ui/ui_settings.cpp @@ -35,6 +35,7 @@ u32 cost_center_count; cost_center* cost_centers = 0; static int select_company_tab = 0; +static ai_service new_service; void ui_destroy_settings() { @@ -54,6 +55,8 @@ void ui_setup_settings() cost_center_count = administration_cost_center_count(); cost_centers = (cost_center*)malloc(cost_center_count * sizeof(cost_center)); administration_cost_center_get_all(cost_centers); + + new_service = administration_get_ai_service(); } static void ui_draw_vat_rates() @@ -330,6 +333,39 @@ static void ui_draw_cost_centers() } } +static void ui_draw_services() +{ + // AI service + if (ImGui::CollapsingHeader(localize("settings.services.ai_service"))) + { + char* services[1] = { + "OpenAI" + }; + + if (ImGui::BeginCombo(localize("settings.services.ai_service.provider"), services[new_service.provider])) + { + for (u32 n = 0; n < 1; n++) + { + bool is_selected = n == (uint32_t)new_service.provider; + if (ImGui::Selectable(services[n], is_selected)) { + new_service.provider = (ai_provider)n; + } + } + ImGui::EndCombo(); + } + + ImGui::InputTextWithHint(localize("settings.services.ai_service.pubkey"), localize("settings.services.ai_service.pubkey"), + new_service.api_key_public, sizeof(new_service.api_key_public)); + + ImGui::InputTextWithHint(localize("settings.services.ai_service.privkey"), localize("settings.services.ai_service.privkey"), + new_service.api_key_private, sizeof(new_service.api_key_private)); + + if (ImGui::Button(localize("form.save"))) { + administration_set_ai_service(new_service); + } + } +} + void ui_draw_settings() { if (ImGui::BeginTabBar("SettingsTabBar")) @@ -360,6 +396,11 @@ void ui_draw_settings() ui_draw_cost_centers(); ImGui::EndTabItem(); } + if (ImGui::BeginTabItem(localize("settings.table.services"))) + { + ui_draw_services(); + ImGui::EndTabItem(); + } ImGui::EndTabBar(); } }
\ No newline at end of file |
