Improvements, fixes

pull/17/head
parent 4b18a3ef3b
commit 843a761304
No known key found for this signature in database
GPG Key ID: FF1D842BF4DDE92B

@ -185,4 +185,52 @@ void yon_layout_build(layouts_window *window){
}
yon_char_parsed_free(layouts,size);
}
}
void on_layout_move_up(GtkWidget *, main_window *widgets){
GtkTreeModel *model;
GtkTreeIter iter,*previter;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->LayoutTree)),&model,&iter)){
previter = gtk_tree_iter_copy(&iter);
if (!gtk_tree_model_iter_previous(model,previter)) return;
char *a, *b;
gtk_tree_model_get(model,&iter,0,&a,-1);
gtk_tree_model_get(model,previter,0,&b,-1);
char *layouts = config(keyboard_layout_parameter);
char *temp = yon_char_swap_element(layouts,a,b,",");
yon_config_register(keyboard_layout_parameter,keyboard_layout_parameter_command,temp);
free(temp);
gtk_list_store_swap(widgets->LayoutsList,&iter,previter);
gtk_tree_iter_free(previter);
}
}
void on_layout_move_down(GtkWidget *, main_window *widgets){
GtkTreeModel *model;
GtkTreeIter iter,*nextiter;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->LayoutTree)),&model,&iter)){
nextiter = gtk_tree_iter_copy(&iter);
if (!gtk_tree_model_iter_next(model,nextiter)) return;
char *a, *b;
gtk_tree_model_get(model,&iter,0,&a,-1);
gtk_tree_model_get(model,nextiter,0,&b,-1);
char *layouts = config(keyboard_layout_parameter);
char *temp = yon_char_swap_element(layouts,a,b,",");
yon_config_register(keyboard_layout_parameter,keyboard_layout_parameter_command,temp);
free(temp);
gtk_list_store_swap(widgets->LayoutsList,&iter,nextiter);
gtk_tree_iter_free(nextiter);
}
}
// void on_layout_dnd_inserted(GtkTreeModel *, GtkTreePath* , GtkTreeIter* iter, main_window *widgets){
// char *target;
// gtk_tree_model_get(GTK_TREE_MODEL(widgets->LayoutsList),iter,0,&target,-1);
// }
// void on_layout_dnd_deleted(GtkTreeModel *, GtkTreePath* , GtkTreeIter* iter, main_window *widgets){
// char *target;
// gtk_tree_model_get(GTK_TREE_MODEL(widgets->LayoutsList),iter,0,&target,-1);
// printf("%s\n",target);
// }

