From aebcf6aae83c7141cd5fe17378161d3135dfa2d1 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 24 Dec 2024 11:08:11 +0600 Subject: [PATCH] Test fix for saving --- source/libublsettingsui-gtk3-save.c | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/source/libublsettingsui-gtk3-save.c b/source/libublsettingsui-gtk3-save.c index 0e3f9ac..4339977 100644 --- a/source/libublsettingsui-gtk3-save.c +++ b/source/libublsettingsui-gtk3-save.c @@ -113,12 +113,6 @@ struct loaded_config *yon_save_window_get_saved_parameters(template_saving_windo int is_active; gtk_tree_model_get(model,&iter,0,&is_active,1,¶meter,3,&value,-1); if (is_active){ - if (strstr(parameter,"[")){ - char *param = yon_char_divide_search(parameter,"[",-1); - char *param_key = yon_char_divide_search(parameter,"]",-1); - free(parameter); - parameter = yon_char_unite(param,"[\"",param_key,"\"]",NULL); - } char *final_string = yon_char_unite(parameter,"=",value,NULL); yon_char_parsed_add_or_create_if_exists(saved_parameters,&saved_size,final_string); free(final_string); @@ -170,6 +164,22 @@ config_str yon_loaded_config_convert_to_save_command(struct loaded_config *targe return commands; } +int yon_config_parameter_prepare_elements(struct loaded_config *target){ + struct loaded_config *current = NULL; + for_dictionaries(current,target){ + char *parameter = current->key; + if (strstr(parameter,"[")){ + char *param = yon_char_divide_search(parameter,"[",-1); + char *param_key = yon_char_divide_search(parameter,"]",-1); + free(parameter); + parameter = yon_char_unite(param,"[\"",param_key,"\"]",NULL); + return 1; + target->key = parameter; + } + } + return 0; +} + void on_save_parameters(GtkWidget *self, template_saving_window *window){ textdomain(template_ui_LocaleName); yon_ubl_status_box_render(SAVE_PROCESS_LABEL,BACKGROUND_IMAGE_INFO_TYPE); @@ -177,6 +187,7 @@ void on_save_parameters(GtkWidget *self, template_saving_window *window){ int saved_size; struct loaded_config *saved_parameters = yon_save_window_get_saved_parameters(window); + yon_config_parameter_prepare_elements(saved_parameters); int size=0; config_str commands = yon_loaded_config_convert_to_save_command(saved_parameters,&size,window->type!=YON_CONFIG_CUSTOM? yon_config_get_type_path(window->type):window->custom_save_path);