Merge pull request 'master' (#287) from YanTheKaller/ubinstall-gtk:master into master

Reviewed-on: #287
pull/291/head
Dmitry Razumov 2 months ago
commit dab02fd238

@ -5321,3 +5321,7 @@ msgstr ""
msgid "Vietnamese (France)" msgid "Vietnamese (France)"
msgstr "" msgstr ""
#: source/libublsettingsui-gtk3.h:675
msgid "Grant root access"
msgstr ""

@ -5517,3 +5517,6 @@ msgstr "Вьетнамский (США)"
msgid "Vietnamese (France)" msgid "Vietnamese (France)"
msgstr "Вьетнамский (Франция)" msgstr "Вьетнамский (Франция)"
#: source/libublsettingsui-gtk3.h:675
msgid "Grant root access"
msgstr "Предоставить root-доступ"

@ -9,6 +9,19 @@ int yon_bootloader_save(main_window *widgets){
} }
if (!gtk_switch_get_active(GTK_SWITCH(widgets->BootloadNoPasswordSwitch))){ if (!gtk_switch_get_active(GTK_SWITCH(widgets->BootloadNoPasswordSwitch))){
yon_config_register(AUTOLOGINUSER_parameter,AUTOLOGINUSER_parameter_command,"no"); yon_config_register(AUTOLOGINUSER_parameter,AUTOLOGINUSER_parameter_command,"no");
} else {
yon_config_register(AUTOLOGINUSER_parameter,AUTOLOGINUSER_parameter_command,"yes");
}
{
int size;
config_str users = yon_config_get_all_by_key(GRUB_PASSWORD_parameter_search,&size);
for (int i=0;i<size;i++){
char *parameter = yon_char_divide_search(users[i],"=",-1);
yon_config_remove_by_key(parameter);
free(parameter);
}
}
GtkTreeIter iter; GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->BootloadUsersList); GtkTreeModel *model = GTK_TREE_MODEL(widgets->BootloadUsersList);
int admin_size=0; int admin_size=0;
@ -29,24 +42,15 @@ int yon_bootloader_save(main_window *widgets){
yon_config_remove_by_key(GRUB_SUPERUSERS_parameter); yon_config_remove_by_key(GRUB_SUPERUSERS_parameter);
} }
} }
} else {
int size;
config_str users = yon_config_get_all_by_key(GRUB_PASSWORD_parameter_search,&size);
for (int i=0;i<size;i++){
char *parameter = yon_char_divide_search(users[i],"=",-1);
yon_config_remove_by_key(parameter);
free(parameter);
}
yon_config_register(AUTOLOGINUSER_parameter,AUTOLOGINUSER_parameter_command,"yes");
yon_config_remove_by_key(GRUB_PASSWORD_parameter_all);
yon_config_remove_by_key(GRUB_SUPERUSERS_parameter);
yon_char_parsed_free(users,size);
}
if (!main_config.configure_mode){ if (!main_config.configure_mode){
int user_size=0; int user_size=0;
config_str users = yon_config_get_all_by_key(GRUB_PASSWORD_parameter_search,&user_size); int param_size=0;
char *user_string = yon_char_parsed_to_string(users,user_size," "); config_str users = yon_config_get_all_keys_by_key(GRUB_PASSWORD_parameter_search,&user_size);
config_str user_parameters = yon_config_get_save_parameters_by_list(&param_size,users,user_size);
yon_char_parsed_free(users,user_size);
char *user_string = yon_char_parsed_to_string(user_parameters,param_size," ");
yon_char_parsed_free(user_parameters,param_size);
int size; int size;
config_str parameters = yon_config_get_save_parameters_by_key(&size,GRUB_TIMEOUT_parameter,AUTOLOGINUSER_parameter,GRUB_SUPERUSERS_parameter,NULL); config_str parameters = yon_config_get_save_parameters_by_key(&size,GRUB_TIMEOUT_parameter,AUTOLOGINUSER_parameter,GRUB_SUPERUSERS_parameter,NULL);
if (parameters){ if (parameters){
@ -107,49 +111,10 @@ void on_bootloader_user_accept(GtkWidget *, bootloader_user_window *window){
free(yon_char_divide(password,pos)); free(yon_char_divide(password,pos));
} }
} }
// if (!yon_char_is_empty(window->prev_name)&&strcmp(username,window->prev_name)){
// yon_config_remove_by_key(GRUB_PASSWORD(window->prev_name));
// int size;
// char *superusers = config(GRUB_SUPERUSERS_parameter);
// config_str parsed = yon_char_parse(superusers,&size,",");
// int pos = yon_char_parsed_check_exist(parsed,size,(char*)username);
// if (pos>-1){
// parsed = yon_char_parsed_rip(parsed,&size,pos);
// char *superusers = yon_char_parsed_to_string(parsed,size,",");
// if (!yon_char_is_empty(superusers)){
// yon_config_register(GRUB_SUPERUSERS_parameter,GRUB_SUPERUSERS_parameter_command,superusers);
// } else {
// yon_config_remove_by_key(GRUB_SUPERUSERS_parameter);
// }
// }
// }
// yon_config_register(GRUB_PASSWORD(username),GRUB_SUPERUSERS_parameter_command,(char*)password);
GtkTreeIter iter; GtkTreeIter iter;
gtk_list_store_append(widgets->BootloadUsersList,&iter); gtk_list_store_append(widgets->BootloadUsersList,&iter);
gtk_list_store_set(widgets->BootloadUsersList,&iter,0,gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->AdminCheck)),1,username,2,password,3,"******",-1); gtk_list_store_set(widgets->BootloadUsersList,&iter,0,gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->AdminCheck)),1,username,2,password,3,"******",-1);
// free(password);
// if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->AdminCheck))){
// int size;
// char *superusers = config(GRUB_SUPERUSERS_parameter);
// config_str parsed = yon_char_parse(superusers,&size,",");
// if (yon_char_parsed_check_exist(parsed,size,(char*)username)==-1){
// yon_char_parsed_add_or_create_if_exists(parsed,&size,(char*)username);
// char *superusers = yon_char_parsed_to_string(parsed,size,",");
// // yon_config_register(GRUB_SUPERUSERS_parameter,GRUB_SUPERUSERS_parameter_command,superusers);
// }
// } else {
// int size;
// char *superusers = config(GRUB_SUPERUSERS_parameter);
// config_str parsed = yon_char_parse(superusers,&size,",");
// int pos = yon_char_parsed_check_exist(parsed,size,(char*)username);
// if (pos!=-1){
// parsed = yon_char_parsed_rip(parsed,&size,pos);
// char *superusers = yon_char_parsed_to_string(parsed,size,",");
// // yon_config_register(GRUB_SUPERUSERS_parameter,GRUB_SUPERUSERS_parameter_command,superusers);
// }
// }
on_subwindow_close(window->Window); on_subwindow_close(window->Window);
} }
@ -184,6 +149,48 @@ void on_bootloader_user_add(GtkWidget *, main_window *widgets){
gtk_widget_show(window->Window); gtk_widget_show(window->Window);
} }
void on_bootloader_user_edit(GtkWidget *, main_window *widgets){
GtkTreeIter iter;
GtkTreeModel *model;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->BootloadUserTree)),&model,&iter)){
int admin;
char *username;
char *password;
gtk_tree_model_get(model,&iter,0,&admin,1,&username,2,&password,-1);
bootloader_user_window *window = yon_bootloader_user_window_new();
g_object_set_data(G_OBJECT(window->AcceptButton),"widgets",widgets);
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_bootloader_user_accept),window);
yon_gtk_window_setup(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->MainWindow),NULL,icon_path,"bootloader_window");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->AdminCheck),admin);
gtk_entry_set_text(GTK_ENTRY(window->UsernameEntry),username);
gtk_entry_set_text(GTK_ENTRY(window->PasswordEntry),password);
gtk_widget_show(window->Window);
}
}
void on_bootloader_admin_toggled(GtkWidget *, char *path, main_window *widgets){
GtkTreeIter iter;
int active;
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(widgets->BootloadUsersList),&iter,path);
gtk_tree_model_get(GTK_TREE_MODEL(widgets->BootloadUsersList),&iter,0,&active,-1);
gtk_list_store_set(widgets->BootloadUsersList,&iter,0,!active,-1);
}
void on_bootloader_user_remove(GtkWidget *, main_window *widgets){
GtkTreeIter iter;
GtkTreeModel *model;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->BootloadUserTree)),&model,&iter)){
char *target;
gtk_tree_model_get(model,&iter,1,&target,-1);
dialog_confirmation_data *data = yon_confirmation_dialog_data_new();
data->title = WARNING_TITLE_LABEL;
data->action_text = BOOTLOADER_USER_REMOVE_LABEL(target);
if (yon_confirmation_dialog_call(widgets->MainWindow,data)){
gtk_list_store_remove(widgets->BootloadUsersList,&iter);
}
}
}
void yon_menu_open_submenu(yon_menu_window *window, yon_menu_item *item){ void yon_menu_open_submenu(yon_menu_window *window, yon_menu_item *item){
int size; int size;
config_str options = yon_config_load(get_menus_entry_command,&size); config_str options = yon_config_load(get_menus_entry_command,&size);
@ -490,15 +497,21 @@ void yon_bootloader_init(main_window *widgets){
} }
if (!yon_char_is_empty(autologin)&&(!strcmp(autologin,"no")||!strcmp(autologin,"disable"))){ if (!yon_char_is_empty(autologin)&&(!strcmp(autologin,"no")||!strcmp(autologin,"disable"))){
gtk_switch_set_active(GTK_SWITCH(widgets->BootloadNoPasswordSwitch),0); gtk_switch_set_active(GTK_SWITCH(widgets->BootloadNoPasswordSwitch),0);
} else {
gtk_switch_set_active(GTK_SWITCH(widgets->BootloadNoPasswordSwitch),1);
}
{
int admins_size; int admins_size;
config_str admins_parsed = yon_char_parse(admins,&admins_size,","); config_str admins_parsed = yon_char_parse(admins,&admins_size,",");
GtkTreeIter iter; GtkTreeIter iter;
for (int i=0;i<size;i++){ for (int i=0;i<size;i++){
char *parameter = yon_char_new(users[i]); char *parameter = yon_char_new(users[i]);
char *parameter_name = yon_char_divide_search(parameter,"=",-1); char *parameter_name = yon_char_divide_search(parameter,"=",-1);
char *key = yon_config_parameter_get_key(parameter_name); char *key = yon_config_parameter_get_key(parameter_name);
char *key_sub = key+yon_char_find_last(key,'['); char *key_sub = key+yon_char_find_last(key,'[');
char *subkey = yon_config_parameter_get_key(key_sub); char *subkey = yon_config_parameter_get_key(key_sub);
gtk_list_store_append(widgets->BootloadUsersList,&iter); gtk_list_store_append(widgets->BootloadUsersList,&iter);
gtk_list_store_set(widgets->BootloadUsersList,&iter,0,yon_char_parsed_check_exist(admins_parsed,admins_size,subkey)>-1,1,subkey,2,parameter,3,"******",-1); gtk_list_store_set(widgets->BootloadUsersList,&iter,0,yon_char_parsed_check_exist(admins_parsed,admins_size,subkey)>-1,1,subkey,2,parameter,3,"******",-1);
@ -507,7 +520,5 @@ void yon_bootloader_init(main_window *widgets){
free(subkey); free(subkey);
} }
yon_char_parsed_free(admins_parsed,admins_size); yon_char_parsed_free(admins_parsed,admins_size);
} else {
gtk_switch_set_active(GTK_SWITCH(widgets->BootloadNoPasswordSwitch),1);
} }
} }

