--- a/application/settings.c Sun Dec 07 20:00:33 2025 +0100 +++ b/application/settings.c Sat Dec 13 15:58:58 2025 +0100 @@ -54,10 +54,10 @@ UiListSelection *selection = event->eventdata; SettingsWindow *settings = event->window; if(selection->count > 0) { - ui_set_group(event->obj->ctx, SETTINGS_STATE_REPOLIST_SELECTED); + ui_set_state(event->obj->ctx, SETTINGS_STATE_REPOLIST_SELECTED); settings->selected_repo = selection->rows[0]; } else { - ui_unset_group(event->obj->ctx, SETTINGS_STATE_REPOLIST_SELECTED); + ui_unset_state(event->obj->ctx, SETTINGS_STATE_REPOLIST_SELECTED); } } @@ -87,7 +87,7 @@ dav_repository_remove_and_free(settings->config, repo); settings_update_repolist(settings); settings->selected_repo = -1; - ui_unset_group(event->obj->ctx, SETTINGS_STATE_REPOLIST_SELECTED); + ui_unset_state(event->obj->ctx, SETTINGS_STATE_REPOLIST_SELECTED); } static void editrepo_go_back(UiEvent *event, void *userdata) { @@ -341,10 +341,10 @@ UiListSelection *sel = event->eventdata; if(sel->count > 0) { settings->credentials_location_selected_index = sel->rows[0]; - ui_set_group(event->obj->ctx, SETTINGS_STATE_CREDENTIALS_LOCATION_SELECTED); + ui_set_state(event->obj->ctx, SETTINGS_STATE_CREDENTIALS_LOCATION_SELECTED); } else { settings->credentials_location_selected_index = -1; - ui_unset_group(event->obj->ctx, SETTINGS_STATE_CREDENTIALS_LOCATION_SELECTED); + ui_unset_state(event->obj->ctx, SETTINGS_STATE_CREDENTIALS_LOCATION_SELECTED); } } @@ -516,13 +516,13 @@ ui_newline(dialog); ui_llabel(dialog, .label = "Type"); - ui_combobox(dialog, .list = wdata->type, .groups = UI_GROUPS(ADDKEY_DIALOG_STATE_NO_IMPORT)); + ui_dropdown(dialog, .list = wdata->type, .states = UI_GROUPS(ADDKEY_DIALOG_STATE_NO_IMPORT)); ui_newline(dialog); ui_llabel(dialog, .value = wdata->message, .colspan = 2); } - ui_set_group(dialog->ctx, ADDKEY_DIALOG_STATE_NO_IMPORT); + ui_set_state(dialog->ctx, ADDKEY_DIALOG_STATE_NO_IMPORT); ui_list_setselection(wdata->type, 0); ui_show(dialog); @@ -547,12 +547,12 @@ DavCfgKey *key = ui_list_get(settings->keys_list, sel->rows[0]); if(key) { settings_edit_key(settings, key); - ui_set_group(event->obj->ctx, SETTINGS_STATE_KEYS_SELECTED); + ui_set_state(event->obj->ctx, SETTINGS_STATE_KEYS_SELECTED); } } else { settings->keys_selected_index = -1; settings_clear_key(settings); - ui_unset_group(event->obj->ctx, SETTINGS_STATE_KEYS_SELECTED); + ui_unset_state(event->obj->ctx, SETTINGS_STATE_KEYS_SELECTED); } } @@ -626,7 +626,7 @@ PwdStore *pwdstore = get_pwdstore(); pwdstore = pwdstore ? pwdstore_clone(pwdstore) : pwdstore_new(); - UiObject *obj = ui_simple_window("Settings", NULL); + UiObject *obj = ui_simple_window("Settings"); ui_context_closefunc(obj->ctx, settings_close, NULL); SettingsWindow *wdata = ui_malloc(obj->ctx, sizeof(SettingsWindow)); memset(wdata, 0, sizeof(SettingsWindow)); @@ -650,8 +650,8 @@ ui_grid(obj, .margin = 16, .columnspacing = 10, .rowspacing = 10, .fill = TRUE) { ui_hbox(obj, .spacing = 4) { ui_button(obj, .label = "Add", .onclick = repolist_add); - ui_button(obj, .label = "Edit", .onclick = repolist_edit, .groups = UI_GROUPS(SETTINGS_STATE_REPOLIST_SELECTED)); - ui_button(obj, .label = "Remove", .onclick = repolist_remove, .groups = UI_GROUPS(SETTINGS_STATE_REPOLIST_SELECTED)); + ui_button(obj, .label = "Edit", .onclick = repolist_edit, .states = UI_GROUPS(SETTINGS_STATE_REPOLIST_SELECTED)); + ui_button(obj, .label = "Remove", .onclick = repolist_remove, .states = UI_GROUPS(SETTINGS_STATE_REPOLIST_SELECTED)); } ui_newline(obj); @@ -687,7 +687,7 @@ ui_llabel(obj, .label = "Credentials", .style = UI_LABEL_STYLE_TITLE, .colspan = 2); ui_newline(obj); ui_hbox(obj, .spacing = 4, .colspan = 2) { - ui_combobox(obj, .list = wdata->repo_credentials); + ui_dropdown(obj, .list = wdata->repo_credentials); ui_button(obj, .label = "New Credentials", .onclick = credentials_new); } ui_newline(obj); @@ -707,12 +707,12 @@ ui_llabel(obj, .label = "Encryption", .style = UI_LABEL_STYLE_TITLE, .colspan = 2); ui_newline(obj); - ui_checkbox(obj, .label = "Enable client-side encryption", .value = wdata->repo_encryption, .colspan = 2, .enable_group = SETTINGS_STATE_REPO_ENCRYPTION); + ui_checkbox(obj, .label = "Enable client-side encryption", .value = wdata->repo_encryption, .colspan = 2, .enable_state = SETTINGS_STATE_REPO_ENCRYPTION); ui_newline(obj); ui_llabel(obj, .label = "Default key"); ui_hbox(obj, .spacing = 4) { - ui_combobox(obj, .list = wdata->repo_keys, .groups = UI_GROUPS(SETTINGS_STATE_REPO_ENCRYPTION)); - ui_button(obj, .label = "Generate Key", .onclick = keys_add, .onclickdata = "repo", .groups = UI_GROUPS(SETTINGS_STATE_REPO_ENCRYPTION)); + ui_dropdown(obj, .list = wdata->repo_keys, .states = UI_GROUPS(SETTINGS_STATE_REPO_ENCRYPTION)); + ui_button(obj, .label = "Generate Key", .onclick = keys_add, .onclickdata = "repo", .states = UI_GROUPS(SETTINGS_STATE_REPO_ENCRYPTION)); } ui_newline(obj); @@ -727,7 +727,7 @@ ui_llabel(obj, .label = "TLS Version"); ui_hbox0(obj) { - ui_combobox(obj, .list = wdata->repo_tls_versions); + ui_dropdown(obj, .list = wdata->repo_tls_versions); } ui_newline(obj); ui_checkbox(obj, .label = "Disable TLS verification", .value = wdata->repo_disable_verification, .colspan = 2); @@ -751,22 +751,22 @@ ui_vbox(obj, .spacing = 4) { ui_hbox(obj, .spacing = 4) { ui_button(obj, .label = "Add", .onclick = credentials_add); - ui_button(obj, .label = "Remove", .onclick = credentials_remove, .groups = UI_GROUPS(SETTINGS_STATE_CREDENTIALS_SELECTED)); + ui_button(obj, .label = "Remove", .onclick = credentials_remove, .states = UI_GROUPS(SETTINGS_STATE_CREDENTIALS_SELECTED)); } ui_listview(obj, .list = wdata->credentials_users, .fill = TRUE, .onselection = credentials_onselect); } ui_grid(obj, .columnspacing = 30, .rowspacing = 10) { ui_llabel(obj, .label = "Identifier"); - ui_textfield(obj, .value = wdata->credentials_id, .hexpand = TRUE, .groups = UI_GROUPS(SETTINGS_STATE_CREDENTIALS_SELECTED)); + ui_textfield(obj, .value = wdata->credentials_id, .hexpand = TRUE, .states = UI_GROUPS(SETTINGS_STATE_CREDENTIALS_SELECTED)); ui_newline(obj); ui_llabel(obj, .label = "User"); - ui_textfield(obj, .value = wdata->credentials_user, .hexpand = TRUE, .groups = UI_GROUPS(SETTINGS_STATE_CREDENTIALS_SELECTED)); + ui_textfield(obj, .value = wdata->credentials_user, .hexpand = TRUE, .states = UI_GROUPS(SETTINGS_STATE_CREDENTIALS_SELECTED)); ui_newline(obj); ui_llabel(obj, .label = "Password"); - ui_passwordfield(obj, .value = wdata->credentials_password, .hexpand = TRUE, .groups = UI_GROUPS(SETTINGS_STATE_CREDENTIALS_SELECTED)); + ui_passwordfield(obj, .value = wdata->credentials_password, .hexpand = TRUE, .states = UI_GROUPS(SETTINGS_STATE_CREDENTIALS_SELECTED)); ui_newline(obj); @@ -784,13 +784,13 @@ #else ui_callback credentials_activate_callback = NULL; #endif - ui_listview(obj, .list = wdata->credentials_locations, .onactivate = credentials_activate_callback, .onselection = credentials_location_onselect, .colspan = 2, .fill = TRUE, .groups = UI_GROUPS(SETTINGS_STATE_CREDENTIALS_SELECTED)); + ui_listview(obj, .list = wdata->credentials_locations, .onactivate = credentials_activate_callback, .onselection = credentials_location_onselect, .colspan = 2, .fill = TRUE, .states = UI_GROUPS(SETTINGS_STATE_CREDENTIALS_SELECTED)); ui_vbox(obj, .spacing = 4) { - ui_button(obj, .label = "Add", .onclick = credentials_location_add, .groups = UI_GROUPS(SETTINGS_STATE_CREDENTIALS_SELECTED)); - ui_button(obj, .label = "Edit", .onclick = credentials_location_edit, .groups = UI_GROUPS(SETTINGS_STATE_CREDENTIALS_SELECTED, SETTINGS_STATE_CREDENTIALS_LOCATION_SELECTED)); - ui_button(obj, .label = "Remove", .onclick = credentials_location_remove, .groups = UI_GROUPS(SETTINGS_STATE_CREDENTIALS_SELECTED, SETTINGS_STATE_CREDENTIALS_LOCATION_SELECTED)); - ui_button(obj, .label = "Move Up", .onclick = credentials_location_up, .groups = UI_GROUPS(SETTINGS_STATE_CREDENTIALS_SELECTED, SETTINGS_STATE_CREDENTIALS_LOCATION_SELECTED)); - ui_button(obj, .label = "Move Down", .onclick = credentials_location_down, .groups = UI_GROUPS(SETTINGS_STATE_CREDENTIALS_SELECTED, SETTINGS_STATE_CREDENTIALS_LOCATION_SELECTED)); + ui_button(obj, .label = "Add", .onclick = credentials_location_add, .states = UI_GROUPS(SETTINGS_STATE_CREDENTIALS_SELECTED)); + ui_button(obj, .label = "Edit", .onclick = credentials_location_edit, .states = UI_GROUPS(SETTINGS_STATE_CREDENTIALS_SELECTED, SETTINGS_STATE_CREDENTIALS_LOCATION_SELECTED)); + ui_button(obj, .label = "Remove", .onclick = credentials_location_remove, .states = UI_GROUPS(SETTINGS_STATE_CREDENTIALS_SELECTED, SETTINGS_STATE_CREDENTIALS_LOCATION_SELECTED)); + ui_button(obj, .label = "Move Up", .onclick = credentials_location_up, .states = UI_GROUPS(SETTINGS_STATE_CREDENTIALS_SELECTED, SETTINGS_STATE_CREDENTIALS_LOCATION_SELECTED)); + ui_button(obj, .label = "Move Down", .onclick = credentials_location_down, .states = UI_GROUPS(SETTINGS_STATE_CREDENTIALS_SELECTED, SETTINGS_STATE_CREDENTIALS_LOCATION_SELECTED)); } } } @@ -802,20 +802,20 @@ ui_vbox(obj, .spacing = 4) { ui_hbox(obj, .spacing = 4) { ui_button(obj, .label = "Add", .onclick = keys_add); - ui_button(obj, .label = "Remove", .onclick = keys_remove, .groups = UI_GROUPS(SETTINGS_STATE_KEYS_SELECTED)); + ui_button(obj, .label = "Remove", .onclick = keys_remove, .states = UI_GROUPS(SETTINGS_STATE_KEYS_SELECTED)); } ui_listview(obj, .list = wdata->keys_list, .fill = TRUE, .onselection = keys_onselect, .getvalue = keylist_getvalue); } ui_grid(obj, .columnspacing = 30, .rowspacing = 10) { ui_llabel(obj, .label = "Identifier"); - ui_textfield(obj, .value = wdata->key_name, .groups = UI_GROUPS(SETTINGS_STATE_KEYS_SELECTED)); + ui_textfield(obj, .value = wdata->key_name, .states = UI_GROUPS(SETTINGS_STATE_KEYS_SELECTED)); ui_newline(obj); ui_llabel(obj, .label = "Type"); - ui_textfield(obj, .value = wdata->key_type, .groups = UI_GROUPS(SETTINGS_STATE_DISABLED)); + ui_textfield(obj, .value = wdata->key_type, .states = UI_GROUPS(SETTINGS_STATE_DISABLED)); ui_newline(obj); ui_llabel(obj, .label = "File"); - ui_textfield(obj, .value = wdata->key_file, .groups = UI_GROUPS(SETTINGS_STATE_KEYS_SELECTED)); + ui_textfield(obj, .value = wdata->key_file, .states = UI_GROUPS(SETTINGS_STATE_KEYS_SELECTED)); } } } @@ -1273,7 +1273,7 @@ ui_list_update(settings->credentials_locations); - ui_set_group(settings->obj->ctx, SETTINGS_STATE_CREDENTIALS_SELECTED); + ui_set_state(settings->obj->ctx, SETTINGS_STATE_CREDENTIALS_SELECTED); } void settings_credentials_clear(SettingsWindow *settings) { @@ -1287,7 +1287,7 @@ ui_list_clear(settings->credentials_locations); ui_list_update(settings->credentials_locations); - ui_unset_group(settings->obj->ctx, SETTINGS_STATE_CREDENTIALS_SELECTED); + ui_unset_state(settings->obj->ctx, SETTINGS_STATE_CREDENTIALS_SELECTED); } int settings_credentials_save(SettingsWindow *settings) {