diff --git a/source/ubl-settings-datetime.c b/source/ubl-settings-datetime.c index c2fbf0f..d88a4cb 100644 --- a/source/ubl-settings-datetime.c +++ b/source/ubl-settings-datetime.c @@ -67,40 +67,43 @@ void yon_save_parameters(main_window *widgets){ } void on_config_save(GtkWidget *, main_window *widgets){ - main_config.load_mode=3; + main_config.save_config=2; yon_save_parameters(widgets); yon_save_proceed(NULL,YON_CONFIG_BOTH,config_get_global_command,NULL); } void on_config_save_global(GtkWidget *, main_window *widgets){ - main_config.load_mode=0; + main_config.save_config=0; yon_save_parameters(widgets); - yon_save_proceed(NULL,YON_CONFIG_BOTH,config_get_global_command,NULL); + yon_save_proceed(NULL,YON_CONFIG_GLOBAL,config_get_global_command,NULL); } void on_config_save_local(GtkWidget *, main_window *widgets){ - main_config.load_mode=1; + main_config.save_config=1; yon_save_parameters(widgets); - yon_save_proceed(NULL,YON_CONFIG_BOTH,config_get_global_command,NULL); + yon_save_proceed(NULL,YON_CONFIG_LOCAL,config_get_global_command,NULL); } void on_config_save_custom(GtkWidget *, main_window *widgets){ - main_config.load_mode=3; + main_config.save_config=3; yon_save_parameters(widgets); - yon_save_proceed(NULL,YON_CONFIG_BOTH,config_get_global_command,NULL); + yon_save_proceed(NULL,YON_CONFIG_CUSTOM,config_get_global_command,NULL); } void on_config_load_global(){ + main_config.load_mode=1; yon_load_proceed(YON_CONFIG_GLOBAL); } void on_config_load_local(){ + main_config.load_mode=0; yon_load_proceed(YON_CONFIG_LOCAL); } void on_config_load_custom(){ + main_config.load_mode=2; yon_load_proceed(YON_CONFIG_CUSTOM); } @@ -139,6 +142,31 @@ void yon_load_proceed(YON_CONFIG_TYPE type){ } } +void on_save_done(main_window *widgets, config_str output, int size){ + char *final_output = yon_char_parsed_to_string(output,size,""); + if (final_output){ + printf("%s\n",final_output); + free(final_output); + } + yon_char_parsed_free(output,size); + yon_interface_update(widgets); + textdomain(template_ui_LocaleName); + switch (main_config.save_config){ + case 0: + yon_ubl_status_box_render(GLOBAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); + break; + case 1: + yon_ubl_status_box_render(LOCAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); + break; + case 2: + case 3: + yon_ubl_status_box_render(GLOBAL_LOCAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); + break; + } + textdomain(LocaleName); + +} + void yon_interface_update(main_window *widgets){ char *ntp = config(NTPSERVERS_parameter); char *zone = config(ZONE_parameter); @@ -436,6 +464,7 @@ void yon_main_window_complete(main_window *widgets){ yon_load_proceed(YON_CONFIG_LOCAL); yon_interface_update(widgets); + yon_save_window_set_postsave_function(on_save_done,widgets); } int main(int argc, char *argv[]){ diff --git a/source/ubl-settings-datetime.h b/source/ubl-settings-datetime.h index a97f214..dad2bdb 100644 --- a/source/ubl-settings-datetime.h +++ b/source/ubl-settings-datetime.h @@ -59,6 +59,7 @@ char *local; typedef struct { template_config_fields + int save_config; char *ntp_default; } config; @@ -141,4 +142,5 @@ void on_date_cancel(GtkWidget *, main_window *widgets); config_str yon_char_parsed_sort(config_str parsed, int size); -int yon_char_parsed_compare(const void *a, const void *b); \ No newline at end of file +int yon_char_parsed_compare(const void *a, const void *b); +void on_save_done(main_window *widgets, config_str output, int size); \ No newline at end of file