Layout list fixes

pull/14/head
parent 3416043a67
commit 92bd8e47a3
No known key found for this signature in database
GPG Key ID: FF1D842BF4DDE92B

@ -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
ua;Ukrainian
pk;Urdu (Pakistan)
uz;Uzbek
vn;Vietnamese
sn;Wolof
1 af al Afrikaans Albanian
2 ar et Arabic Amharic
3 as am Assamese Armenian
4 ara Arabic
5 eg Arabic (Egypt)
6 iq Arabic (Iraq)
7 ma Arabic (Morocco)
8 sy Arabic (Syria)
9 az az Azerbaijani Azerbaijani
10 be ml Belarusian Bambara
11 bd Bangla
12 by Belarusian
13 be Belgian
14 dz Berber (Algeria, Latin)
15 ba Bosnian
16 brai Braille
17 bg bg Bulgarian Bulgarian
18 bn mm Bengali Burmese
19 bs cn Bosnian Chinese
20 ca hr Catalan Croatian
21 cs cz Czech Czech
22 da dk Danish Danish
23 de af German Dari
24 el mv Greek Dhivehi
25 en nl English Dutch
26 es bt Spanish Dzongkha
27 et au Estonian English (Australia)
28 cm English (Cameroon)
29 gh English (Ghana)
30 nz English (New Zealand)
31 ng English (Nigeria)
32 za English (South Africa)
33 gb English (UK)
34 us English (US)
35 epo Esperanto
36 ee Estonian
37 fo Faroese
38 ph Filipino
39 fi fi Finnish Finnish
40 fr fr French French
41 gu ca Gujarati French (Canada)
42 he cd Hebrew French (Democratic Republic of the Congo)
43 hi tg Hindi French (Togo)
44 hr ge Croatian Georgian
45 de German
46 at German (Austria)
47 ch German (Switzerland)
48 gr Greek
49 il Hebrew
50 hu hu Hungarian Hungarian
hy Armenian
id Indonesian
51 is is Icelandic Icelandic
52 in Indian
53 id Indonesian (Latin)
54 ie Irish
55 it it Italian Italian
56 ja jp Japanese Japanese
57 ka kz Georgian Kazakh
58 kk kh Kazakh Khmer (Cambodia)
59 kn kr Kannada Korean
60 ko kg Korean Kyrgyz
61 ks la Kashmiri Lao
ku Kurdish
ky Kirghiz
lt Lithuanian
62 lv lv Latvian Latvian
63 lt Lithuanian
64 mk mk Macedonian Macedonian
65 ml my Malayalam Malay (Jawi, Arabic Keyboard)
mr Marathi
ms Malay
66 mt mt Maltese Maltese
67 nb md Bokmal Moldavian
68 nl mn Dutch Mongolian
69 nn me Nynorsk Montenegrin
70 or np Oriya Nepali
71 pa gn Punjabi N'Ko (AZERTY)
72 no Norwegian
73 ir Persian
74 pl pl Polish Polish
75 pt pt Portuguese Portuguese
76 br Portuguese (Brazil)
77 ro ro Romanian Romanian
78 ru ru Russian Russian
79 sa rs Sanskrit Serbian
80 lk Sinhala (phonetic)
81 sk sk Slovak Slovak
82 sl si Slovenian Slovenian
83 sq es Albanian Spanish
84 sr latam Serbian Spanish (Latin American)
85 sv ke Swedish Swahili (Kenya)
86 ta tz Tamil Swahili (Tanzania)
87 te se Telugu Swedish
88 tw Taiwanese
89 tj Tajik
90 th th Thai Thai
91 bw Tswana
92 tm Turkmen
93 tr tr Turkish Turkish
94 uk ua Ukrainian Ukrainian
95 us pk American Urdu (Pakistan)
96 vi uz Vietnamese Uzbek
97 zh vn Simplified Chinese Vietnamese
98 zh sn Traditional Chinese Wolof
zh Chinese
zh Traditional Chinese

@ -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;i<size;i++){
@ -176,14 +173,6 @@ gboolean yon_interface_update(main_window *widgets){
gtk_list_store_append(widgets->layoutsList,&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;i<g_list_length(list);i++){
pth = (GtkTreePath*)g_list_nth_data(list,i);
gtk_tree_model_get_iter(model,&lwiter,pth);
gtk_list_store_append(widgets->layoutsList,&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;i<size;i++){
if (!strcmp(id,parsed[i])){
gtk_tree_store_set(GTK_TREE_STORE(window->list),&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;i<size;i+=2){
models[i] = yon_char_divide_search(models[i],"\n",-1);
@ -454,27 +433,15 @@ void yon_main_window_complete(main_window *widgets){
gtk_list_store_append(widgets->modelsList,&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<size; i++){
yon_char_remove_last_symbol(rtn[i],'\n');
config_str layout = yon_char_parse(rtn[i],&laysize,"|");
if (yon_char_is_empty(layout[1])){
gtk_tree_store_append(main_config.layouts_list,&iter,NULL);
textdomain("iso_639");
gtk_tree_store_set(main_config.layouts_list,&iter,0,layout[0],1,_(layout[2]),-1);
textdomain(LocaleName);
} else {
char *full_layout = yon_char_unite(layout[0],"_",layout[1],NULL);
gtk_tree_store_append(main_config.layouts_list,&chiter,&iter);
textdomain("iso_639");
gtk_tree_store_set(main_config.layouts_list,&chiter,0,full_layout,1,_(layout[2]),-1);
textdomain(LocaleName);
free(full_layout);
}
config_str layout = yon_char_parse(rtn[i],&laysize,";");
gtk_list_store_append(main_config.layouts_list,&iter);
char *lout = layout[1];
gtk_list_store_set(main_config.layouts_list,&iter,0,layout[0],1,lout,-1);
}
main_config.options_list = gtk_list_store_new(3,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_BOOLEAN);
rtn = yon_config_load(get_options_command,&size);

@ -9,7 +9,6 @@
#include <libublsettings.h>
#include <libublsettings-gtk3.h>
#include <libublsettingsui-gtk3.h>
#ifdef WEBKIT_FOUND
#include <webkit2/webkit2.h>
#endif
@ -51,25 +50,6 @@
#define get_models_command "sed '/<\\/modelList>/q' /usr/share/X11/xkb/rules/base.xml | grep -E '^ {8,8}<name>|^ {8,8}<description>'|sed -e 's/ *<name>//g' -e 's,</name>,,g' -e 's/ *<description>//g' -e 's,</description>,,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;

Loading…
Cancel
Save