Merge pull request 'master' (#6) from YanTheKaller/ubl-settings-keyboard:master into master

Reviewed-on: #6
pull/15/head^2 v2.0
Dmitry Razumov 7 months ago
commit d0232cf2ac

@ -112,51 +112,59 @@ gboolean yon_interface_update(main_window *widgets){
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NumLockCombo),0); gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NumLockCombo),0);
GtkTreeIter iter; GtkTreeIter iter;
gtk_entry_set_text(GTK_ENTRY(widgets->OptionsEntry),DEFAULT_LABEL); gtk_entry_set_text(GTK_ENTRY(widgets->OptionsEntry),DEFAULT_LABEL);
char *name = yon_config_get_by_key("XkbModel"); {
char *id; char *name = yon_config_get_by_key(model_parameter);
if (name) { char *id;
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->modelsList),&iter); if (name) {
for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->modelsList),&iter)){ int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->modelsList),&iter);
gtk_tree_model_get(GTK_TREE_MODEL(widgets->modelsList),&iter,0,&id,-1); for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->modelsList),&iter)){
if (!strcmp(name,id)){ gtk_tree_model_get(GTK_TREE_MODEL(widgets->modelsList),&iter,1,&id,-1);
gtk_combo_box_set_active_iter(GTK_COMBO_BOX(widgets->ModelCombo),&iter); if (!strcmp(name,id)){
break; gtk_combo_box_set_active_iter(GTK_COMBO_BOX(widgets->ModelCombo),&iter);
break;
}
} }
} } else gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ModelCombo),0);
} else gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ModelCombo),0); free(name);
free(name);
name = yon_config_get_by_key("XkbOptions");
if (name) {
char *id, *rname;
gtk_entry_set_text(GTK_ENTRY(widgets->OptionsEntry),name);
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(main_config.options_list),&iter);
for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(main_config.options_list),&iter)){
gtk_tree_model_get(GTK_TREE_MODEL(main_config.options_list),&iter,0,&id,1,&rname,-1);
if (!strcmp(id,name)) gtk_entry_set_text(GTK_ENTRY(widgets->OptionsEntry),rname);
}
} }
free(name); {
name = yon_config_get_by_key("NUMLOCK"); char *name = yon_config_get_by_key(options_parameter);
if (name) { if (name) {
if (!strcmp(name,"yes")) gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NumLockCombo),1); char *id, *rname;
else if (!strcmp(name,"no")) gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NumLockCombo),2); gtk_entry_set_text(GTK_ENTRY(widgets->OptionsEntry),name);
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(main_config.options_list),&iter);
for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(main_config.options_list),&iter)){
gtk_tree_model_get(GTK_TREE_MODEL(main_config.options_list),&iter,0,&id,1,&rname,-1);
if (!strcmp(id,name)){
gtk_entry_set_text(GTK_ENTRY(widgets->OptionsEntry),rname);
break;
}
}
}
free(name);
} }
else gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NumLockCombo),0); {
free(name); char *name = yon_config_get_by_key(num_lock_boot_parameter);
if (main_config.layouts_list){ if (name) {
int size=0; if (!strcmp(name,"yes")) gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NumLockCombo),1);
name = yon_config_get_by_key("XkbLayout"); else if (!strcmp(name,"no")) gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NumLockCombo),2);
config_str layouts = yon_char_parse(name,&size,","); }
GtkTreeIter iter; else gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NumLockCombo),0);
char *rid,*rname; free(name);
gtk_list_store_clear(widgets->layoutsList); if (main_config.layouts_list){
for (int i=0;i<size;i++){ int size=0;
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(main_config.layouts_list),&iter); name = yon_config_get_by_key(keyboard_layout_parameter);
for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(main_config.layouts_list),&iter)){ config_str layouts = yon_char_parse(name,&size,",");
gtk_tree_model_get(GTK_TREE_MODEL(main_config.layouts_list),&iter,0,&rid,1,&rname,-1); GtkTreeIter iter;
if (!strcmp(layouts[i],rid)){ char *rid,*rname;
gtk_list_store_append(widgets->layoutsList,&iter); gtk_list_store_clear(widgets->layoutsList);
gtk_list_store_set(widgets->layoutsList,&iter,0,rname,1,rid,2,0,-1); for (int i=0;i<size;i++){
for_iter(main_config.layouts_list,&iter){
gtk_tree_model_get(GTK_TREE_MODEL(main_config.layouts_list),&iter,0,&rid,1,&rname,-1);
if (!strcmp(layouts[i],rid)){
gtk_list_store_append(widgets->layoutsList,&iter);
gtk_list_store_set(widgets->layoutsList,&iter,0,rname,1,rid,2,0,-1);
}
} }
} }
} }

@ -35,11 +35,11 @@
#define options_parameter "XKBOPTIONS" #define options_parameter "XKBOPTIONS"
#define options_parameter_command "ubconfig --source global get keyboard XKBOPTIONS" #define options_parameter_command "ubconfig --source global get keyboard XKBOPTIONS"
#define num_lock_boot_parameter "NUMLOCK" #define num_lock_boot_parameter "NUMLOCK"
#define num_lock_boot_parameter_command "ubconfig --source global get config NUMLOCK" #define num_lock_boot_parameter_command "ubconfig --source global get keyboard NUMLOCK"
#define yon_config_get_custom_command(target) yon_char_unite("ubconfig --source ",target," get config NUMLOCK; ubconfig --source ",target," get keyboard XKBMODEL XKBLAYOUT XKBOPTIONS",NULL) #define yon_config_get_custom_command(target) yon_char_unite("ubconfig --source ",target," get keyboard XKBMODEL XKBLAYOUT XKBOPTIONS NUMLOCK",NULL)
#define config_get_local_command "ubconfig --source system get config NUMLOCK; ubconfig --source global get keyboard XKBMODEL XKBLAYOUT XKBOPTIONS" #define config_get_local_command "ubconfig --source system get keyboard XKBMODEL XKBLAYOUT XKBOPTIONS NUMLOCK"
#define config_get_global_command "ubconfig --source global get config NUMLOCK; ubconfig --source global get keyboard XKBMODEL XKBLAYOUT XKBOPTIONS" #define config_get_global_command "ubconfig --source global get keyboard XKBMODEL XKBLAYOUT XKBOPTIONS NUMLOCK"
#define config_get_default_command "" #define config_get_default_command ""
#define config_get_global_only_parameters "" #define config_get_global_only_parameters ""

Loading…
Cancel
Save