master #270

Merged
asmeron merged 23 commits from YanTheKaller/ubinstall-gtk:master into master 2 months ago

@ -3,7 +3,6 @@
<gresource prefix="/com/ublinux/ui">
<file>ubinstall-gtk.glade</file>
<file>ubinstall-gtk-language.glade</file>
<file>ubinstall-gtk-keyboard.glade</file>
<file>ubinstall-gtk-log-view.glade</file>
<file>ubinstall-gtk-warning.glade</file>
<file>ubinstall-gtk-user.glade</file>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -48,7 +48,6 @@ add_custom_target(GLADE ubinstall-gtk.glade)
set(DEPENDFILES
../ubinstall-gtk.glade
../ubinstall-gtk-language.glade
../ubinstall-gtk-keyboard.glade
../ubinstall-gtk-log-view.glade
../ubinstall-gtk-warning.glade
../ubinstall-gtk-user.glade

@ -3,6 +3,41 @@
#define toggled_icon_name "com.ublinux.libublsettingsui-gtk3.toggled-symbolic"
#define untoggled_icon_name "com.ublinux.libublsettingsui-gtk3.untoggled-symbolic"
void on_advanced_part_remove_part(GtkWidget *self, main_window *widgets){
advanced_part_widgets *part = g_object_get_data(G_OBJECT(self),"advanced_part_widgets");
advanced_part_data *data = g_object_get_data(G_OBJECT(self),"advanced_part_data");
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->PartitionsList);
for_iter (model, &iter){
char *target;
gtk_tree_model_get(model,&iter,0,&target,-1);
if (!strcmp(data->partition,target)){
gtk_widget_destroy(part->MainBox);
gtk_list_store_set(widgets->PartitionsList,&iter,7,0,-1);
free(part);
}
}
}
void on_advanced_part_remove_device(GtkWidget *self, main_window *widgets){
advanced_part_widgets *part = g_object_get_data(G_OBJECT(self),"advanced_part_widgets");
advanced_part_data *data = g_object_get_data(G_OBJECT(self),"advanced_part_data");
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->DevicesList);
for_iter (model, &iter){
char *target;
gtk_tree_model_get(model,&iter,0,&target,-1);
if (!strcmp(data->device,target)){
gtk_widget_destroy(part->MainBox);
free(part);
}
}
}
void on_advanced_part_remove_virtual(GtkWidget *, main_window *widgets){
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->AdvancedVirtualDeviceCombo),0);
}
void on_format_changed(GtkWidget *self, advanced_part_widgets *part){
int active = gtk_combo_box_get_active(GTK_COMBO_BOX(self));
switch (active){
@ -142,7 +177,8 @@ void on_advanced_virtual_device_changed(GtkWidget *, main_window *widgets){
advanced_part_data *data = g_object_get_data(G_OBJECT(part->MainBox),"advanced_part_data");
free(data->device);
data->device = yon_char_new(device);
// yon_advanced_part_update_from_data(part, data);
yon_advanced_part_update_from_data(part, data);
yon_update_part_sections(widgets);
} else {
if (yon_advanced_part_check_count(widgets)){
advanced_part_data *data = yon_advanced_part_data_new();
@ -150,7 +186,9 @@ void on_advanced_virtual_device_changed(GtkWidget *, main_window *widgets){
data->device = yon_char_new(device);
advanced_part_widgets *part = yon_advanced_part_create(data);
gtk_box_pack_start(GTK_BOX(widgets->AdvancedPartitionAddBox),part->MainBox,0,0,0);
// yon_advanced_part_update_from_data(part, data);
g_signal_connect(G_OBJECT(part->RemoveButton),"clicked",G_CALLBACK(on_advanced_part_remove_virtual),widgets);
yon_advanced_part_update_from_data(part, data);
yon_update_part_sections(widgets);
} else {
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->AdvancedVirtualDeviceCombo),0);
@ -170,6 +208,27 @@ void on_advanced_virtual_device_changed(GtkWidget *, main_window *widgets){
// yon_advanced_update(widgets);
}
void yon_update_part_sections(main_window *widgets){
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->AdvancedPartitionAddBox));
int parts_size = g_list_length(list);
if (list){
advanced_part_widgets *part = g_object_get_data(G_OBJECT(list->data),"advanced_part_widgets");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(part->SystemSectionToggle),1);
if (parts_size==2){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(part->UserDataSectionToggle),0);
} else {
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(part->UserDataSectionToggle),1);
}
if (list->next){
advanced_part_widgets *part = g_object_get_data(G_OBJECT(list->next->data),"advanced_part_widgets");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(part->SystemSectionToggle),0);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(part->UserDataSectionToggle),1);
}
g_list_free(list);
}
}
int yon_advanced_part_get_size(advanced_part_widgets *part, main_window *widgets){
GList *list = NULL;
if (widgets){
@ -257,18 +316,6 @@ void yon_advanced_part_update_from_data(advanced_part_widgets *part, advanced_pa
gtk_label_set_text(GTK_LABEL(part->SectionLabel),source_string);
//toggle buttons
int pos = yon_advanced_part_get_pos(part,NULL);
int size = yon_advanced_part_get_size(part,NULL);
if (size == 1){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(part->SystemSectionToggle),1);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(part->UserDataSectionToggle),1);
} else if (pos == 0){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(part->SystemSectionToggle),1);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(part->UserDataSectionToggle),0);
} else if (pos == 1){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(part->SystemSectionToggle),0);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(part->UserDataSectionToggle),1);
}
// format
int format = 0;
@ -305,8 +352,10 @@ void yon_advanced_part_create_for_device(GtkTreeIter *iter, main_window *widgets
advanced_part_data *data = yon_advanced_part_data_new();
data->device = target;
advanced_part_widgets *part = yon_advanced_part_create(data);
g_signal_connect(G_OBJECT(part->RemoveButton),"clicked",G_CALLBACK(on_advanced_part_remove_device),widgets);
gtk_box_pack_start(GTK_BOX(widgets->AdvancedPartitionAddBox),part->MainBox,0,0,0);
// yon_advanced_part_update_from_data(part,data);
yon_advanced_part_update_from_data(part,data);
yon_update_part_sections(widgets);
}
}
@ -317,8 +366,10 @@ void yon_advanced_part_create_for_part(GtkTreeIter *iter, main_window *widgets){
advanced_part_data *data = yon_advanced_part_data_new();
data->partition = target;
advanced_part_widgets *part = yon_advanced_part_create(data);
g_signal_connect(G_OBJECT(part->RemoveButton),"clicked",G_CALLBACK(on_advanced_part_remove_part),widgets);
gtk_box_pack_start(GTK_BOX(widgets->AdvancedPartitionAddBox),part->MainBox,0,0,0);
// yon_advanced_part_update_from_data(part,data);
yon_advanced_part_update_from_data(part,data);
yon_update_part_sections(widgets);
}
}
@ -347,8 +398,6 @@ void yon_advanced_part_add_parts_for_device(const char *device_name, main_window
6,free_space, 8,1,
9,yon_char_return_if_exist(parsed[7],""), 10,yon_char_return_if_exist(parsed[0],""),
11,yon_char_return_if_exist(parsed[10],""),-1);
// } else {
// gtk_list_store_set(widgets->PartitionsList,&iter, );
}
}
@ -480,6 +529,7 @@ advanced_part_widgets *yon_advanced_part_create(advanced_part_data *part_data){
g_object_set_data(G_OBJECT(part->MainBox),"advanced_part_data",part_data);
g_object_set_data(G_OBJECT(part->SizeCombo),"advanced_part_widgets",part);
g_object_set_data(G_OBJECT(part->RemoveButton),"advanced_part_widgets",part);
g_object_set_data(G_OBJECT(part->RemoveButton),"advanced_part_data",part_data);
g_object_set_data(G_OBJECT(part->SystemSectionToggle),"advanced_part_widgets",part);
g_object_set_data(G_OBJECT(part->UserDataSectionToggle),"advanced_part_widgets",part);

@ -7,9 +7,9 @@ int yon_bootloader_save(main_window *widgets){
} else {
yon_config_remove_by_key(GRUB_TIMEOUT_parameter);
}
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");
GtkTreeIter iter;
yon_config_register(AUTOLOGINUSER_parameter,AUTOLOGINUSER_parameter_command,"yes");
GtkTreeModel *model = GTK_TREE_MODEL(widgets->BootloadUsersList);
int admin_size=0;
config_str admin_list = NULL;
@ -22,8 +22,12 @@ int yon_bootloader_save(main_window *widgets){
}
char *admin_string = yon_char_parsed_to_string(admin_list,admin_size,",");
yon_config_register(GRUB_PASSWORD_parameter(username),GRUB_PASSWORD_parameter_command(username),password);
if (!yon_char_is_empty(admin_string)){
yon_config_register(GRUB_SUPERUSERS_parameter,GRUB_SUPERUSERS_parameter_command,admin_string);
free(admin_string);
} else {
yon_config_remove_by_key(GRUB_SUPERUSERS_parameter);
}
}
} else {
int size;
@ -31,7 +35,7 @@ int yon_bootloader_save(main_window *widgets){
for (int i=0;i<size;i++){
yon_config_remove_by_key(GRUB_PASSWORD_parameter(users[i]));
}
yon_config_register(AUTOLOGINUSER_parameter,AUTOLOGINUSER_parameter_command,"no");
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);
}
@ -46,6 +50,8 @@ void yon_password_change(GtkWidget *, bootloader_user_window *window){
yon_password_window *dialog = yon_password_open(output_target);
yon_gtk_window_setup(GTK_WINDOW(dialog->Window),GTK_WINDOW(window->Window),NULL,icon_path,"password_window");
gtk_widget_show(window->Window);
yon_password_hash_list_set(dialog,NULL,NULL,0);
// gtk_widget_hide(window->AdminCheck);
}
@ -68,7 +74,7 @@ void on_bootloader_user_accept(GtkWidget *, bootloader_user_window *window){
}
}
}
const char *password = gtk_entry_get_text(GTK_ENTRY(window->PasswordEntry));
char *password = yon_char_new(gtk_entry_get_text(GTK_ENTRY(window->PasswordEntry)));
if (yon_char_is_empty(username)){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),_EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->UsernameEntry);
@ -78,49 +84,55 @@ void on_bootloader_user_accept(GtkWidget *, bootloader_user_window *window){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),_EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(window->PasswordEntry);
return;
}
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);
if (strstr(password,"|")){
int pos = yon_char_find_last(password,'|');
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;
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,"******",-1);
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);
}
}
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);
}
@ -458,9 +470,9 @@ void yon_bootloader_init(main_window *widgets){
} else {
gtk_entry_set_text(GTK_ENTRY(widgets->BootloadDefaultOSEntry),DEFAULT_BOOTLOAD_MENU_ITEM_LABEL);
}
if (!yon_char_is_empty(autologin)&&(!strcmp(autologin,"yes")||!strcmp(autologin,"enable"))){
if (!yon_char_is_empty(autologin)&&(!strcmp(autologin,"no")||!strcmp(autologin,"disable"))){
gtk_list_store_clear(widgets->BootloadUsersList);
gtk_switch_set_active(GTK_SWITCH(widgets->BootloadNoPasswordSwitch),1);
gtk_switch_set_active(GTK_SWITCH(widgets->BootloadNoPasswordSwitch),0);
int admins_size;
config_str admins_parsed = yon_char_parse(admins,&admins_size,",");
GtkTreeIter iter;
@ -468,13 +480,17 @@ void yon_bootloader_init(main_window *widgets){
char *parameter = yon_char_new(users[i]);
char *parameter_name = yon_char_divide_search(parameter,"=",-1);
char *key = yon_config_parameter_get_key(parameter_name);
char *key_sub = key+yon_char_find_last(key,'[');
char *subkey = yon_config_parameter_get_key(key_sub);
gtk_list_store_append(widgets->BootloadUsersList,&iter);
gtk_list_store_set(widgets->BootloadUsersList,&iter,0,yon_char_parsed_check_exist(admins_parsed,admins_size,key),1,key,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);
free(parameter);
free(parameter_name);
free(key);
free(subkey);
}
yon_char_parsed_free(admins_parsed,admins_size);
} else {
gtk_switch_set_active(GTK_SWITCH(widgets->BootloadNoPasswordSwitch),1);
}
}