@ -4,7 +4,10 @@
int yon_kernel_save(main_window *widgets){ int yon_kernel_save(main_window *widgets){
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->KernelListBox)); GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->KernelListBox));
char *config_val = config(packages_parameter); char *config_val = config(packages_parameter);
if (yon_char_is_empty(config_val)) yon_config_register(packages_parameter,packages_parameter_command,NULL); if (yon_char_is_empty(config_val)) {
yon_config_register(packages_parameter,packages_parameter_command,NULL);
yon_config_set_status(packages_parameter,-1);
}
char *enabled_module = NULL; char *enabled_module = NULL;
int overall_size = 0; int overall_size = 0;
int active_size = 0; int active_size = 0;

@ -51,7 +51,7 @@ void yon_startup_apps_setup(main_window *widgets){
config_str parsed = yon_char_parse(apps[i],&parsed_size,";"); config_str parsed = yon_char_parse(apps[i],&parsed_size,";");
if (parsed_size&&!yon_char_is_empty(parsed[0])){ if (parsed_size&&!yon_char_is_empty(parsed[0])){
gtk_list_store_append(widgets->StartupAppsList,&iter); gtk_list_store_append(widgets->StartupAppsList,&iter);
gtk_list_store_set(widgets->StartupAppsList,&iter,0,1,1,parsed[0],2,yon_char_return_if_exist(parsed[1],""),3,yon_char_return_if_exist(_(parsed[2]),""),-1); gtk_list_store_set(widgets->StartupAppsList,&iter,0,0,1,parsed[0],2,yon_char_return_if_exist(parsed[1],""),3,yon_char_return_if_exist(_(parsed[2]),""),-1);
} }
} }
@ -97,7 +97,7 @@ void yon_startup_apps_setup(main_window *widgets){
if (parsed_size&&parsed){ if (parsed_size&&parsed){
for (int i=0;i<parsed_size;i++){ for (int i=0;i<parsed_size;i++){
gtk_list_store_append(widgets->StartupAppsList,&iter); gtk_list_store_append(widgets->StartupAppsList,&iter);
gtk_list_store_set(widgets->StartupAppsList,&iter,0,1,2,parsed[i],-1); gtk_list_store_set(widgets->StartupAppsList,&iter,0,0,2,parsed[i],-1);
} }
} }
yon_char_parsed_free(parsed,parsed_size); yon_char_parsed_free(parsed,parsed_size);

@ -207,12 +207,8 @@ int yon_startup_save(main_window *widgets){
} }
} }
if (size){ if (size){
if (list_size==size){
yon_config_register(SERVICES_ENABLE_parameter,SERVICES_ENABLE_parameter_command,"auto");
} else {
char *final = yon_char_parsed_to_string(modules,size,","); char *final = yon_char_parsed_to_string(modules,size,",");
yon_config_register(SERVICES_ENABLE_parameter,SERVICES_ENABLE_parameter_command,final); yon_config_register(SERVICES_ENABLE_parameter,SERVICES_ENABLE_parameter_command,final);
}
yon_char_parsed_free(modules,size); yon_char_parsed_free(modules,size);
} else { } else {
yon_config_remove_by_key(SERVICES_ENABLE_parameter); yon_config_remove_by_key(SERVICES_ENABLE_parameter);

@ -234,6 +234,33 @@ gboolean on_country_filter(GtkTreeModel *self, GtkTreeIter *iter, main_window *w
} }
void yon_gtk_widget_set_translation(GtkWidget *target){
GObject *cur_widget = NULL;
char *widget_text = NULL;
if (GTK_IS_BUTTON(target)){
cur_widget = G_OBJECT(target);
widget_text = yon_char_new(gtk_button_get_label(GTK_BUTTON(cur_widget)));
} else if (GTK_IS_LABEL(target)){
cur_widget = G_OBJECT(target);
widget_text = yon_char_new(gtk_label_get_label(GTK_LABEL(cur_widget)));
} else if (GTK_IS_TREE_VIEW_COLUMN(target)){
cur_widget = G_OBJECT(target);
widget_text = yon_char_new(gtk_tree_view_column_get_title(GTK_TREE_VIEW_COLUMN(cur_widget)));
} else if (GTK_IS_MENU_ITEM(target)){
cur_widget = G_OBJECT(target);
GList *list = gtk_container_get_children(GTK_CONTAINER(cur_widget));
if (list) {
GtkWidget *widget = target;
g_list_free(list);
if (GTK_IS_BOX(widget)){
return;
}
}
widget_text = yon_char_new(gtk_menu_item_get_label(GTK_MENU_ITEM(cur_widget)));
} else return;
g_object_set_data(G_OBJECT(cur_widget),"original_label",(void*)widget_text);
}
void yon_translation_init(GtkBuilder *builder){ void yon_translation_init(GtkBuilder *builder){
GSList *list = gtk_builder_get_objects(builder); GSList *list = gtk_builder_get_objects(builder);
@ -270,9 +297,14 @@ void yon_translation_init(GtkBuilder *builder){
void yon_update_translation(main_window *widgets){ void yon_update_translation(main_window *widgets){
GtkBuilder *builder = widgets->builder; GtkBuilder *builder = widgets->builder;
GSList *list = gtk_builder_get_objects(builder); GSList *list = gtk_builder_get_objects(builder);
list = g_slist_append(list,widgets->DocumentationMenuItem); list = g_slist_append(list,g_object_get_data(G_OBJECT(widgets->DocumentationMenuItem),"Label"));
list = g_slist_append(list,widgets->AboutMenuItem); list = g_slist_append(list,g_object_get_data(G_OBJECT(widgets->AboutMenuItem),"Label"));
list = g_slist_append(list,g_object_get_data(G_OBJECT(widgets->root_button),"Label"));
list = g_slist_append(list,g_object_get_data(G_OBJECT(widgets->ConfigurationModeMenuItem),"Label"));
list = g_slist_append(list,g_object_get_data(G_OBJECT(widgets->EnableVNCMenuItem),"Label"));
list = g_slist_append(list,g_object_get_data(G_OBJECT(widgets->EnableRDPMenuItem),"Label"));
GSList *iter; GSList *iter;
for (iter = list; iter; iter = iter->next){ for (iter = list; iter; iter = iter->next){
if (iter->data == widgets->LicenceLabel){ if (iter->data == widgets->LicenceLabel){
yon_licence_load(widgets); yon_licence_load(widgets);

@ -68,7 +68,11 @@ int yon_user_save(yon_user_struct *user){
return 0; return 0;
} }
} }
char *parameter = yon_char_unite(yon_char_return_if_exist(name,""),":::::",yon_char_return_if_exist(password,""),NULL); char *admin_uid = NULL;
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(user->AdminCheck))){
admin_uid = yon_config_get(admuid_parameter);
}
char *parameter = yon_char_unite(yon_char_return_if_exist(name,""),":",yon_char_return_if_exist(admin_uid,""),"::::",yon_char_return_if_exist(password,""),NULL);
yon_config_register(USERADD_parameter(login),USERADD_parameter_command(login),parameter); yon_config_register(USERADD_parameter(login),USERADD_parameter_command(login),parameter);
free(parameter); free(parameter);
return 1; return 1;
@ -76,6 +80,7 @@ int yon_user_save(yon_user_struct *user){
void on_user_add(GtkWidget *,main_window *widgets){ void on_user_add(GtkWidget *,main_window *widgets){
yon_user_struct *user = yon_user_struct_new(); yon_user_struct *user = yon_user_struct_new();
g_signal_connect(G_OBJECT(user->AdminCheck),"clicked",G_CALLBACK(yon_user_admin_check),widgets);
g_object_set_data(G_OBJECT(user->MainBox),"widgets",widgets); g_object_set_data(G_OBJECT(user->MainBox),"widgets",widgets);
gtk_box_pack_start(GTK_BOX(widgets->UserAddBox),user->MainBox,0,0,0); gtk_box_pack_start(GTK_BOX(widgets->UserAddBox),user->MainBox,0,0,0);
} }
@ -97,16 +102,16 @@ void yon_password_new(GtkWidget *, yon_user_struct *user){
yon_password_hash_list_set(window,NULL,NULL,0); yon_password_hash_list_set(window,NULL,NULL,0);
} }
void yon_user_admin_check(GtkWidget *, yon_user_struct *user){ void yon_user_admin_check(GtkWidget *self, main_window *widgets){
main_window *widgets = g_object_get_data(G_OBJECT(user->MainBox),"widgets"); yon_user_struct *user = g_object_get_data(G_OBJECT(self),"yon_user_struct");
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->UserAddBox)); GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->UserAddBox));
GList *iter; GList *iter;
for(iter=list;iter;iter=iter->next){ for(iter=list;iter;iter=iter->next){
if (iter->data!=user->MainBox){ if (iter->data!=user->MainBox){
yon_user_struct *cur_user = g_object_get_data(G_OBJECT(iter->data),"yon_user_struct"); yon_user_struct *cur_user = g_object_get_data(G_OBJECT(iter->data),"yon_user_struct");
g_signal_handlers_block_by_func(G_OBJECT(cur_user->AdminCheck),G_CALLBACK(yon_user_admin_check),cur_user); g_signal_handlers_block_by_func(G_OBJECT(cur_user->AdminCheck),G_CALLBACK(yon_user_admin_check),widgets);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cur_user->AdminCheck),0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cur_user->AdminCheck),0);
g_signal_handlers_unblock_by_func(G_OBJECT(cur_user->AdminCheck),G_CALLBACK(yon_user_admin_check),cur_user); g_signal_handlers_unblock_by_func(G_OBJECT(cur_user->AdminCheck),G_CALLBACK(yon_user_admin_check),widgets);
} }
} }
} }
@ -127,13 +132,13 @@ yon_user_struct *yon_user_struct_new(){
yon_gtk_entry_block_symbols(GTK_ENTRY(user->UsernameEntry),"[]'\":\n"); yon_gtk_entry_block_symbols(GTK_ENTRY(user->UsernameEntry),"[]'\":\n");
g_object_set_data(G_OBJECT(user->MainBox),"yon_user_struct",user); g_object_set_data(G_OBJECT(user->MainBox),"yon_user_struct",user);
g_object_set_data(G_OBJECT(user->AdminCheck),"yon_user_struct",user);
yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(user->PasswordEntry)); yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(user->PasswordEntry));
g_signal_connect(G_OBJECT(user->PasswordCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),user->PasswordEntry); g_signal_connect(G_OBJECT(user->PasswordCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),user->PasswordEntry);
g_signal_connect(G_OBJECT(user->PasswordCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),user->PasswordButton); g_signal_connect(G_OBJECT(user->PasswordCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),user->PasswordButton);
g_signal_connect(G_OBJECT(user->PasswordButton),"clicked",G_CALLBACK(yon_password_new),user); g_signal_connect(G_OBJECT(user->PasswordButton),"clicked",G_CALLBACK(yon_password_new),user);
g_signal_connect(G_OBJECT(user->AdminCheck),"clicked",G_CALLBACK(yon_user_admin_check),user);
g_signal_connect(G_OBJECT(user->RemoveButton),"clicked",G_CALLBACK(on_user_remove_clicked),user); g_signal_connect(G_OBJECT(user->RemoveButton),"clicked",G_CALLBACK(on_user_remove_clicked),user);
return user; return user;
} }
@ -169,6 +174,8 @@ void yon_user_init(main_window *widgets){
config_str users = yon_config_get_all_by_key(USERADD_parameter_search,&users_size); config_str users = yon_config_get_all_by_key(USERADD_parameter_search,&users_size);
if (!users_size){ if (!users_size){
yon_user_struct *user = yon_user_struct_new(); yon_user_struct *user = yon_user_struct_new();
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user->AdminCheck),1);
g_signal_connect(G_OBJECT(user->AdminCheck),"clicked",G_CALLBACK(yon_user_admin_check),widgets);
g_object_set_data(G_OBJECT(user->MainBox),"widgets",widgets); g_object_set_data(G_OBJECT(user->MainBox),"widgets",widgets);
gtk_box_pack_start(GTK_BOX(widgets->UserAddBox),user->MainBox,0,0,0); gtk_box_pack_start(GTK_BOX(widgets->UserAddBox),user->MainBox,0,0,0);
gtk_entry_set_text(GTK_ENTRY(user->UsernameEntry),ADMINISTRATOR_LABEL); gtk_entry_set_text(GTK_ENTRY(user->UsernameEntry),ADMINISTRATOR_LABEL);
@ -176,6 +183,7 @@ void yon_user_init(main_window *widgets){
} }
for (int i=0;i<users_size;i++){ for (int i=0;i<users_size;i++){
yon_user_struct *user = yon_user_struct_new(); yon_user_struct *user = yon_user_struct_new();
g_signal_connect(G_OBJECT(user->AdminCheck),"clicked",G_CALLBACK(yon_user_admin_check),widgets);
g_object_set_data(G_OBJECT(user->MainBox),"widgets",widgets); g_object_set_data(G_OBJECT(user->MainBox),"widgets",widgets);
gtk_box_pack_start(GTK_BOX(widgets->UserAddBox),user->MainBox,0,0,0); gtk_box_pack_start(GTK_BOX(widgets->UserAddBox),user->MainBox,0,0,0);
@ -190,6 +198,11 @@ void yon_user_init(main_window *widgets){
gtk_entry_set_text(GTK_ENTRY(user->LoginEntry),login); gtk_entry_set_text(GTK_ENTRY(user->LoginEntry),login);
if (parsed_size>0) if (parsed_size>0)
gtk_entry_set_text(GTK_ENTRY(user->UsernameEntry),parsed[0]); gtk_entry_set_text(GTK_ENTRY(user->UsernameEntry),parsed[0]);
if (parsed_size>1){
if (!yon_char_is_empty(parsed[1])){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user->AdminCheck),1);
}
}
if (parsed_size>5&&!yon_char_is_empty(parsed[5])){ if (parsed_size>5&&!yon_char_is_empty(parsed[5])){
gtk_entry_set_text(GTK_ENTRY(user->PasswordEntry),parsed[5]); gtk_entry_set_text(GTK_ENTRY(user->PasswordEntry),parsed[5]);
gtk_combo_box_set_active(GTK_COMBO_BOX(user->PasswordCombo),1); gtk_combo_box_set_active(GTK_COMBO_BOX(user->PasswordCombo),1);

@ -585,6 +585,8 @@ void yon_main_window_create(main_window *widgets){
widgets->BootloadNoPasswordSwitch = yon_gtk_builder_get_widget(builder,"BootloadNoPasswordSwitch"); widgets->BootloadNoPasswordSwitch = yon_gtk_builder_get_widget(builder,"BootloadNoPasswordSwitch");
widgets->BootloadUserTree = yon_gtk_builder_get_widget(builder,"BootloadUserTree"); widgets->BootloadUserTree = yon_gtk_builder_get_widget(builder,"BootloadUserTree");
widgets->BootloadUserAddButton = yon_gtk_builder_get_widget(builder,"BootloadUserAddButton"); widgets->BootloadUserAddButton = yon_gtk_builder_get_widget(builder,"BootloadUserAddButton");
widgets->BootloadUserEditButton = yon_gtk_builder_get_widget(builder,"BootloadUserEditButton");
widgets->BootloadAdminCheckCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"BootloadAdminCheckCell"));
widgets->BootloadUserRemoveButton = yon_gtk_builder_get_widget(builder,"BootloadUserRemoveButton"); widgets->BootloadUserRemoveButton = yon_gtk_builder_get_widget(builder,"BootloadUserRemoveButton");
widgets->BootloadUsersList = GTK_LIST_STORE(gtk_builder_get_object(builder,"BootloadUsersList")); widgets->BootloadUsersList = GTK_LIST_STORE(gtk_builder_get_object(builder,"BootloadUsersList"));
@ -753,11 +755,14 @@ void yon_main_window_create(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->PacmanSoftwareSearchEntry),"icon-press",G_CALLBACK(on_pacman_icon_press),widgets); g_signal_connect(G_OBJECT(widgets->PacmanSoftwareSearchEntry),"icon-press",G_CALLBACK(on_pacman_icon_press),widgets);
g_signal_connect(G_OBJECT(widgets->PacmanSoftwareSearchEntry),"activate",G_CALLBACK(on_pacman_search_enter),widgets); g_signal_connect(G_OBJECT(widgets->PacmanSoftwareSearchEntry),"activate",G_CALLBACK(on_pacman_search_enter),widgets);
g_signal_connect(G_OBJECT(widgets->BootloadUserAddButton),"clicked",G_CALLBACK(on_bootloader_user_add),widgets); g_signal_connect(G_OBJECT(widgets->BootloadUserAddButton),"clicked",G_CALLBACK(on_bootloader_user_add),widgets);
g_signal_connect(G_OBJECT(widgets->BootloadUserEditButton),"clicked",G_CALLBACK(on_bootloader_user_edit),widgets);
g_signal_connect(G_OBJECT(widgets->BootloadAdminCheckCell),"toggled",G_CALLBACK(on_bootloader_admin_toggled),widgets);
g_signal_connect(G_OBJECT(widgets->BootloadUserRemoveButton),"clicked",G_CALLBACK(on_bootloader_user_remove),widgets);
g_signal_connect(G_OBJECT(widgets->BootloadTimerSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->BootloadTimerSpin); g_signal_connect(G_OBJECT(widgets->BootloadTimerSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->BootloadTimerSpin);
g_signal_connect(G_OBJECT(widgets->BootloadNoPasswordSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),widgets->BootloadUserRemoveButton); // g_signal_connect(G_OBJECT(widgets->BootloadNoPasswordSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),widgets->BootloadUserRemoveButton);
g_signal_connect(G_OBJECT(widgets->BootloadNoPasswordSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),widgets->BootloadUserAddButton); // g_signal_connect(G_OBJECT(widgets->BootloadNoPasswordSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),widgets->BootloadUserAddButton);
g_signal_connect(G_OBJECT(widgets->BootloadNoPasswordSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),widgets->BootloadUserTree); // g_signal_connect(G_OBJECT(widgets->BootloadNoPasswordSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch_inversed),widgets->BootloadUserTree);
g_signal_connect(G_OBJECT(widgets->NetworkDomainSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->NetworkDomainNameEntry); g_signal_connect(G_OBJECT(widgets->NetworkDomainSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->NetworkDomainNameEntry);
g_signal_connect(G_OBJECT(widgets->NetworkDomainSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->NetworkDomainAdminEntry); g_signal_connect(G_OBJECT(widgets->NetworkDomainSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->NetworkDomainAdminEntry);
@ -818,25 +823,13 @@ void yon_main_window_create(main_window *widgets){
} }
yon_window_config_load(path); yon_window_config_load(path);
yon_window_config_add_instant_parameter("fullscreen","window",&fullscreen,YON_TYPE_BOOLEAN); yon_window_config_add_instant_parameter("fullscreen","window",&fullscreen,YON_TYPE_BOOLEAN);
yon_startup_language_init();
yon_locale_init();
yon_main_window_update_locale(widgets);
yon_gtk_window_setup(GTK_WINDOW(widgets->MainWindow),NULL,TITLE_LABEL,icon_path,NULL);
gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(widgets->InstallerCountryFilter),(GtkTreeModelFilterVisibleFunc)on_country_filter,widgets,NULL);
gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(widgets->LanguagesTree),(GtkTreeViewSearchEqualFunc)on_languages_search_func,widgets,NULL);
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->RegionMapOverlay),widgets->TimeZoneMapOverlayBox);
gtk_overlay_set_overlay_pass_through(GTK_OVERLAY(widgets->RegionMapOverlay),widgets->TimeZoneMapOverlayBox,1);
gtk_widget_hide(widgets->TimeZoneMapOverlayBox);
g_thread_new("Partitions_thread",(GThreadFunc)yon_partitions_list_load,widgets);
{ {
widgets->EnableRDPMenuItem = gtk_menu_item_new(); widgets->EnableRDPMenuItem = gtk_menu_item_new();
GtkWidget *Box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5); GtkWidget *Box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5);
GtkWidget *Label = gtk_label_new(ENABLE_RDP_LABEL); GtkWidget *Label = gtk_label_new(ENABLE_RDP_LABEL);
GtkWidget *Check = gtk_check_button_new(); GtkWidget *Check = gtk_check_button_new();
yon_gtk_widget_set_translation(Label);
g_object_set_data(G_OBJECT(widgets->EnableRDPMenuItem),"Label",Label);
gtk_box_pack_start(GTK_BOX(Box),Check,0,0,0); gtk_box_pack_start(GTK_BOX(Box),Check,0,0,0);
gtk_box_pack_start(GTK_BOX(Box),Label,0,0,0); gtk_box_pack_start(GTK_BOX(Box),Label,0,0,0);
gtk_container_add(GTK_CONTAINER(widgets->EnableRDPMenuItem),Box); gtk_container_add(GTK_CONTAINER(widgets->EnableRDPMenuItem),Box);
@ -850,6 +843,8 @@ void yon_main_window_create(main_window *widgets){
GtkWidget *Box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5); GtkWidget *Box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5);
GtkWidget *Label = gtk_label_new(ENABLE_VNC_LABEL); GtkWidget *Label = gtk_label_new(ENABLE_VNC_LABEL);
GtkWidget *Check = gtk_check_button_new(); GtkWidget *Check = gtk_check_button_new();
yon_gtk_widget_set_translation(Label);
g_object_set_data(G_OBJECT(widgets->EnableVNCMenuItem),"Label",Label);
gtk_box_pack_start(GTK_BOX(Box),Check,0,0,0); gtk_box_pack_start(GTK_BOX(Box),Check,0,0,0);
gtk_box_pack_start(GTK_BOX(Box),Label,0,0,0); gtk_box_pack_start(GTK_BOX(Box),Label,0,0,0);
gtk_container_add(GTK_CONTAINER(widgets->EnableVNCMenuItem),Box); gtk_container_add(GTK_CONTAINER(widgets->EnableVNCMenuItem),Box);
@ -862,6 +857,8 @@ void yon_main_window_create(main_window *widgets){
widgets->ConfigurationModeMenuItem = gtk_menu_item_new(); widgets->ConfigurationModeMenuItem = gtk_menu_item_new();
GtkWidget *Box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5); GtkWidget *Box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5);
GtkWidget *Label = gtk_label_new(CONFIGURATION_MODE_LABEL); GtkWidget *Label = gtk_label_new(CONFIGURATION_MODE_LABEL);
yon_gtk_widget_set_translation(Label);
g_object_set_data(G_OBJECT(widgets->ConfigurationModeMenuItem),"Label",Label);
widgets->ConfigurationModeCheck = gtk_check_button_new(); widgets->ConfigurationModeCheck = gtk_check_button_new();
gtk_box_pack_start(GTK_BOX(Box),widgets->ConfigurationModeCheck,0,0,0); gtk_box_pack_start(GTK_BOX(Box),widgets->ConfigurationModeCheck,0,0,0);
gtk_box_pack_start(GTK_BOX(Box),Label,0,0,0); gtk_box_pack_start(GTK_BOX(Box),Label,0,0,0);
@ -874,6 +871,29 @@ void yon_main_window_create(main_window *widgets){
gtk_widget_set_sensitive(widgets->ConfigurationModeMenuItem,0); gtk_widget_set_sensitive(widgets->ConfigurationModeMenuItem,0);
} }
} }
{
widgets->root_button = yon_root_button_new(main_config.argv,main_config.argc);
GtkWidget *Label = g_object_get_data(G_OBJECT(widgets->root_button),"Label");
yon_gtk_widget_set_translation(Label);
gtk_style_context_add_class(gtk_widget_get_style_context(widgets->root_button),"menuitemtop");
gtk_menu_shell_prepend(GTK_MENU_SHELL(gtk_widget_get_parent(widgets->AboutMenuItem)),widgets->root_button);
yon_root_button_init(widgets->root_button,GTK_WINDOW(widgets->MainWindow));
}
yon_startup_language_init();
yon_locale_init();
yon_main_window_update_locale(widgets);
yon_gtk_window_setup(GTK_WINDOW(widgets->MainWindow),NULL,TITLE_LABEL,icon_path,NULL);
gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(widgets->InstallerCountryFilter),(GtkTreeModelFilterVisibleFunc)on_country_filter,widgets,NULL);
gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(widgets->LanguagesTree),(GtkTreeViewSearchEqualFunc)on_languages_search_func,widgets,NULL);
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->RegionMapOverlay),widgets->TimeZoneMapOverlayBox);
gtk_overlay_set_overlay_pass_through(GTK_OVERLAY(widgets->RegionMapOverlay),widgets->TimeZoneMapOverlayBox,1);
gtk_widget_hide(widgets->TimeZoneMapOverlayBox);
g_thread_new("Partitions_thread",(GThreadFunc)yon_partitions_list_load,widgets);
{ {
if (main_config.lock_load_global == 1){ if (main_config.lock_load_global == 1){
@ -963,6 +983,8 @@ main_window *yon_main_window_complete(){
} }
int main(int argc, char *argv[]){ int main(int argc, char *argv[]){
main_config.argv=argv;
main_config.argc = argc;
// __attribute__((unused)) char *locale = setlocale(LC_ALL, "en_US.UTF-8"); // __attribute__((unused)) char *locale = setlocale(LC_ALL, "en_US.UTF-8");
config_str unfound = NULL; config_str unfound = NULL;
int size=0; int size=0;
@ -1003,11 +1025,6 @@ int main(int argc, char *argv[]){
-1); -1);
{ {
widgets = yon_main_window_complete(); widgets = yon_main_window_complete();
GtkWidget *root_button = yon_root_button_new(argv,argc);
gtk_style_context_add_class(gtk_widget_get_style_context(root_button),"menuitemtop");
gtk_menu_shell_prepend(GTK_MENU_SHELL(gtk_widget_get_parent(widgets->AboutMenuItem)),root_button);
yon_root_button_init(root_button,GTK_WINDOW(widgets->MainWindow));
on_config_global_load(NULL,widgets); on_config_global_load(NULL,widgets);
} }

@ -183,7 +183,7 @@ layout && /description:/ {\
#define xkbvariant_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [keyboard] XKBVARIANT']" #define xkbvariant_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [keyboard] XKBVARIANT']"
#define xkboptions_parameter "AUTOINSTALL[ubconfig set [keyboard] XKBOPTIONS]" #define xkboptions_parameter "AUTOINSTALL[ubconfig set [keyboard] XKBOPTIONS]"
#define xkboptions_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [keyboard] XKBOPTIONS']" #define xkboptions_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [keyboard] XKBOPTIONS']"
#define hostname_parameter "AUTOINSTALL[ubconfig set [system] HOSTNAMEe]" #define hostname_parameter "AUTOINSTALL[ubconfig set [system] HOSTNAME]"
#define hostname_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [system] HOSTNAME']" #define hostname_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [system] HOSTNAME']"
#define zone_parameter "AUTOINSTALL[ubconfig set [clock] ZONE]" #define zone_parameter "AUTOINSTALL[ubconfig set [clock] ZONE]"
#define zone_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [clock] ZONE']" #define zone_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [clock] ZONE']"
@ -229,8 +229,8 @@ layout && /description:/ {\
#define USERADD_parameter_command(target) yon_char_unite("ubconfig --source global get autoinstall AUTOINSTALL['ubconfig set [users] USERADD[", target, "]']", NULL) #define USERADD_parameter_command(target) yon_char_unite("ubconfig --source global get autoinstall AUTOINSTALL['ubconfig set [users] USERADD[", target, "]']", NULL)
#define KERNEL_BOOT_parameter "AUTOINSTALL[ubconfig set [boot] KERNEL_BOOT]" #define KERNEL_BOOT_parameter "AUTOINSTALL[ubconfig set [boot] KERNEL_BOOT]"
#define KERNEL_BOOT_parameter_command "ubconfig --source global get autoinstall AUTOINSTALL['ubconfig set [boot] KERNEL_BOOT']" #define KERNEL_BOOT_parameter_command "ubconfig --source global get autoinstall AUTOINSTALL['ubconfig set [boot] KERNEL_BOOT']"
#define SERVICES_ENABLE_parameter "AUTOINSTALL[ubconfig set [boot] SERVICES_ENABLE]" #define SERVICES_ENABLE_parameter "AUTOINSTALL[ubconfig set [system] SERVICES_ENABLE]"
#define SERVICES_ENABLE_parameter_command "ubconfig get autoinstall AUTOINSTALL['ubconfig set [boot] SERVICES_ENABLE']" #define SERVICES_ENABLE_parameter_command "ubconfig get autoinstall AUTOINSTALL['ubconfig set [system] SERVICES_ENABLE']"
#define AUTOEXEC_parameter "AUTOINSTALL[ubconfig set [desktop] AUTOEXEC[@users]]" #define AUTOEXEC_parameter "AUTOINSTALL[ubconfig set [desktop] AUTOEXEC[@users]]"
#define AUTOEXEC_parameter_command "ubconfig get autoinstall AUTOINSTALL['ubconfig set [desktop] AUTOEXEC[@users]']" #define AUTOEXEC_parameter_command "ubconfig get autoinstall AUTOINSTALL['ubconfig set [desktop] AUTOEXEC[@users]']"
#define GRUB_SUPERUSERS_parameter "AUTOINSTALL[ubconfig set [boot] GRUB_SUPERUSERS]" #define GRUB_SUPERUSERS_parameter "AUTOINSTALL[ubconfig set [boot] GRUB_SUPERUSERS]"
@ -258,6 +258,8 @@ layout && /description:/ {\
#define source_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[source]" #define source_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[source]"
#define finish_parameter "AUTOINSTALL[finish]" #define finish_parameter "AUTOINSTALL[finish]"
#define finish_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[finish]" #define finish_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[finish]"
#define admuid_parameter "ADMUID"
#define admuid_parameter_command "ubconfig --source global get [users] ADMUID"
#define SYSTEM_LANG_parameter "AUTOINSTALL['ubconfig set [locale] LANG']" #define SYSTEM_LANG_parameter "AUTOINSTALL['ubconfig set [locale] LANG']"
#define SYSTEM_LANG_parameter_command "ubconfig --source global get autoinstall AUTOINSTALL['ubconfig set [locale] LANG']" #define SYSTEM_LANG_parameter_command "ubconfig --source global get autoinstall AUTOINSTALL['ubconfig set [locale] LANG']"
@ -291,7 +293,7 @@ layout && /description:/ {\
#define config_get_command(target) yon_char_unite("ubconfig -ea --conarg --source ", target, " get [autoinstall] AUTOINSTALL[*] -- get [locale] LANG", NULL) #define config_get_command(target) yon_char_unite("ubconfig -ea --conarg --source ", target, " get [autoinstall] AUTOINSTALL[*] -- get [locale] LANG", NULL)
#define config_get_default_command "ubconfig -ea --noconarg --source default get [autoinstall] AUTOINSTALL[*] -- get [locale] LANG" #define config_get_default_command "ubconfig -ea --noconarg --source default get [autoinstall] AUTOINSTALL[*] -- get [locale] LANG -- get [users] ADMUID"
#define config_get_global_only_parameters "" #define config_get_global_only_parameters ""
#define config_get_local_only_parameters "" #define config_get_local_only_parameters ""
@ -302,7 +304,7 @@ layout && /description:/ {\
#define languages_command "while IFS= read -ru3 SELECT_LOCALE; do SELECT_LOCALE=\"${SELECT_LOCALE% *}\"; [[ $(< /usr/share/i18n/locales/${SELECT_LOCALE%.*}) =~ (\"language\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"territory\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"country_name\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"lang_name\"[[:blank:]]*\\\"([^\\\"]*)\\\")|(\"language\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"territory\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"lang_name\"[[:blank:]]*\\\"([^\\\"]*)\\\")|(\"language\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"territory\"[[:blank:]]*\\\"([^\\\"]*)\\\") ]] && echo \"${SELECT_LOCALE}|${BASH_REMATCH[2]}${BASH_REMATCH[7]}${BASH_REMATCH[11]}${BASH_REMATCH[5]:+ (${BASH_REMATCH[5]})}${BASH_REMATCH[9]:+ (${BASH_REMATCH[9]})}|${BASH_REMATCH[3]}${BASH_REMATCH[8]}${BASH_REMATCH[12]}${BASH_REMATCH[4]:+ (${BASH_REMATCH[4]})}\" || echo \"${SELECT_LOCALE}\"; done 3< \"/usr/share/i18n/SUPPORTED\"" #define languages_command "while IFS= read -ru3 SELECT_LOCALE; do SELECT_LOCALE=\"${SELECT_LOCALE% *}\"; [[ $(< /usr/share/i18n/locales/${SELECT_LOCALE%.*}) =~ (\"language\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"territory\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"country_name\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"lang_name\"[[:blank:]]*\\\"([^\\\"]*)\\\")|(\"language\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"territory\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"lang_name\"[[:blank:]]*\\\"([^\\\"]*)\\\")|(\"language\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"territory\"[[:blank:]]*\\\"([^\\\"]*)\\\") ]] && echo \"${SELECT_LOCALE}|${BASH_REMATCH[2]}${BASH_REMATCH[7]}${BASH_REMATCH[11]}${BASH_REMATCH[5]:+ (${BASH_REMATCH[5]})}${BASH_REMATCH[9]:+ (${BASH_REMATCH[9]})}|${BASH_REMATCH[3]}${BASH_REMATCH[8]}${BASH_REMATCH[12]}${BASH_REMATCH[4]:+ (${BASH_REMATCH[4]})}\" || echo \"${SELECT_LOCALE}\"; done 3< \"/usr/share/i18n/SUPPORTED\""
#define get_package_info_command(target) yon_char_unite("pacman -Si ", target,"| sed 's/ */ /g'",NULL) #define get_package_info_command(target) yon_char_unite("pacman -Si ", target, "| sed 's/ */ /g'", NULL)
#define layouts_command "sed -En '/^! layout$/,/^ *$/!d;s/[[:blank:]]+([^ ]+)[[:blank:]]+(.*)/\\1|\\2/p' /usr/share/X11/xkb/rules/evdev.lst" #define layouts_command "sed -En '/^! layout$/,/^ *$/!d;s/[[:blank:]]+([^ ]+)[[:blank:]]+(.*)/\\1|\\2/p' /usr/share/X11/xkb/rules/evdev.lst"
#define layouts_variant_command "sed -En '/^! variant$/,/^ *$/!d;s/[[:blank:]]+([^ ]+)[[:blank:]]+([^ :]+):[[:blank:]]+(.*)/\\2|\\1|\\3/p' /usr/share/X11/xkb/rules/evdev.lst" #define layouts_variant_command "sed -En '/^! variant$/,/^ *$/!d;s/[[:blank:]]+([^ ]+)[[:blank:]]+([^ :]+):[[:blank:]]+(.*)/\\2|\\1|\\3/p' /usr/share/X11/xkb/rules/evdev.lst"
@ -310,14 +312,14 @@ layout && /description:/ {\
#define install_common_parameters \ #define install_common_parameters \
AUTOINSTALL_TYPE_INSTALL, \ AUTOINSTALL_TYPE_INSTALL, \
device_parameter, \ device_parameter, \
part_format_parameter, \ part_format_parameter, \
part_label_parameter, \ part_label_parameter, \
part_fs_type_parameter part_fs_type_parameter
#define install_part_parameters \ #define install_part_parameters \
AUTOINSTALL_TYPE_INSTALL, \ AUTOINSTALL_TYPE_INSTALL, \
device_parameter, \ device_parameter, \
part_format_parameter, \ part_format_parameter, \
part_fs_label_parameter, \ part_fs_label_parameter, \
part_parameter, \ part_parameter, \
@ -326,7 +328,7 @@ layout && /description:/ {\
#define install_next_parameters \ #define install_next_parameters \
AUTOINSTALL_TYPE_INSTALL, \ AUTOINSTALL_TYPE_INSTALL, \
device_parameter, \ device_parameter, \
part_format_parameter, \ part_format_parameter, \
part_fs_label_parameter, \ part_fs_label_parameter, \
part_parameter, \ part_parameter, \
@ -335,7 +337,7 @@ layout && /description:/ {\
#define install_advanced_parameters \ #define install_advanced_parameters \
AUTOINSTALL_TYPE_INSTALL, \ AUTOINSTALL_TYPE_INSTALL, \
device_parameter, \ device_parameter, \
part_format_parameter, \ part_format_parameter, \
part_label_parameter, \ part_label_parameter, \
part_parameter, \ part_parameter, \
@ -344,12 +346,12 @@ layout && /description:/ {\
#define install_grub_install_update_parameters \ #define install_grub_install_update_parameters \
AUTOINSTALL_TYPE_INSTALL, \ AUTOINSTALL_TYPE_INSTALL, \
device_parameter, \ device_parameter, \
part_parameter part_parameter
#define install_system_only_parameters \ #define install_system_only_parameters \
AUTOINSTALL_TYPE_INSTALL, \ AUTOINSTALL_TYPE_INSTALL, \
device_parameter, \ device_parameter, \
part_format_parameter, \ part_format_parameter, \
part_label_parameter, \ part_label_parameter, \
part_parameter, \ part_parameter, \
@ -359,7 +361,7 @@ layout && /description:/ {\
#define install_userdata_only_parameters \ #define install_userdata_only_parameters \
AUTOINSTALL_TYPE_INSTALL, \ AUTOINSTALL_TYPE_INSTALL, \
device_parameter, \ device_parameter, \
part_format_parameter, \ part_format_parameter, \
part_label_parameter, \ part_label_parameter, \
part_parameter, \ part_parameter, \
@ -470,6 +472,9 @@ typedef struct
config_str modules; config_str modules;
int modules_size; int modules_size;
config_str argv;
int argc;
} config; } config;
extern config main_config; extern config main_config;
@ -525,7 +530,6 @@ typedef struct
GtkListStore *RegionTimezoneCompletionList; GtkListStore *RegionTimezoneCompletionList;
GtkTreeModelFilter *RegionTimezoneCompletionFilter; GtkTreeModelFilter *RegionTimezoneCompletionFilter;
GtkWidget *InstallationRadio; GtkWidget *InstallationRadio;
GtkWidget *InstallationNearRadio; GtkWidget *InstallationNearRadio;
GtkWidget *InstallationLinuxRadio; GtkWidget *InstallationLinuxRadio;
@ -731,6 +735,8 @@ typedef struct
GtkWidget *BootloadDefaulOSButton; GtkWidget *BootloadDefaulOSButton;
GtkWidget *BootloadNoPasswordSwitch; GtkWidget *BootloadNoPasswordSwitch;
GtkWidget *BootloadUserAddButton; GtkWidget *BootloadUserAddButton;
GtkWidget *BootloadUserEditButton;
GtkCellRenderer *BootloadAdminCheckCell;
GtkWidget *BootloadUserRemoveButton; GtkWidget *BootloadUserRemoveButton;
GtkWidget *BootloadUserTree; GtkWidget *BootloadUserTree;
GtkListStore *BootloadUsersList; GtkListStore *BootloadUsersList;
@ -797,6 +803,8 @@ typedef struct
gboolean slider_stop; gboolean slider_stop;
GtkWidget *root_button;
} main_window; } main_window;
enum ADVANCED_PART_TYPE enum ADVANCED_PART_TYPE
@ -1489,9 +1497,9 @@ int yon_startup_app_save(main_window *widgets);
void yon_on_about(GtkWidget *, main_window *); void yon_on_about(GtkWidget *, main_window *);
void on_gparted_update(GtkWidget *, main_window *widgets); void on_gparted_update(GtkWidget *, main_window *widgets);
void yon_menu_open_submenu(yon_menu_window *window, yon_menu_item *item); void yon_menu_open_submenu(yon_menu_window *window, yon_menu_item *item);
yon_menu_item *yon_menu_add_item(yon_menu_window *target_menu,const char *id, const char *name, int children); yon_menu_item *yon_menu_add_item(yon_menu_window *target_menu, const char *id, const char *name, int children);
void yon_menu_ungrab(yon_menu_window *window); void yon_menu_ungrab(yon_menu_window *window);
void on_menu_chosen(GtkWidget *, GtkListBoxRow* row, yon_menu_window *window); void on_menu_chosen(GtkWidget *, GtkListBoxRow *row, yon_menu_window *window);
gboolean yon_locale_window_load(language_window *window); gboolean yon_locale_window_load(language_window *window);
void yon_os_password_open(GtkWidget *, main_window *widgets); void yon_os_password_open(GtkWidget *, main_window *widgets);
void yon_userdata_password_open(GtkWidget *, main_window *widgets); void yon_userdata_password_open(GtkWidget *, main_window *widgets);
@ -1499,15 +1507,15 @@ double yon_password_check_func(yon_password_window *window, const char *password
void yon_source_update(source_window *window); void yon_source_update(source_window *window);
void yon_main_window_update_locale(main_window *widgets); void yon_main_window_update_locale(main_window *widgets);
gboolean yon_progress_bar_start(main_window *widgets); gboolean yon_progress_bar_start(main_window *widgets);
void *yon_progress_file_buzyfy(void*); void *yon_progress_file_buzyfy(void *);
void yon_startup_language_init(); void yon_startup_language_init();
gboolean on_languages_search_func(GtkTreeModel *model, gint col,const char *key, GtkTreeIter *iter, main_window *widgets); gboolean on_languages_search_func(GtkTreeModel *model, gint col, const char *key, GtkTreeIter *iter, main_window *widgets);
void yon_update_translation(main_window *widgets); void yon_update_translation(main_window *widgets);
void yon_translation_init(GtkBuilder *builder); void yon_translation_init(GtkBuilder *builder);
void yon_licence_load(main_window *widgets); void yon_licence_load(main_window *widgets);
void on_network_removed(GtkWidget *,network_info *info); void on_network_removed(GtkWidget *, network_info *info);
char *yon_bootloader_get_os_name(char *parameter); char *yon_bootloader_get_os_name(char *parameter);
gboolean on_region_refilter(GtkTreeModel* model, GtkTreeIter* iter, main_window *widgets); gboolean on_region_refilter(GtkTreeModel *model, GtkTreeIter *iter, main_window *widgets);
void on_region_entry_changed(GtkWidget *, main_window *widgets); void on_region_entry_changed(GtkWidget *, main_window *widgets);
char *yon_size_get_name_from_letter(char letter); char *yon_size_get_name_from_letter(char letter);
void yon_map_status_hide(main_window *widgets); void yon_map_status_hide(main_window *widgets);
@ -1527,7 +1535,7 @@ config_str yon_os_components_get_modules(int *size);
int yon_os_components_check_packages_size(GtkWidget *, main_window *widgets); int yon_os_components_check_packages_size(GtkWidget *, main_window *widgets);
void on_pacman_search_enter(GtkEntry *self, main_window *widgets); void on_pacman_search_enter(GtkEntry *self, main_window *widgets);
gboolean yon_log_scroll(log_window *window); gboolean yon_log_scroll(log_window *window);
gboolean on_log_window_exit(GtkWidget *,GdkEvent*, log_window *window); gboolean on_log_window_exit(GtkWidget *, GdkEvent *, log_window *window);
void yon_modules_missed_func(main_window *widgets); void yon_modules_missed_func(main_window *widgets);
void yon_scroll_block_for_builder(GtkBuilder *builder); void yon_scroll_block_for_builder(GtkBuilder *builder);
void yon_advanced_device_choose(main_window *widgets, const char *device); void yon_advanced_device_choose(main_window *widgets, const char *device);
@ -1544,14 +1552,14 @@ void on_advanced_virtual_device_changed(GtkWidget *, main_window *widgets);
void on_advanced_part_create(GtkWidget *self, main_window *widgets); void on_advanced_part_create(GtkWidget *self, main_window *widgets);
int yon_advanced_part_select_for_data(advanced_part_data *data, main_window *widgets); int yon_advanced_part_select_for_data(advanced_part_data *data, main_window *widgets);
int yon_advanced_part_check_count(main_window *widgets); int yon_advanced_part_check_count(main_window *widgets);
advanced_part_widgets *yon_advanced_part_get_for_name(const char *part_name,main_window *widgets); advanced_part_widgets *yon_advanced_part_get_for_name(const char *part_name, main_window *widgets);
void yon_advanced_part_create_for_part(GtkTreeIter *iter, main_window *widgets); void yon_advanced_part_create_for_part(GtkTreeIter *iter, main_window *widgets);
int yon_advanced_part_get_pos(advanced_part_widgets *part, main_window *widgets); int yon_advanced_part_get_pos(advanced_part_widgets *part, main_window *widgets);
int yon_advanced_part_get_size(advanced_part_widgets *part, main_window *widgets); int yon_advanced_part_get_size(advanced_part_widgets *part, main_window *widgets);
void yon_advanced_part_update_from_data(advanced_part_widgets *part, advanced_part_data *data); void yon_advanced_part_update_from_data(advanced_part_widgets *part, advanced_part_data *data);
void yon_advanced_part_data_unref(advanced_part_data *data); void yon_advanced_part_data_unref(advanced_part_data *data);
void on_advanced_part_content_changed(GtkWidget *, GtkWidget *, main_window *widgets); void on_advanced_part_content_changed(GtkWidget *, GtkWidget *, main_window *widgets);
gboolean on_keyboard_search_func(GtkTreeModel *model, gint ,const char *key, GtkTreeIter *iter, main_window *); gboolean on_keyboard_search_func(GtkTreeModel *model, gint, const char *key, GtkTreeIter *iter, main_window *);
void yon_update_part_sections(main_window *widgets); void yon_update_part_sections(main_window *widgets);
void on_advanced_part_toggled(GtkWidget *self); void on_advanced_part_toggled(GtkWidget *self);
void yon_advanced_part_save(main_window *widgets); void yon_advanced_part_save(main_window *widgets);
@ -1560,4 +1568,8 @@ void yon_advanced_part_to_data(advanced_part_widgets *part, advanced_part_data *
void yon_advanced_part_save_part(advanced_part_data *data); void yon_advanced_part_save_part(advanced_part_data *data);
void yon_advanced_part_remove_for_part(const char *part_name, main_window *widgets); void yon_advanced_part_remove_for_part(const char *part_name, main_window *widgets);
int yon_software_check_packages_size(GtkWidget *, main_window *widgets); int yon_software_check_packages_size(GtkWidget *, main_window *widgets);
void yon_user_admin_check(GtkWidget *self, yon_user_struct *user); void yon_user_admin_check(GtkWidget *self, main_window *widgets);
void yon_gtk_widget_set_translation(GtkWidget *target);
void on_bootloader_user_edit(GtkWidget *, main_window *widgets);
void on_bootloader_admin_toggled(GtkWidget *, char *path, main_window *widgets);
void on_bootloader_user_remove(GtkWidget *, main_window *widgets);

@ -196,6 +196,7 @@ NULL)
#define APPLICATIONS_EDIT_TITLE_LABEL _("Edit application") #define APPLICATIONS_EDIT_TITLE_LABEL _("Edit application")
#define APPLICATIONS_REMOVE_TITLE_LABEL _("Remove application") #define APPLICATIONS_REMOVE_TITLE_LABEL _("Remove application")
#define BOOTLOADER_USER_EXIST_LABEL(target) yon_char_unite(_("User")," <b>", target,"</b> ", _("is already exists. Do you really want to save user")," <b>",target,"</b>?",NULL) #define BOOTLOADER_USER_EXIST_LABEL(target) yon_char_unite(_("User")," <b>", target,"</b> ", _("is already exists. Do you really want to save user")," <b>",target,"</b>?",NULL)
#define BOOTLOADER_USER_REMOVE_LABEL(target) yon_char_unite(_("You are about to delete bootloader user"), " ", target,". ",_("Do you really want to remove user?"),NULL)
#define GRUB_PASSWORD(target) yon_char_unite("GRUB_PASSWORD[",target,"]",NULL) #define GRUB_PASSWORD(target) yon_char_unite("GRUB_PASSWORD[",target,"]",NULL)
#define WRONG_IP_LABEL _("Ip adress is incorrect") #define WRONG_IP_LABEL _("Ip adress is incorrect")

@ -338,6 +338,8 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property> <property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="visibility">False</property>
<property name="invisible-char">*</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>

@ -583,6 +583,11 @@
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.sync-symbolic</property> <property name="icon-name">com.ublinux.libublsettingsui-gtk3.sync-symbolic</property>
</object> </object>
<object class="GtkImage" id="image43">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.edit-symbolic</property>
</object>
<object class="GtkImage" id="image5"> <object class="GtkImage" id="image5">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
@ -6350,7 +6355,7 @@ Select a different installation source.</property>
<object class="GtkTreeViewColumn"> <object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Administrator</property> <property name="title" translatable="yes">Administrator</property>
<child> <child>
<object class="GtkCellRendererToggle"/> <object class="GtkCellRendererToggle" id="BootloadAdminCheckCell"/>
<attributes> <attributes>
<attribute name="active">0</attribute> <attribute name="active">0</attribute>
</attributes> </attributes>
@ -6410,6 +6415,22 @@ Select a different installation source.</property>
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkButton" id="BootloadUserEditButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image43</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> <child>
<object class="GtkButton" id="BootloadUserRemoveButton"> <object class="GtkButton" id="BootloadUserRemoveButton">
<property name="visible">True</property> <property name="visible">True</property>
@ -6423,7 +6444,7 @@ Select a different installation source.</property>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">1</property> <property name="position">2</property>
</packing> </packing>
</child> </child>
</object> </object>

Loading…
Cancel
Save