diff --git a/layouts.csv b/layouts.csv index 4a59bcb..c0b9210 100644 --- a/layouts.csv +++ b/layouts.csv @@ -1,68 +1,98 @@ -af;Afrikaans -ar;Arabic -as;Assamese +al;Albanian +et;Amharic +am;Armenian +ara;Arabic +eg;Arabic (Egypt) +iq;Arabic (Iraq) +ma;Arabic (Morocco) +sy;Arabic (Syria) az;Azerbaijani -be;Belarusian +ml;Bambara +bd;Bangla +by;Belarusian +be;Belgian +dz;Berber (Algeria, Latin) +ba;Bosnian +brai;Braille bg;Bulgarian -bn;Bengali -bs;Bosnian -ca;Catalan -cs;Czech -da;Danish -de;German -el;Greek -en;English -es;Spanish -et;Estonian +mm;Burmese +cn;Chinese +hr;Croatian +cz;Czech +dk;Danish +af;Dari +mv;Dhivehi +nl;Dutch +bt;Dzongkha +au;English (Australia) +cm;English (Cameroon) +gh;English (Ghana) +nz;English (New Zealand) +ng;English (Nigeria) +za;English (South Africa) +gb;English (UK) +us;English (US) +epo;Esperanto +ee;Estonian +fo;Faroese +ph;Filipino fi;Finnish fr;French -gu;Gujarati -he;Hebrew -hi;Hindi -hr;Croatian +ca;French (Canada) +cd;French (Democratic Republic of the Congo) +tg;French (Togo) +ge;Georgian +de;German +at;German (Austria) +ch;German (Switzerland) +gr;Greek +il;Hebrew hu;Hungarian -hy;Armenian -id;Indonesian is;Icelandic +in;Indian +id;Indonesian (Latin) +ie;Irish it;Italian -ja;Japanese -ka;Georgian -kk;Kazakh -kn;Kannada -ko;Korean -ks;Kashmiri -ku;Kurdish -ky;Kirghiz -lt;Lithuanian +jp;Japanese +kz;Kazakh +kh;Khmer (Cambodia) +kr;Korean +kg;Kyrgyz +la;Lao lv;Latvian +lt;Lithuanian mk;Macedonian -ml;Malayalam -mr;Marathi -ms;Malay +my;Malay (Jawi, Arabic Keyboard) mt;Maltese -nb;Bokmal -nl;Dutch -nn;Nynorsk -or;Oriya -pa;Punjabi +md;Moldavian +mn;Mongolian +me;Montenegrin +np;Nepali +gn;N'Ko (AZERTY) +no;Norwegian +ir;Persian pl;Polish pt;Portuguese +br;Portuguese (Brazil) ro;Romanian ru;Russian -sa;Sanskrit +rs;Serbian +lk;Sinhala (phonetic) sk;Slovak -sl;Slovenian -sq;Albanian -sr;Serbian -sv;Swedish -ta;Tamil -te;Telugu +si;Slovenian +es;Spanish +latam;Spanish (Latin American) +ke;Swahili (Kenya) +tz;Swahili (Tanzania) +se;Swedish +tw;Taiwanese +tj;Tajik th;Thai +bw;Tswana +tm;Turkmen tr;Turkish -uk;Ukrainian -us;American -vi;Vietnamese -zh;Simplified Chinese -zh;Traditional Chinese -zh;Chinese -zh;Traditional Chinese \ No newline at end of file +ua;Ukrainian +pk;Urdu (Pakistan) +uz;Uzbek +vn;Vietnamese +sn;Wolof \ No newline at end of file diff --git a/source/ubl-settings-keyboard.c b/source/ubl-settings-keyboard.c index f0f1ba3..873b37b 100644 --- a/source/ubl-settings-keyboard.c +++ b/source/ubl-settings-keyboard.c @@ -2,9 +2,6 @@ config main_config; - - - void on_save_done(main_window *, config_str output, int size){ char *final_output = yon_char_parsed_to_string(output,size,""); if (final_output){ @@ -153,7 +150,7 @@ gboolean yon_interface_update(main_window *widgets){ { if (main_config.layouts_list){ for_iter(main_config.layouts_list,&iter){ - gtk_tree_store_set(main_config.layouts_list,&iter,2,0,-1); + gtk_list_store_set(main_config.layouts_list,&iter,2,0,-1); } } char *name = yon_config_get_by_key(num_lock_boot_parameter); @@ -166,7 +163,7 @@ gboolean yon_interface_update(main_window *widgets){ int size=0; name = yon_config_get_by_key(keyboard_layout_parameter); config_str layouts = yon_char_parse(name,&size,","); - GtkTreeIter iter, itar,itor; + GtkTreeIter iter, itar; char *rid,*rname; gtk_list_store_clear(widgets->layoutsList); for (int i=0;ilayoutsList,&itar); gtk_list_store_set(widgets->layoutsList,&itar,0,rname,1,rid,2,1,-1); } - for(int valid = gtk_tree_model_iter_children(GTK_TREE_MODEL(main_config.layouts_list),&itor,&iter);valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(main_config.layouts_list),&itor)){ - gtk_tree_model_get(GTK_TREE_MODEL(main_config.layouts_list),&itor,0,&rid,1,&rname,-1); - - if (!strcmp(layouts[i],rid)){ - gtk_list_store_append(widgets->layoutsList,&itar); - gtk_list_store_set(widgets->layoutsList,&itar,0,rname,1,rid,2,1,-1); - } - } } } } @@ -296,27 +285,17 @@ void on_layouts_accept(GtkWidget *self, dictionary *dict){ layouts_window *window = yon_dictionary_get_data(dict->first->next,layouts_window*); gtk_list_store_clear(widgets->layoutsList); GtkTreeModel *model = GTK_TREE_MODEL(window->list); + GList *list = yon_get_all_selected(GTK_TREE_VIEW(window->MainTree),2); char *name; char *id; - GtkTreeIter iter, lwiter, chiter; - for_iter(model,&lwiter){ - int status; - gtk_tree_model_get(model,&lwiter,0,&name,1,&id,2,&status,-1); - if (status){ - gtk_list_store_append(widgets->layoutsList,&iter); - gtk_list_store_set(widgets->layoutsList,&iter,1,name,0,id,2,1,-1); - } - if (gtk_tree_model_iter_children(model,&chiter,&lwiter)){ - for (int valid2 = 1; valid2; valid2 = gtk_tree_model_iter_next(model,&chiter)){ - char *chid, *chname; - int chstatus; - gtk_tree_model_get(model,&chiter,0,&chname,1,&chid,2,&chstatus,-1); - if (chstatus){ - gtk_list_store_append(widgets->layoutsList,&iter); - gtk_list_store_set(widgets->layoutsList,&iter,1,chname,0,chid,2,1,-1); - } - } - } + GtkTreeIter iter, lwiter; + GtkTreePath *pth; + for (guint i=0;ilayoutsList,&iter); + gtk_tree_model_get(model,&lwiter,0,&name,1,&id,-1); + gtk_list_store_set(widgets->layoutsList,&iter,1,name,0,id,2,1,-1); } yon_layouts_save(widgets); on_subwindow_close(self); @@ -327,7 +306,7 @@ void on_layouts_chosen(GtkCellRenderer *, gchar *path, layouts_window *window){ gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(window->list),&iter,path); int chosen; gtk_tree_model_get(GTK_TREE_MODEL(window->list),&iter,2,&chosen,-1); - gtk_tree_store_set(GTK_TREE_STORE(window->list),&iter,2,!chosen,-1); + gtk_list_store_set(window->list,&iter,2,!chosen,-1); } void on_layouts_add(GtkWidget *, main_window *widgets){ @@ -338,7 +317,7 @@ void on_layouts_add(GtkWidget *, main_window *widgets){ window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton"); window->ChosenCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"ChosenCell")); window->MainTree = yon_gtk_builder_get_widget(builder,"LayoutsTree"); - window->list = (GtkListStore*)main_config.layouts_list; + window->list = main_config.layouts_list; gtk_tree_view_set_model(GTK_TREE_VIEW(window->MainTree), GTK_TREE_MODEL(window->list)); gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(window->MainTree)),GTK_SELECTION_MULTIPLE); @@ -361,13 +340,13 @@ void on_layouts_add(GtkWidget *, main_window *widgets){ gtk_tree_model_get(GTK_TREE_MODEL(window->list),&iter,0,&id,-1); for (int i=0;ilist),&iter,2,1,-1); + gtk_list_store_set(window->list,&iter,2,1,-1); found=1; break; } } if (!found) { - gtk_tree_store_set(GTK_TREE_STORE(window->list),&iter,2,0,-1); + gtk_list_store_set(window->list,&iter,2,0,-1); } } } @@ -446,7 +425,7 @@ void yon_main_window_complete(main_window *widgets){ widgets->modelsList = GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore2")); int size; - GtkTreeIter iter,chiter; + GtkTreeIter iter; config_str models = yon_config_load(get_models_command,&size); for (int i=0;imodelsList,&iter); gtk_list_store_set(widgets->modelsList,&iter,1,models[i],0,_(models[i+1]),-1); } - main_config.layouts_list = gtk_tree_store_new(3,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_BOOLEAN); + main_config.layouts_list = gtk_list_store_new(3,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_BOOLEAN); int laysize; - config_str rtn = yon_config_load(get_layouts_command,&size); + config_str rtn = yon_resource_open_file(layouts_path,&size); for (int i=0; i #include #include - #ifdef WEBKIT_FOUND #include #endif @@ -51,25 +50,6 @@ #define get_models_command "sed '/<\\/modelList>/q' /usr/share/X11/xkb/rules/base.xml | grep -E '^ {8,8}|^ {8,8}'|sed -e 's/ *//g' -e 's,,,g' -e 's/ *//g' -e 's,,,g'" #define layouts_path "resource:///com/ublinux/csv/layouts.csv" -#define get_layouts_command "xkbcli list --load-exotic | awk \"\ -layout && /description:/ {\ - match(\\$0, /: *(.*)/, matches);\ - description = matches[1];\ - printf \\\"%s|%s|%s\\\\n\\\", layout, variant, description;\ - layout = \\\"\\\"; variant = \\\"\\\";\ -}\ -/layout:/ {\ - match(\\$0, /: *'([^']+)'/, matches);\ - l = matches[1];\ - layout = layouts[l] = l;\ -}\ -/variant:/ {\ - match(\\$0, /: *'([^']+)'/, matches);\ - variant = matches[1];\ -}\ -\" | sort -u\ -" - typedef char* string; __attribute__((unused)) static \ @@ -81,7 +61,7 @@ typedef struct { config_str launch_arguments; int launch_size; char *options; - GtkTreeStore *layouts_list; + GtkListStore *layouts_list; GtkListStore *options_list; } config;