@ -109,9 +109,11 @@ int yon_os_components_save(main_window *widgets){
yon_config_register(modules_parameter,modules_parameter_command,final);
} else {
// yon_config_remove_by_key(modules_parameter);
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NOTHING_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
if(main_config.configure_mode)
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),MAIN_COMPONENTS_ALL_SELECTED_LABEL,5,BACKGROUND_IMAGE_INFO_TYPE);
else
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NOTHING_CHOSEN_LABEL,5,BACKGROUND_IMAGE_INFO_TYPE);
yon_ubl_status_highlight_incorrect(widgets->OSSoftwareListBox);
return 0;
}
return 1;
}
@ -142,12 +144,14 @@ os_row *yon_os_row_new(){
void *yon_modules_list_load(main_window *widgets){
if (!getuid()||!yon_char_is_empty(config(source_parameter))){
int size;
config_str modules = yon_config_load(yon_debug_output("%s\n",get_modules_command),&size);
for(int i=1;i<size;i++){
yon_char_remove_last_symbol(modules[i],'\n');
int parsed_size;
config_str parsed = yon_char_parse(modules[i],&parsed_size,";");
int parsed_size=0;
config_str parsed = NULL;
parsed = yon_char_parse(modules[i],&parsed_size,";");
struct row_data *row = malloc(sizeof(struct row_data));
row->version = parsed[3];
row->name = parsed[1];
@ -163,10 +167,11 @@ void *yon_modules_list_load(main_window *widgets){
free(temp);
g_idle_add((GSourceFunc)yon_os_component_insert,row);
}
g_idle_add((GSourceFunc)yon_spinner_switch_off,widgets->OSSpinner);
if (main_config.modules_size) yon_char_parsed_free(main_config.modules,main_config.modules_size);
main_config.modules = modules;
main_config.modules_size = size;
}
g_idle_add((GSourceFunc)yon_spinner_switch_off,widgets->OSSpinner);
g_thread_exit(NULL);
}
@ -196,7 +201,7 @@ gboolean yon_os_component_insert(struct row_data *row_input){
main_window *widgets = row_input->widgets;
g_signal_connect(G_OBJECT(row->InstallCheck),"toggled",G_CALLBACK(yon_os_components_check_packages_size),widgets);
gtk_list_box_insert(GTK_LIST_BOX(widgets->OSSoftwareListBox),row->row,-1);
yon_os_row_setup(row,row_input->name,row_input->version,row_input->tags,_(row_input->description), row_input->source, row_input->size);
yon_os_row_setup(row,row_input->name,row_input->version,row_input->tags,!yon_char_is_empty(row_input->description)?(row_input->description):"", row_input->source, row_input->size);
char *modules = config(modules_parameter);
if (yon_char_is_empty(modules)||yon_char_check_element(modules,row_input->name,",")||!strcmp(modules,"auto")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),1);

@ -288,7 +288,6 @@ void on_kernel_addon_info(GtkLabel *self){
yon_packages_info *info_struct = yon_packages_get_info_struct(YON_PACKAGES_ALL,package);
if (!info_struct) return;
char* info_string = yon_packages_get_info_string(info_struct);
yon_debug_output("%s\n",info_string);
config_str info = yon_char_parse(info_string,&size,"\n");
if (size>0){
info_element *element = yon_package_info_element_new();

@ -216,7 +216,24 @@ void on_system_layouts_add(GtkWidget *, main_window *widgets){
yon_layouts_add(GTK_TREE_VIEW(widgets->KeyboardLayoutTree),widgets->LayoutsList,widgets);
}
gboolean on_keyboard_search_func(GtkTreeModel *model, gint ,const char *key, GtkTreeIter *iter, main_window *){
char *target;
char *loc_target;
char *code;
gtk_tree_model_get(model, iter, 0,&code, 4,&target, 2, &loc_target,-1);
char *string_utf = g_utf8_casefold(key,-1);
char *target_utf = g_utf8_casefold(target,-1);
char *loc_target_utf = g_utf8_casefold(loc_target,-1);
char *string_normalized = g_utf8_strdown(g_utf8_normalize(string_utf,-1,G_NORMALIZE_DEFAULT),-1);
char *target_normalized = g_utf8_strdown(g_utf8_normalize(target_utf,-1,G_NORMALIZE_DEFAULT),-1);
char *loc_target_normalized = g_utf8_strdown(g_utf8_normalize(loc_target_utf,-1,G_NORMALIZE_DEFAULT),-1);
return !(g_str_has_prefix(target_normalized,string_normalized) || g_str_has_prefix(loc_target_normalized,string_normalized) || !strcmp(code,string_normalized));
}
layouts_window *yon_layouts_window_new(){
textdomain(LocaleName);
GtkBuilder *builder = gtk_builder_new_from_resource(glade_layouts_path);
layouts_window *window = malloc(sizeof(layouts_window));
memset(window,0,sizeof(layouts_window));
@ -227,6 +244,7 @@ layouts_window *yon_layouts_window_new(){
window->MainTree = yon_gtk_builder_get_widget(builder,"LayoutsTree");
window->parameters = yon_char_new(config(xkblayout_parameter));
gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(window->MainTree),(GtkTreeViewSearchEqualFunc)on_keyboard_search_func,window,NULL);
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
g_signal_connect(G_OBJECT(window->ChosenCell),"toggled",G_CALLBACK(on_layouts_chosen),window);
return window;
@ -234,7 +252,7 @@ layouts_window *yon_layouts_window_new(){
void yon_layouts_add(GtkTreeView *, GtkListStore *, main_window *widgets){
layouts_window *window = yon_layouts_window_new();
yon_gtk_window_setup(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->MainWindow),TITLE_LABEL,icon_path,"layout_window");
yon_gtk_window_setup(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->MainWindow),KEYBOARD_LAYOUT_LABEL,icon_path,"layout_window");
window->list = main_config.layouts_store;
@ -351,14 +369,14 @@ void yon_layout_build(layouts_window *window){
int parsed_size;
config_str parsed = yon_char_parse(layouts[i],&parsed_size,"|");
gtk_tree_store_append(window->list,&parent,NULL);
gtk_tree_store_set(window->list,&parent,0,parsed[0],2,_(parsed[1]),-1);
gtk_tree_store_set(window->list,&parent,0,parsed[0],2,_(parsed[1]),4,parsed[1],-1);
int variants_size;
config_str variants = yon_layout_get_children(parsed[0],&variants_size);
yon_char_parsed_free(parsed,parsed_size);
for (int k=0;k<variants_size;k++){
parsed = yon_char_parse(variants[k],&parsed_size,"|");
gtk_tree_store_append(window->list,&iter,&parent);
gtk_tree_store_set(window->list,&iter,0,parsed[0],1,parsed[1],2,_(parsed[2]),-1);
gtk_tree_store_set(window->list,&iter,0,parsed[0],1,parsed[1],2,_(parsed[2]),4,parsed[2],-1);
yon_char_parsed_free(parsed,parsed_size);
}
yon_char_parsed_free(variants,variants_size);

@ -100,7 +100,7 @@ gboolean yon_locale_window_set_locales(struct locales_struct *data){
if(!yon_char_is_empty(data->lang)) free(data->lang);
if(!yon_char_is_empty(data->locale)) free(data->locale);
if(!yon_char_is_empty(data->territory)) free(data->territory);
if(!yon_char_is_empty(data->lang)) free(data);
if(data) free(data);
return G_SOURCE_REMOVE;
}
@ -183,7 +183,9 @@ language_window *yon_language_window_new(char *chosen_languages){
g_signal_connect(G_OBJECT(window->ToggleCell),"toggled",G_CALLBACK(on_locale_toggle),window);
yon_gtk_tree_view_minimal_fixed_size_set_full(GTK_TREE_VIEW(window->LanguagesTree));
if (!yon_char_is_empty(window->languages)){
gtk_entry_set_text(GTK_ENTRY(window->ManualEntry),chosen_languages);
}
gtk_overlay_add_overlay(GTK_OVERLAY(window->LoadingOverlay),window->LoadingSpinner);
g_thread_new("locales-thread",(GThreadFunc)yon_locales_load_func,window);

@ -216,7 +216,7 @@ void yon_navigation_buttons_set_sensetiveness(main_window *widgets){
} break;
case YON_PAGE_CONFIG_HUB:{
gtk_widget_show(widgets->NextButton);
gtk_widget_show(widgets->BackButton);
gtk_widget_hide(widgets->BackButton);
gtk_button_set_label(GTK_BUTTON(widgets->NextButton),NEXT_LABEL);
GtkWidget *image = gtk_button_get_image(GTK_BUTTON(widgets->NextButton));
gtk_image_set_from_icon_name(GTK_IMAGE(image),arrow_right_icon_path,GTK_ICON_SIZE_BUTTON);

@ -105,6 +105,7 @@ void on_zone_changed(GtkWidget *, main_window *widgets){
void on_map_selection_changed(GtkWidget *,CcTimezoneLocation *location,main_window *widgets){
if (!location) return;
g_signal_handlers_block_by_func(G_OBJECT(widgets->ZoneCombo),G_CALLBACK(on_zone_changed),widgets);
g_signal_handlers_block_by_func(G_OBJECT(widgets->RegionMapTarget),G_CALLBACK(on_map_selection_changed),widgets);
g_signal_handlers_block_by_func(G_OBJECT(widgets->RegionEntry),G_CALLBACK(on_region_entry_changed),widgets);
char *zone = yon_char_new(cc_timezone_location_get_zone(location));
char *region = yon_char_divide_search(zone,"/",-1);
@ -112,7 +113,7 @@ void on_map_selection_changed(GtkWidget *,CcTimezoneLocation *location,main_wind
char *timezone = (char*)cc_timezone_location_get_zone(location);
GtkTreeIter iter;
int found = 0;
// int found = 0;
for_iter(widgets->RegionTimezoneCompletionList,&iter){
char *render, *tz;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->RegionTimezoneCompletionList),&iter,0,&render,1,&tz,-1);
@ -123,22 +124,24 @@ void on_map_selection_changed(GtkWidget *,CcTimezoneLocation *location,main_wind
gtk_entry_set_text(GTK_ENTRY(widgets->RegionEntry),render);
char *utc = yon_timezone_get_utc(tz);
yon_map_status_show(widgets,NULL,MAP_TITLE_LABEL(utc),render);
found = 1;
// found = 1;
break;
}
}
if (!found){
const char *region = gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->RegionCombo));
const char *zone = gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->ZoneCombo));
char *timezone = yon_char_unite(region,"/",zone,NULL);
g_signal_handlers_block_by_func(G_OBJECT(widgets->RegionMapTarget),G_CALLBACK(on_map_selection_changed),widgets);
cc_timezone_map_set_timezone(CC_TIMEZONE_MAP(widgets->RegionMapTarget),timezone);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->RegionMapTarget),G_CALLBACK(on_map_selection_changed),widgets);
free(timezone);
}
// if (!found){
// const char *region = gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->RegionCombo));
// const char *zone = gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->ZoneCombo));
// char *timezone = yon_char_unite(region,"/",zone,NULL);
// g_signal_handlers_block_by_func(G_OBJECT(widgets->RegionMapTarget),G_CALLBACK(on_map_selection_changed),widgets);
// cc_timezone_map_set_timezone(CC_TIMEZONE_MAP(widgets->RegionMapTarget),timezone);
// g_signal_handlers_unblock_by_func(G_OBJECT(widgets->RegionMapTarget),G_CALLBACK(on_map_selection_changed),widgets);
// free(timezone);
// }
if (!yon_char_is_empty(region)) free(region);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->ZoneCombo),G_CALLBACK(on_zone_changed),widgets);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->RegionMapTarget),G_CALLBACK(on_map_selection_changed),widgets);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->RegionEntry),G_CALLBACK(on_region_entry_changed),widgets);
}