@ -1,63 +1,25 @@
#include "ubl-settings-keyboard.h"
// void on_options_accept(GtkWidget *self, dictionary *dict){
// main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
// layouts_window *window = yon_dictionary_get_data(dict->first->next,layouts_window*);
// GtkTreeModel *model = GTK_TREE_MODEL(window->list);
// GtkTreeIter iter;
// char *name, *id;
// if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(window->MainTree)),&model,&iter)){
// gtk_tree_model_get(model,&iter,0,&id,1,&name,-1);
// gtk_entry_set_text(GTK_ENTRY(widgets->OptionsEntry),name);
// yon_config_register(options_parameter,options_parameter_command,id);
// }
// on_subwindow_close(self);
// }
// void on_options_open(GtkWidget *, main_window *widgets){
// GtkBuilder *builder = gtk_builder_new_from_resource(glade_layouts_path);
// layouts_window *window = malloc(sizeof(layouts_window));
// window->Window = yon_gtk_builder_get_widget(builder,"Window");
// window->AcceptButton = yon_gtk_builder_get_widget(builder,"AcceptButton");
// window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton");
// window->MainTree = yon_gtk_builder_get_widget(builder,"LayoutsTree");
// window->list = main_config.options_list;
// gtk_tree_view_set_model(GTK_TREE_VIEW(window->MainTree),GTK_TREE_MODEL(window->list));
// dictionary *dict = NULL;
// gtk_tree_view_remove_column(GTK_TREE_VIEW(window->MainTree),gtk_tree_view_get_column(GTK_TREE_VIEW(window->MainTree),0));
// yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets);
// yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
// g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
// g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_options_accept),dict);
// }
// GList *yon_get_all_selected(GtkTreeView *tree, int column){
// GtkTreeIter iter;
// GList *list = NULL;
// GtkTreeModel *model = gtk_tree_view_get_model(tree);
// for_iter(model,&iter){
// int status;
// gtk_tree_model_get(model,&iter,column,&status,-1);
// if (status){
// GtkTreePath *path = gtk_tree_model_get_path(model,&iter);
// list = g_list_append(list,path);
// }
// }
// return list;
// }
void on_option_chosen(GtkCellRenderer *, gchar *path, layouts_window *window){
GtkTreeIter iter;
GtkTreeIter itar;
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(window->OptionsFilter),&iter,path);
gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(window->OptionsFilter),&itar,&iter);
int chosen;
gtk_tree_model_get(GTK_TREE_MODEL(window->OptionsList),&itar,2,&chosen,-1);
char *target;
gtk_tree_model_get(GTK_TREE_MODEL(window->OptionsList),&itar,0,&target,2,&chosen,-1);
gtk_list_store_set(GTK_LIST_STORE(window->OptionsList),&itar,2,!chosen,-1);
char *options_string = yon_char_new(gtk_entry_get_text(GTK_ENTRY(window->OptionsEntry)));
if (!chosen){
char *temp = yon_char_append_element(options_string,target,",");
gtk_entry_set_text(GTK_ENTRY(window->OptionsEntry),temp);
free(temp);
} else {
char *temp = yon_char_remove_element(options_string,target,",");
gtk_entry_set_text(GTK_ENTRY(window->OptionsEntry),temp);
free(temp);
}
}
gboolean yon_filter_refilter(GtkTreeModel *model, GtkTreeIter *iter, layouts_window *window){
@ -106,13 +68,15 @@ void yon_options_setup(layouts_window *window){
int filter_size;
config_str filter = NULL;
char *config_options = config(options_parameter);
for (int i=0;i<options_size;i++){
yon_char_remove_last_symbol(options[i],'\n');
int parsed_size;
config_str parsed = yon_char_parse(options[i],&parsed_size,"|");
gtk_list_store_append(window->OptionsList,&iter);
gtk_list_store_set(window->OptionsList,&iter,0,parsed[0],1,parsed[1],-1);
gtk_list_store_set(window->OptionsList,&iter,0,parsed[0],1,parsed[1],2,yon_char_check_element(config_options,parsed[0],","),-1);
char *str = yon_char_new(parsed[0]);
char *type = yon_char_divide_search(str,":",-1);
if (yon_char_parsed_check_exist(filter,filter_size,type)==-1){
@ -134,19 +98,31 @@ void on_options_filter_changed(GtkWidget *, layouts_window *window){
void on_options_accept(GtkWidget *self, layouts_window *window){
main_window *widgets = g_object_get_data(G_OBJECT(window->Window),"widgets");
GtkTreeModel *model = GTK_TREE_MODEL(window->OptionsList);
GtkTreeIter iter, itar;
char *name, *id;
int status;
for_iter(model,&iter){
gtk_tree_model_get(model,&iter,0,&id,1,&name,2,&status,-1);
if (status){
gtk_list_store_append(widgets->OptionsList,&itar);
gtk_list_store_set(widgets->OptionsList,&itar,0,id,1,_(name),-1);
}
// char *main_option = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->LayoutChangingCombo));
char *options = (char*)gtk_entry_get_text(GTK_ENTRY(window->OptionsEntry));
if (!yon_char_is_empty(options)){
// char *full_options = yon_char_unite(!yon_char_is_empty(main_option)?main_option:"",",",options,NULL);
yon_config_register(options_parameter,options_parameter_command,options);
// free(full_options);
// } else if (!yon_char_is_empty(main_option)){
// yon_config_register(options_parameter,options_parameter_command,main_option);
} else {
yon_config_remove_by_key(options_parameter);
}
// GtkTreeModel *model = GTK_TREE_MODEL(window->OptionsList);
// GtkTreeIter iter, itar;
// char *name, *id;
// int status;
// for_iter(model,&iter){
// gtk_tree_model_get(model,&iter,0,&id,1,&name,2,&status,-1);
// if (status){
// gtk_list_store_append(widgets->OptionsList,&itar);
// gtk_list_store_set(widgets->OptionsList,&itar,0,id,1,_(name),-1);
// }
// }
on_subwindow_close(self);
on_options_save(NULL, widgets);
yon_interface_update(widgets);
// on_options_save(NULL, widgets);
}
void on_options_save(GtkWidget *,main_window *widgets){
@ -164,11 +140,9 @@ void on_options_save(GtkWidget *,main_window *widgets){
yon_char_parsed_free(parameter_parsed,parameter_parsed_size);
if (!yon_char_is_empty(final_parameter)){
yon_config_register(options_parameter,options_parameter_command,final_parameter);
gtk_entry_set_text(GTK_ENTRY(widgets->ManualEntry),final_parameter);
free(final_parameter);
} else {
yon_config_remove_by_key(options_parameter);
gtk_entry_set_text(GTK_ENTRY(widgets->ManualEntry),"");
}
}
@ -181,6 +155,7 @@ layouts_window *yon_options_window_new(){
window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton");
window->MainTree = yon_gtk_builder_get_widget(builder,"OptionsTree");
window->OptionsFilterCombo = yon_gtk_builder_get_widget(builder,"OptionsFilterCombo");
window->OptionsEntry = yon_gtk_builder_get_widget(builder,"OptionsEntry");
window->OptionsList = GTK_LIST_STORE(gtk_builder_get_object(builder,"OptionsList"));
window->OptionsFilter = GTK_TREE_MODEL(gtk_builder_get_object(builder,"OptionsFilter"));
window->ChosenCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"ChosenCell"));
@ -191,6 +166,8 @@ layouts_window *yon_options_window_new(){
gtk_tree_view_set_model(GTK_TREE_VIEW(window->MainTree),GTK_TREE_MODEL(window->OptionsFilter));
gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(window->OptionsFilter),(GtkTreeModelFilterVisibleFunc)yon_filter_refilter,window,NULL);
yon_options_setup(window);
char *parameter_options = config(options_parameter);
gtk_entry_set_text(GTK_ENTRY(window->OptionsEntry),parameter_options);
return window;
}

@ -8,6 +8,7 @@ gboolean yon_interface_update(main_window *widgets){
g_signal_handlers_block_by_func(G_OBJECT(widgets->OptionsEditButton),G_CALLBACK(on_options_open),widgets);
g_signal_handlers_block_by_func(G_OBJECT(widgets->NumLockCombo),G_CALLBACK(on_num_lock_changed),widgets);
g_signal_handlers_block_by_func(G_OBJECT(widgets->LayoutChangingCombo),G_CALLBACK(on_options_save),widgets);
g_signal_handlers_block_by_func(G_OBJECT(widgets->TTYLayoutCombo),G_CALLBACK(on_tty_changed),widgets);
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->KeyboardModelCombo),0);
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->NumLockCombo),0);
@ -27,12 +28,35 @@ gboolean yon_interface_update(main_window *widgets){
for(int i=0;i<layouts_parsed_size;i++){
yon_layout_load(layouts_parsed[i],widgets);
}
if (yon_char_is_empty(layouts)||yon_config_check_ignore(keyboard_layout_parameter)){
gtk_switch_set_active(GTK_SWITCH(widgets->DefaultLayoutsSwitch),1);
} else {
gtk_switch_set_active(GTK_SWITCH(widgets->DefaultLayoutsSwitch),0);
}
if (yon_char_is_empty(layouts)){
char *element = yon_char_parsed_check_exist_begins_with(main_config.layouts_list,main_config.layouts_size,"us|");
if (element){
int parsed_size;
config_str parsed = yon_char_parse(element,&parsed_size,"|");
GtkTreeIter iter;
gtk_list_store_append(widgets->LayoutsList,&iter);
gtk_list_store_set(widgets->LayoutsList,&iter,0,parsed[0],2,_(parsed[1]),-1);
yon_char_parsed_free(parsed,parsed_size);
}
}
char *tty_keymap = config(console_keymap_parameter);
if (!yon_char_is_empty(tty_keymap)){
gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->TTYLayoutCombo),tty_keymap);
} else {
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->TTYLayoutCombo),0);
}
}
{
gtk_list_store_clear(widgets->OptionsList);
char *options = config(options_parameter);
if (!yon_char_is_empty(options)){
gtk_entry_set_text(GTK_ENTRY(widgets->ManualEntry),options);
GtkTreeIter iter;
int size;
config_str parsed = yon_char_parse(options,&size,",");
@ -48,8 +72,6 @@ gboolean yon_interface_update(main_window *widgets){
yon_char_parsed_free(option_parsed,option_parsed_size);
}
yon_char_parsed_free(parsed,size);
} else {
gtk_entry_set_text(GTK_ENTRY(widgets->ManualEntry),"");
}
}
{
@ -64,6 +86,7 @@ gboolean yon_interface_update(main_window *widgets){
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->OptionsEditButton),G_CALLBACK(on_options_open),widgets);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->NumLockCombo),G_CALLBACK(on_num_lock_changed),widgets);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->LayoutChangingCombo),G_CALLBACK(on_options_save),widgets);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->TTYLayoutCombo),G_CALLBACK(on_tty_changed),widgets);
return G_SOURCE_REMOVE;
}
@ -135,6 +158,7 @@ void yon_config_init(){
int options_size;
config_str options = yon_config_load(command_full,&options_size);
for(int i=0;i<options_size;i++){
yon_char_remove_last_symbol(options[i],'\n');
int parsed_size;
config_str parsed = yon_char_parse(options[i],&parsed_size,"|");
g_hash_table_insert(main_config.options,yon_char_new(parsed[0]),yon_char_new(options[i]));
@ -148,6 +172,7 @@ void yon_config_init(){
main_config.options_list = gtk_list_store_new(3,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_BOOLEAN);
config_str rtn = yon_config_load(get_options_command,&size);
for (int i=0; i<size;i++){
yon_char_remove_last_symbol(rtn[i],'\n');
int option_size;
rtn[i] = yon_char_divide_search(rtn[i],"\n",-1);
config_str option = yon_char_parse(rtn[i],&option_size,";");
@ -181,6 +206,15 @@ void on_scroll_lock_switch(GtkWidget *,int status,main_window *widgets){
yon_interface_update(widgets);
}
void on_tty_changed(GtkWidget *, main_window *widgets){
char *tty_layout = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->TTYLayoutCombo));
if (!yon_char_is_empty(tty_layout)){
yon_config_register(console_keymap_parameter,console_keymap_parameter_command,tty_layout);
} else {
yon_config_remove_by_key(console_keymap_parameter);
}
}
void yon_main_window_complete(main_window *widgets){
widgets = yon_remalloc(widgets,sizeof(main_window));
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path);
@ -193,13 +227,14 @@ void yon_main_window_complete(main_window *widgets){
widgets->LayoutTree = yon_gtk_builder_get_widget(builder,"LayoutTree");
widgets->LayoutAddButton = yon_gtk_builder_get_widget(builder,"LayoutAddButton");
widgets->LayoutRemoveButton = yon_gtk_builder_get_widget(builder,"LayoutRemoveButton");
widgets->LayoutMoveUpButton = yon_gtk_builder_get_widget(builder,"LayoutMoveUpButton");
widgets->LayoutMoveDownButton = yon_gtk_builder_get_widget(builder,"LayoutMoveDownButton");
widgets->LayoutChangingCombo = yon_gtk_builder_get_widget(builder,"LayoutChangingCombo");
widgets->OptionsTree = yon_gtk_builder_get_widget(builder,"OptionsTree");
widgets->OptionsEditButton = yon_gtk_builder_get_widget(builder,"OptionsEditButton");
widgets->OptionsRemoveButton = yon_gtk_builder_get_widget(builder,"OptionsRemoveButton");
widgets->ComposeSwitch = yon_gtk_builder_get_widget(builder,"ComposeSwitch");
widgets->ScrollLockSwitch = yon_gtk_builder_get_widget(builder,"ScrollLockSwitch");
widgets->ManualEntry = yon_gtk_builder_get_widget(builder,"ManualEntry");
widgets->NumLockCombo = yon_gtk_builder_get_widget(builder,"NumLockCombo");
widgets->TTYLayoutCombo = yon_gtk_builder_get_widget(builder,"TTYLayoutCombo");
widgets->LayoutsList = GTK_LIST_STORE(gtk_builder_get_object(builder,"LayoutsList"));
@ -212,6 +247,7 @@ void yon_main_window_complete(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->LayoutAddButton),"clicked",G_CALLBACK(on_system_layouts_add),widgets);
g_signal_connect(G_OBJECT(widgets->LayoutRemoveButton),"clicked",G_CALLBACK(on_system_layouts_remove),widgets);
g_signal_connect(G_OBJECT(widgets->TTYLayoutCombo),"changed",G_CALLBACK(on_tty_changed),widgets);
g_signal_connect(G_OBJECT(widgets->KeyboardModelCombo),"changed",G_CALLBACK(on_model_changed),widgets);
g_signal_connect(G_OBJECT(widgets->OptionsEditButton),"clicked",G_CALLBACK(on_options_open),widgets);
g_signal_connect(G_OBJECT(widgets->OptionsRemoveButton),"clicked",G_CALLBACK(on_option_remove),widgets);
@ -219,10 +255,17 @@ void yon_main_window_complete(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->LayoutChangingCombo),"changed",G_CALLBACK(on_options_save),widgets);
g_signal_connect(G_OBJECT(widgets->ComposeSwitch),"state-set",G_CALLBACK(on_compose_switch),widgets);
g_signal_connect(G_OBJECT(widgets->ScrollLockSwitch),"state-set",G_CALLBACK(on_scroll_lock_switch),widgets);
// g_signal_connect(G_OBJECT(widgets->LayoutsList),"row-inserted",G_CALLBACK(on_layout_dnd_inserted),widgets);
// g_signal_connect(G_OBJECT(widgets->LayoutsList),"row-deleted",G_CALLBACK(on_layout_dnd_deleted),widgets);
g_signal_connect(G_OBJECT(widgets->DefaultLayoutsSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),widgets->LayoutTree);
g_signal_connect(G_OBJECT(widgets->DefaultLayoutsSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),widgets->LayoutAddButton);
g_signal_connect(G_OBJECT(widgets->DefaultLayoutsSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),widgets->LayoutRemoveButton);
g_signal_connect(G_OBJECT(widgets->DefaultLayoutsSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),widgets->LayoutMoveUpButton);
g_signal_connect(G_OBJECT(widgets->DefaultLayoutsSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),widgets->LayoutMoveDownButton);
g_signal_connect(G_OBJECT(widgets->LayoutMoveUpButton),"clicked",G_CALLBACK(on_layout_move_up),widgets);
g_signal_connect(G_OBJECT(widgets->LayoutMoveDownButton),"clicked",G_CALLBACK(on_layout_move_down),widgets);
g_signal_connect(G_OBJECT(widgets->LoadLocalMenuItem),"activate",G_CALLBACK(on_config_local_load),widgets);
g_signal_connect(G_OBJECT(widgets->LoadGlobalMenuItem),"activate",G_CALLBACK(on_config_global_load),widgets);

@ -36,6 +36,8 @@
#define options_parameter_command "ubconfig --source global get keyboard XKBOPTIONS"
#define num_lock_boot_parameter "NUMLOCK"
#define num_lock_boot_parameter_command "ubconfig --source global get keyboard NUMLOCK"
#define console_keymap_parameter "CONSOLE_KEYMAP"
#define console_keymap_parameter_command "ubconfig --source global get keyboard CONSOLE_KEYMAP"
#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 keyboard XKBMODEL XKBLAYOUT XKBOPTIONS NUMLOCK"
@ -143,13 +145,14 @@ typedef struct {
GtkWidget *LayoutTree;
GtkWidget *LayoutAddButton;
GtkWidget *LayoutRemoveButton;
GtkWidget *LayoutMoveUpButton;
GtkWidget *LayoutMoveDownButton;
GtkWidget *LayoutChangingCombo;
GtkWidget *OptionsTree;
GtkWidget *OptionsEditButton;
GtkWidget *OptionsRemoveButton;
GtkWidget *ComposeSwitch;
GtkWidget *ScrollLockSwitch;
GtkWidget *ManualEntry;
GtkWidget *NumLockCombo;
GtkWidget *TTYLayoutCombo;
GtkListStore *LayoutsList;
@ -175,6 +178,7 @@ typedef struct {
GtkWidget *CancelButton;
GtkWidget *AcceptButton;
GtkWidget *OptionsFilterCombo;
GtkWidget *OptionsEntry;
GtkCellRenderer *ChosenCell;
GtkTreeStore *list;
GtkListStore *OptionsList;
@ -232,4 +236,9 @@ void on_option_chosen(GtkCellRenderer *, gchar *path, layouts_window *window);
void on_options_save(GtkWidget *,main_window *widgets);
void on_compose_switch(GtkWidget *,int status,main_window *widgets);
void on_scroll_lock_switch(GtkWidget *,int status,main_window *widgets);
void on_option_remove(GtkWidget*, main_window *widgets);
void on_option_remove(GtkWidget*, main_window *widgets);
void on_layout_move_down(GtkWidget *, main_window *widgets);
void on_layout_move_up(GtkWidget *, main_window *widgets);
void on_layout_dnd_inserted(GtkTreeModel *, GtkTreePath* path, GtkTreeIter* iter, main_window *widgets);
void on_layout_dnd_deleted(GtkTreeModel *, GtkTreePath* path, GtkTreeIter* iter, main_window *widgets);
void on_tty_changed(GtkWidget *, main_window *widgets);

@ -84,6 +84,9 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="model">OptionsList</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn">
<child>
@ -128,6 +131,42 @@
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Options:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="OptionsEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="placeholder-text" translatable="yes">grp:lalt_lshift_toggle,grp_led:scroll,compose:rwin</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>

@ -58,6 +58,16 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.trash-symbolic</property>
</object>
<object class="GtkImage" id="image4">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.up-symbolic</property>
</object>
<object class="GtkImage" id="image5">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.down-symbolic</property>
</object>
<object class="GtkImage" id="image6">
<property name="visible">True</property>
<property name="can-focus">False</property>
@ -227,7 +237,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="can-focus">True</property>
<property name="model">LayoutsList</property>
<property name="headers-clickable">False</property>
<property name="reorderable">True</property>
<property name="enable-grid-lines">both</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
@ -280,6 +289,40 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkButton" id="LayoutMoveUpButton">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image4</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="LayoutMoveDownButton">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image5</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="LayoutAddButton">
<property name="visible">True</property>
@ -294,7 +337,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
<property name="position">2</property>
</packing>
</child>
<child>
@ -311,7 +354,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
<property name="position">3</property>
</packing>
</child>
</object>
@ -616,43 +659,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Manual input:</property>
<property name="xalign">1</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="ManualEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="placeholder-text" translatable="yes">grp:lalt_lshift_toggle,grp_led:scroll,compose:rwin</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
@ -745,9 +751,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="TTYLayoutCombo">
<object class="GtkComboBox" id="TTYLayoutCombo">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="model">LayoutsList</property>
<property name="active">0</property>
<property name="id-column">0</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">2</attribute>
</attributes>
</child>
</object>
<packing>
<property name="expand">True</property>
@ -787,14 +802,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
</object>
<object class="GtkSizeGroup">
<widgets>
<widget name="label1"/>
<widget name="label2"/>
<widget name="label3"/>
<widget name="label4"/>
<widget name="label6"/>
<widget name="label5"/>
<widget name="label7"/>
<widget name="label6"/>
<widget name="label4"/>
<widget name="label8"/>
<widget name="label2"/>
<widget name="label1"/>
</widgets>
</object>
<object class="GtkListStore" id="liststore1">

Loading…
Cancel
Save