You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
126 lines
4.9 KiB
126 lines
4.9 KiB
#include "ubl-settings-keyboard.h"
|
|
|
|
void on_save_done(main_window *, 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);
|
|
switch (main_config.save_config){
|
|
case YON_CONFIG_GLOBAL:
|
|
yon_ubl_status_box_render(yon_char_get_localised_from_lib(GLOBAL_SAVE_SUCCESS_LABEL),BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
break;
|
|
case YON_CONFIG_LOCAL:
|
|
yon_ubl_status_box_render(yon_char_get_localised_from_lib(LOCAL_SAVE_SUCCESS_LABEL),BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
break;
|
|
case YON_CONFIG_BOTH:
|
|
yon_ubl_status_box_render(yon_char_get_localised_from_lib(GLOBAL_LOCAL_SAVE_SUCCESS_LABEL),BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
void yon_interface_save(main_window *widgets){
|
|
if (gtk_switch_get_active(GTK_SWITCH(widgets->DefaultLayoutsSwitch))){
|
|
yon_config_remove_by_key(keyboard_layout_parameter);
|
|
} else if (yon_config_check_ignore(keyboard_layout_parameter)){
|
|
GtkTreeModel *model = GTK_TREE_MODEL(widgets->LayoutsList);
|
|
GtkTreeIter iter;
|
|
int parameters_size;
|
|
config_str parameters = NULL;
|
|
for_iter(model,&iter){
|
|
char *target;
|
|
gtk_tree_model_get(model,&iter,0,&target,-1);
|
|
yon_char_parsed_add_or_create_if_exists(parameters,¶meters_size,target);
|
|
}
|
|
char *final = yon_char_parsed_to_string(parameters,parameters_size,",");
|
|
yon_config_register(keyboard_layout_parameter,keyboard_layout_parameter_command,final);
|
|
}
|
|
}
|
|
|
|
void on_config_global_local_save(GtkWidget *, main_window *widgets){
|
|
yon_interface_save(widgets);
|
|
main_config.save_config=YON_CONFIG_BOTH;
|
|
yon_save_proceed(NULL,YON_CONFIG_BOTH,config_get_global_command,NULL);
|
|
}
|
|
|
|
void on_config_local_save(GtkWidget *, main_window *widgets){
|
|
yon_interface_save(widgets);
|
|
main_config.save_config=YON_CONFIG_LOCAL;
|
|
yon_save_proceed("system",YON_CONFIG_LOCAL,config_get_local_command,NULL);
|
|
|
|
}
|
|
|
|
void on_config_global_save(GtkWidget *, main_window *widgets){
|
|
yon_interface_save(widgets);
|
|
main_config.save_config=YON_CONFIG_GLOBAL;
|
|
yon_save_proceed("global",YON_CONFIG_GLOBAL,config_get_global_command,NULL);
|
|
|
|
}
|
|
|
|
void on_config_custom_save(GtkWidget *, main_window *widgets){
|
|
yon_interface_save(widgets);
|
|
main_config.save_config=YON_CONFIG_LOCAL;
|
|
template_saving_window *window = yon_save_proceed(NULL,YON_CONFIG_CUSTOM,yon_config_get_custom_command("system"),NULL);
|
|
if (window){};
|
|
}
|
|
|
|
void on_config_local_load(GtkWidget *,main_window *widgets){
|
|
yon_load_proceed(YON_CONFIG_LOCAL);
|
|
yon_ubl_status_box_render(yon_char_get_localised_from_lib(LOCAL_LOAD_SUCCESS_LABEL),BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
yon_interface_update(widgets);
|
|
main_config.load_mode=1;
|
|
}
|
|
|
|
void on_config_global_load(GtkWidget *,main_window *widgets){
|
|
yon_load_proceed(YON_CONFIG_GLOBAL);
|
|
yon_ubl_status_box_render(yon_char_get_localised_from_lib(GLOBAL_LOAD_SUCCESS_LABEL),BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
yon_interface_update(widgets);
|
|
main_config.load_mode=0;
|
|
|
|
}
|
|
|
|
void on_config_custom_load(GtkWidget *,main_window *widgets){
|
|
yon_load_proceed(YON_CONFIG_CUSTOM);
|
|
textdomain(template_ui_LocaleName);
|
|
yon_ubl_status_box_render(yon_char_get_localised_from_lib(LOCAL_LOAD_SUCCESS_LABEL),BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
textdomain(LocaleName);
|
|
main_config.load_mode=3;
|
|
yon_interface_update(widgets);
|
|
}
|
|
|
|
void yon_load_proceed(YON_CONFIG_TYPE type){
|
|
yon_config_clean();
|
|
if (!yon_char_is_empty(config_get_default_command))
|
|
yon_config_load_config(YON_CONFIG_DEFAULT,config_get_default_command,NULL);
|
|
if (type==YON_CONFIG_GLOBAL){
|
|
yon_config_load_config(type,yon_debug_output("%s\n",config_get_global_command),NULL);
|
|
} else if (type==YON_CONFIG_LOCAL){
|
|
yon_config_load_config(type,config_get_local_command,NULL);
|
|
} else if (type==YON_CONFIG_CUSTOM){
|
|
char *path="";
|
|
textdomain(template_ui_LocaleName);
|
|
GtkWidget *dialog = gtk_file_chooser_dialog_new(template_app_information.app_title,NULL,GTK_FILE_CHOOSER_ACTION_SAVE,CANCEL_LABEL,GTK_RESPONSE_CANCEL,OPEN_LABEL,GTK_RESPONSE_ACCEPT,NULL);
|
|
textdomain(LocaleName);
|
|
gtk_window_set_icon_name(GTK_WINDOW(dialog),"com.ublinux.ubl-settings-services");
|
|
gtk_window_set_title(GTK_WINDOW(dialog),TITLE_LABEL);
|
|
GtkFileFilter *filter = gtk_file_filter_new();
|
|
gtk_file_filter_add_pattern(filter,"*.ini");
|
|
gtk_file_filter_set_name(filter, "*.ini");
|
|
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog),filter);
|
|
gtk_widget_show(dialog);
|
|
int response = gtk_dialog_run(GTK_DIALOG(dialog));
|
|
if (response == GTK_RESPONSE_ACCEPT){
|
|
char *file = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
|
|
if (!yon_char_is_empty(file)){
|
|
path=file;
|
|
}
|
|
gtk_widget_destroy(dialog);
|
|
} else {
|
|
gtk_widget_destroy(dialog);
|
|
}
|
|
char *command = yon_config_get_custom_command(path);
|
|
yon_config_load_config(type,command,NULL);
|
|
}
|
|
} |