@ -359,7 +359,6 @@ int yon_config_save(main_window *widgets){
SERVICES_ENABLE_parameter,
GRUB_DEFAULT_parameter,
GRUB_TIMEOUT_parameter,
AUTOLOGINUSER_parameter,
GRUB_SUPERUSERS_parameter,
DOMAIN_parameter,
DOMAIN_admanger_parameter,

@ -67,17 +67,20 @@ void yon_startup_language_init(){
{
if (size>0&&!yon_char_is_empty(parsed[0])&&strcmp(parsed[0],"(null)\n")){
yon_char_remove_last_symbol(parsed[0],'\n');
if (strstr(parsed[0],"="))
free(yon_char_divide_search(parsed[0],"=",-1));
yon_config_register(installer_locale_parameter,installer_locale_parameter_command,parsed[0]);
}
if (size>1&&!yon_char_is_empty(parsed[1])&&strcmp(parsed[1],"(null)\n")){
yon_char_remove_last_symbol(parsed[1],'\n');
if (strstr(parsed[0],"="))
free(yon_char_divide_search(parsed[1],"=",-1));
yon_char_remove_brackets(parsed[1]);
yon_config_register(installer_locale_parameter,installer_locale_parameter_command,parsed[1]);
}
if (size>2&&!yon_char_is_empty(parsed[2])&&strcmp(parsed[2],"(null)\n")){
yon_char_remove_last_symbol(parsed[2],'\n');
if (strstr(parsed[0],"="))
free(yon_char_divide_search(parsed[2],"=",-1));
yon_char_remove_brackets(parsed[2]);
yon_config_register(installer_locale_parameter,installer_locale_parameter_command,parsed[2]);
@ -101,8 +104,11 @@ void yon_main_window_update_locale(main_window *widgets){
locale = lang;
}
}
if (yon_char_is_empty(locale)){
locale = setlocale(LC_ALL,NULL);
}
locale = setlocale(LC_ALL,(char *)locale);
}
setlocale(LC_ALL,(char *)locale);
yon_config_register(installer_locale_parameter,installer_locale_parameter_command,(char*)locale);
// gtk_widget_destroy(widgets->MainWindow);

@ -204,7 +204,7 @@ void config_init(){
}
yon_char_parsed_free(languages,size);
main_config.layouts_store = gtk_tree_store_new(4,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_BOOLEAN);
main_config.layouts_store = gtk_tree_store_new(5,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_STRING,G_TYPE_BOOLEAN,G_TYPE_STRING);
main_config.variants_list = yon_config_load(layouts_variant_command,&main_config.variants_size);
main_config.layouts_list = yon_config_load(layouts_command,&main_config.layouts_size);
for (int i=0;i<main_config.variants_size;i++){
@ -874,6 +874,7 @@ void yon_main_window_create(main_window *widgets){
}
gtk_window_set_title(GTK_WINDOW(widgets->MainWindow),TITLE_LABEL);
gtk_label_set_text(GTK_LABEL(gtk_builder_get_object(builder,"headerTopic")),TITLE_LABEL);
gtk_window_set_icon_name(GTK_WINDOW(widgets->MainWindow),icon_path);
}
gtk_builder_connect_signals(builder,NULL);
@ -956,13 +957,12 @@ main_window *yon_main_window_complete(){
int main(int argc, char *argv[]){
// __attribute__((unused)) char *locale = setlocale(LC_ALL, "en_US.UTF-8");
textdomain(LocaleName);
yon_ubl_connect_config((_template_config*)&main_config);
config_init();
config_str unfound = NULL;
int size=0;
opterr=0;
yon_ubl_window_init(TITLE_LABEL,"",LocaleName,CssPath,LocaleName,version_application,WIKI_LINK);
yon_ubl_connect_config((_template_config*)&main_config);
textdomain(LocaleName);
config_init();
yon_ubl_setup_arguments(argc,argv,&unfound,&size,ADDITIONAL_ARGS);
if (size) {
int option_index = 0;
@ -987,6 +987,7 @@ int main(int argc, char *argv[]){
}
}
gtk_init(&argc,&argv);
yon_ubl_window_init(TITLE_LABEL,"",LocaleName,CssPath,LocaleName,version_application,WIKI_LINK);
main_window *widgets = NULL;
GtkCssProvider *css=gtk_css_provider_new();
gtk_css_provider_load_from_resource(css,CssPath);

@ -20,7 +20,6 @@
#define _(String) gettext(String)
#define glade_path "/com/ublinux/ui/ubinstall-gtk.glade"
#define glade_path_ubinstall_keyboard "/com/ublinux/ui/ubinstall-gtk-keyboard.glade"
#define glade_path_ubinstall_language "/com/ublinux/ui/ubinstall-gtk-language.glade"
#define glade_path_network_info "/com/ublinux/ui/ubinstall-gtk-network-box.glade"
#define glade_path_log_view "/com/ublinux/ui/ubinstall-gtk-log-view.glade"
@ -184,7 +183,7 @@ layout && /description:/ {\
#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_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [keyboard] XKBOPTIONS']"
#define hostname_parameter "AUTOINSTALL[ubconfig set [system] HOSTNAME]"
#define hostname_parameter "AUTOINSTALL[ubconfig set [system] HOSTNAMEe]"
#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_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [clock] ZONE']"
@ -265,9 +264,9 @@ layout && /description:/ {\
#define get_localisation_command "ubconfig -ea --source global get [autoinstall] AUTOINSTALL[installer_locale] -- get [autoinstall] AUTOINSTALL['ubconfig set [locale] LANG'] -- get [locale] LANG"
#define save_config_command(parameters) yon_char_unite("ubconfig --target system set [autoinstall] AUTOINSTALL[log]=yes ", parameters, "; nice ubinstall --debug autoinstall", NULL)
#define save_config_command(parameters) yon_char_unite("ubconfig --target system set [autoinstall] AUTOINSTALL[log]=yes ", parameters, "; nice ubinstall autoinstall --noautoconfig --noinstall_extra", NULL)
#define set_user_config_command(parameters) yon_char_unite("ubconfig --target system set [autoinstall] ", parameters, ";nice ubinstall autoconfig", NULL)
#define set_user_config_command(parameters) yon_char_unite("ubconfig --target system set [autoinstall] ", parameters, ";nice ubinstall autoconfig install_extra", NULL)
#define save_additional_config_command(parameters) yon_char_unite("ubconfig --target system set [autoinstall] ", parameters, NULL)
#define get_default_password_command "ubconfig --raw --conarg --source default get [users] NOSECUREROOTPASSWD"
@ -1358,7 +1357,9 @@ void on_install_advanced_partition_chosen(GtkCellRenderer *, gchar *path, main_w
void yon_devices_setup(main_window *widgets);
void on_advanced_password_clicked(GtkWidget *, advanced_part_widgets *part);
advanced_part_widgets *yon_advanced_partition_new();
void on_advanced_part_remove(GtkWidget *self, main_window *widgets);
void on_advanced_part_remove_device(GtkWidget *self, main_window *widgets);
void on_advanced_part_remove_part(GtkWidget *self, main_window *widgets);
void on_advanced_part_remove_virtual(GtkWidget *self, main_window *widgets);
int yon_advanced_get_part_size(main_window *widgets);
void yon_advanced_partition_clear(main_window *widgets);
void yon_os_row_setup(os_row *row, char *name, char *version, char *tags, char *description, char *source, char *size);
@ -1548,3 +1549,5 @@ 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_data_unref(advanced_part_data *data);
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 *);
void yon_update_part_sections(main_window *widgets);

@ -578,4 +578,5 @@ For more information, visit our website the \"Support Levels\" section.")
#define slide_22_title _("Network Boot")
#define slide_22_text _("Allows system booting for diskless and standard workstations over a local network or the Internet (even over slow connection channels).")
#define MAIN_COMPONENTS_NOT_FOUND_LABEL _("Main components does not found. Proceed back to installation type selection page and use \"Select sources\" button from below")
#define MAIN_COMPONENTS_NOT_FOUND_LABEL _("No modules were found.\nSelect a different installation source")
#define MAIN_COMPONENTS_ALL_SELECTED_LABEL _("All local modules of the system are selected")

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.40.0 -->
<interface domain="ubl-settings-keyboard">
<interface domain="ubinstall-gtk">
<requires lib="gtk+" version="3.24"/>
<object class="GtkImage" id="image1">
<property name="visible">True</property>

@ -1,164 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.40.0 -->
<interface domain="ubinstall-gtk">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubinstall-gtk.css -->
<object class="GtkWindow" id="MainWindow">
<property name="width-request">200</property>
<property name="height-request">400</property>
<property name="can-focus">False</property>
<property name="modal">True</property>
<property name="default-width">800</property>
<property name="icon-name">com.ublinux.ubinstall-gtk</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox" id="StatusBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="LayoutsTree">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="expander-column">treeviewcolumn1</property>
<property name="search-column">0</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn" id="treeviewcolumn1">
<property name="title" translatable="yes">Chosen</property>
<child>
<object class="GtkCellRendererToggle" id="ActiveToggle"/>
<attributes>
<attribute name="visible">2</attribute>
<attribute name="active">3</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Id</property>
<property name="sort-indicator">True</property>
<property name="sort-column-id">0</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Layout</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">1</attribute>
</attributes>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
<child type="titlebar">
<object class="GtkHeaderBar" id="headerBar">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child type="title">
<object class="GtkLabel" id="headerTopic">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Keyboard layout language</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
<child>
<object class="GtkImage" id="HeadImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubinstall-gtk</property>
</object>
</child>
<child>
<object class="GtkButton" id="CancelButton">
<property name="label" translatable="yes">Cancel</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="SaveButton">
<property name="label" translatable="yes">Ok</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
<packing>
<property name="pack-type">end</property>
<property name="position">2</property>
</packing>
</child>
<style>
<class name="toolbar"/>
</style>
</object>
</child>
</object>
</interface>

@ -2080,6 +2080,16 @@ agreement</property>
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="selection-mode">none</property>
<child type="placeholder">
<object class="GtkLabel" id="OSSoftwareEmptyLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">No modules were found.
Select a different installation source.</property>
<property name="justify">center</property>
<property name="wrap">True</property>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>

Loading…
Cancel
Save