Sun, 27 Oct 2024 18:24:37 +0100
add settings window and implement repository editing
/* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright 2024 Olaf Wintermann. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #ifndef IDAV_SETTINGS_H #define IDAV_SETTINGS_H #include "application.h" #include "config.h" #ifdef __cplusplus extern "C" { #endif typedef struct SettingsWindow { DavConfig *config; DavBool config_saved; UiList *repos; UiInteger *repo_tabview; UiString *repo_name; UiString *repo_url; UiList *repo_credentials; UiString *repo_user; UiString *repo_password; UiInteger *repo_encryption; UiList *repo_keys; UiList *repo_tls_versions; UiString *repo_cacert; UiInteger *repo_disable_verification; int selected_repo; } SettingsWindow; void settings_window_open(); void settings_ok(UiEvent *event, void *userdata); void settings_cancel(UiEvent *event, void *userdata); void settings_init(UiObject *obj, SettingsWindow *settings); /* * Open repository edit page for the repository settings->repos[repo_index] * This function will set settings->selected_repo to repo_index */ void settings_edit_repository(SettingsWindow *settings, int repo_index); /* * Store settings from the settings window into the DavCfgRepository object. * * This functions unsets settings->selected_repo and should only be called * when switching back to the repo list or closing the settings window */ void settings_store_repository(SettingsWindow *settings); void settings_update_repolist(SettingsWindow *settings); void* settings_repolist_getvalue(DavCfgRepository *repo, int col); void settings_reload_keys(SettingsWindow *settings); const char* dav_tlsversion2str(int value); void settings_reload_credentials(SettingsWindow *settings); #ifdef __cplusplus } #endif #endif /* IDAV_SETTINGS_H */