|
|
|
|
@ -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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|