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

Reviewed-on: #160
pull/165/head
Dmitry Razumov 5 months ago
commit 80b9943cb0

@ -10,6 +10,7 @@
<file>ubinstall-gtk-menu.glade</file> <file>ubinstall-gtk-menu.glade</file>
<file>ubinstall-gtk-menu-item.glade</file> <file>ubinstall-gtk-menu-item.glade</file>
<file>ubinstall-gtk-kernel-row.glade</file> <file>ubinstall-gtk-kernel-row.glade</file>
<file>ubinstall-gtk-kernel-addon-row.glade</file>
<file>ubinstall-gtk-os-row.glade</file> <file>ubinstall-gtk-os-row.glade</file>
<file>ubinstall-gtk-service-window.glade</file> <file>ubinstall-gtk-service-window.glade</file>
<file>ubinstall-gtk-bootloader-user.glade</file> <file>ubinstall-gtk-bootloader-user.glade</file>

@ -451,7 +451,7 @@ msgid "Installation configuration has ended"
msgstr "" msgstr ""
#: source/ubl-strings.h:124 #: source/ubl-strings.h:124
msgid "system installation is about to begin" msgid "System installation is about to begin"
msgstr "" msgstr ""
#: source/ubl-strings.h:126 #: source/ubl-strings.h:126
@ -1184,3 +1184,21 @@ msgstr ""
#: source/ubl-strings.h:331 #: source/ubl-strings.h:331
msgid "About system installation" msgid "About system installation"
msgstr "" msgstr ""
#: source/ubl-strings.h:331
msgid "Repeating values"
msgstr ""
#: source/ubl-strings.h:331
msgid "Package information"
msgstr ""
#: source/ubl-strings.h:331
msgid "<i><b>Package:</b></i>"
msgstr ""
#: source/ubl-strings.h:331
msgid "<i><b>Module:</b></i>"
msgstr ""

@ -471,7 +471,7 @@ msgid "Installation configuration has ended"
msgstr "Настройка установщика завершена" msgstr "Настройка установщика завершена"
#: source/ubl-strings.h:124 #: source/ubl-strings.h:124
msgid "system installation is about to begin" msgid "System installation is about to begin"
msgstr "Начало установки системы" msgstr "Начало установки системы"
#: source/ubl-strings.h:126 #: source/ubl-strings.h:126
@ -3024,3 +3024,19 @@ msgstr "Зулу"
msgid "Zurich" msgid "Zurich"
msgstr "Цюрих" msgstr "Цюрих"
#: source/ubl-strings.h:331
msgid "Repeating values"
msgstr "Повторяющиеся значения"
#: source/ubl-strings.h:331
msgid "Package information"
msgstr "Информация о пакете"
#: source/ubl-strings.h:331
msgid "<i><b>Package:</b></i>"
msgstr "<i><b>Пакет:</b></i>"
#: source/ubl-strings.h:331
msgid "<i><b>Module:</b></i>"
msgstr "<i><b>Модуль:</b></i>"

@ -63,6 +63,7 @@ set(DEPENDFILES
../ubinstall-gtk-menu.glade ../ubinstall-gtk-menu.glade
../ubinstall-gtk-menu-item.glade ../ubinstall-gtk-menu-item.glade
../ubinstall-gtk-kernel-row.glade ../ubinstall-gtk-kernel-row.glade
../ubinstall-gtk-kernel-addon-row.glade
../ubinstall-gtk-os-row.glade ../ubinstall-gtk-os-row.glade
../ubinstall-gtk-service-window.glade ../ubinstall-gtk-service-window.glade
../ubinstall-gtk-bootloader-user.glade ../ubinstall-gtk-bootloader-user.glade

@ -204,7 +204,14 @@ void yon_os_components_init(main_window *widgets){
list = gtk_container_get_children(GTK_CONTAINER(widgets->OSSoftwareListBox)); list = gtk_container_get_children(GTK_CONTAINER(widgets->OSSoftwareListBox));
for(iter = list;iter;iter=iter->next){ for(iter = list;iter;iter=iter->next){
os_row *row = g_object_get_data(iter->data,"kernel_row"); os_row *row = g_object_get_data(iter->data,"kernel_row");
gtk_widget_set_size_request(row->NameLabel,size,-1); int cur_size = 0;
gtk_widget_realize(row->RowBox);
gtk_widget_get_preferred_width(row->RowBox,&cur_size,NULL);
if (size<cur_size)size=cur_size;
}
for(iter = list;iter;iter=iter->next){
os_row *row = g_object_get_data(iter->data,"kernel_row");
gtk_widget_set_size_request(row->RowBox,size,-1);
} }
} }
@ -225,72 +232,58 @@ void yon_os_components_init(main_window *widgets){
} }
} }
int yon_software_save(main_window *widgets){ int yon_software_save(main_window *){
GtkTreeIter iter; // GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->AdditionalSoftwareList); // GtkTreeModel *model = GTK_TREE_MODEL(widgets->AdditionalSoftwareList);
int size = 0; // int size = 0;
config_str modules = NULL; // config_str modules = NULL;
for_iter(model,&iter){ // for_iter(model,&iter){
char *target; // char *target;
int status; // int status;
gtk_tree_model_get(model,&iter,0,&status,1,&target,-1); // gtk_tree_model_get(model,&iter,0,&status,1,&target,-1);
if (status){ // if (status){
yon_char_parsed_add_or_create_if_exists(modules,&size,target); // yon_char_parsed_add_or_create_if_exists(modules,&size,target);
} // }
} // }
if (size){ // if (size){
char *final = yon_char_parsed_to_string(modules,size,","); // char *final = yon_char_parsed_to_string(modules,size,",");
char *parameter = config(modules_extra_parameter); // char *parameter = config(modules_extra_parameter);
char *parameter_new = yon_char_unite(!yon_char_is_empty(parameter)?parameter:"",!yon_char_is_empty(parameter)?",":"",final,NULL); // char *parameter_new = yon_char_unite(!yon_char_is_empty(parameter)?parameter:"",!yon_char_is_empty(parameter)?",":"",final,NULL);
yon_config_register(modules_extra_parameter,modules_extra_parameter_command,parameter_new); // yon_config_register(modules_extra_parameter,modules_extra_parameter_command,parameter_new);
free(parameter_new); // free(parameter_new);
} // }
if (!main_config.configure_mode){ // if (!main_config.configure_mode){
int size; // int size;
config_str parameters = yon_config_get_save_parameters_by_key(&size,modules_extra_parameter,NULL); // config_str parameters = yon_config_get_save_parameters_by_key(&size,modules_extra_parameter,NULL);
if (parameters){ // if (parameters){
char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); // char *command_parameters = yon_char_parsed_to_string(parameters,size," -- ");
char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); // char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL);
if (!system(yon_debug_output("%s\n",command))){} // if (!system(yon_debug_output("%s\n",command))){}
free(command); // free(command);
yon_char_parsed_free(parameters,size); // yon_char_parsed_free(parameters,size);
} // }
} // }
return 1; return 1;
} }
void yon_software_init(main_window *widgets){ void yon_software_init(main_window *widgets){
GtkTreeIter iter; int base_size;
if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->AdditionalSoftwareList),&iter)){ config_str base = yon_config_load(get_modules_command,&base_size);
int size; for (int i=0;i<base_size;i++){
config_str parsed = NULL; yon_char_remove_last_symbol(base[i],'\n');
parsed = yon_resource_open_file(additional_software_path,&size); int parsed_size;
for (int i=1;i<size;i++){ config_str parsed = yon_char_parse(base[i],&parsed_size,";");
int module_size; struct row_data *row = malloc(sizeof(struct row_data));
config_str module_parsed = yon_char_parse(parsed[i],&module_size,"|"); row->version = parsed[1];
if (module_size){ row->name = parsed[0];
gtk_list_store_append(widgets->AdditionalSoftwareList,&iter); row->tags = yon_char_replace(parsed[2]," ",", ");
gtk_list_store_set(widgets->AdditionalSoftwareList,&iter,0,1,1,module_parsed[0],2,module_parsed[1],3,module_parsed[2],-1); //2,module_parsed[2] row->description = parsed[3];
yon_char_parsed_free(module_parsed,module_size); row->widgets=widgets;
} g_idle_add((GSourceFunc)yon_os_component_insert,row);
}
if (size) yon_char_parsed_free(parsed,size);
}
char *modules = config(modules_extra_parameter);
int size;
config_str parsed = yon_char_parse(modules,&size,",");
for_iter(GTK_TREE_MODEL(widgets->AdditionalSoftwareList),&iter){
char *target;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->AdditionalSoftwareList),&iter,1,&target);
if (yon_char_parsed_check_exist(parsed,size,target)>-1){
gtk_list_store_set(widgets->AdditionalSoftwareList,&iter,0,1,-1);
} else {
gtk_list_store_set(widgets->AdditionalSoftwareList,&iter,0,0,-1);
}
} }
yon_char_parsed_free(parsed,size); g_idle_add((GSourceFunc)yon_spinner_switch_off,widgets->OSSpinner);
yon_char_parsed_free(base,base_size);
return ;
} }
int yon_pacman_software_save(main_window *widgets){ int yon_pacman_software_save(main_window *widgets){

@ -7,18 +7,44 @@ void configuration_mode_accept(GtkWidget *,configuration_window *window){
yon_ubl_status_highlight_incorrect(window->PathEntry); yon_ubl_status_highlight_incorrect(window->PathEntry);
return; return;
} }
if (!yon_char_is_empty(main_config.config_save_path)) free(main_config.config_save_path);
main_config.config_save_path = yon_char_new(path); if (access(path,F_OK)){
int homedir_create = 0;
int file_create = 0;
int pos = yon_char_find_last((char*)path,'/');
if (pos>=-1){
char *path_copy = yon_char_new(path);
char *dir_path = yon_char_divide(path_copy,pos);
if (access(dir_path,F_OK)){
homedir_create = 1;
}
free(path_copy);
free(dir_path);
}
dialog_confirmation_data *data = yon_confirmation_dialog_data_new();
data->action_text = homedir_create?CREATE_CONFIG_DIALOG_LABEL_HOMEDIR:CREATE_CONFIG_DIALOG_LABEL;
data->title = WARNING_TITLE_LABEL;
if (yon_confirmation_dialog_call(window->Window,data)==GTK_RESPONSE_ACCEPT){
char *full_path = NULL;
if (homedir_create){
full_path = yon_char_unite(yon_ubl_user_get_home_directory(),"/",path,NULL);
} else if (file_create){
} else {
full_path = yon_char_new(path);
}
yon_launch(ubconfig_file_create(full_path));
} else return;
}
if (!yon_char_is_empty(main_config.config_save_path)) free(main_config.config_save_path);
main_config.config_save_path = yon_char_new(path);
gtk_widget_destroy(window->Window); gtk_widget_destroy(window->Window);
} }
void on_path_choose(GtkWidget *,configuration_window *window){ void on_path_choose(GtkWidget *,configuration_window *window){
filechooser_window *dialog = yon_file_chooser_window_new(GTK_FILE_CHOOSER_ACTION_SAVE); filechooser_window *dialog = yon_config_file_chooser_window_new(GTK_FILE_CHOOSER_ACTION_SAVE);
yon_gtk_window_setup(GTK_WINDOW(dialog->Window),GTK_WINDOW(window->Window),CONFIGURATION_MODE_TITLE_LABEL,icon_path,"filechooser_window"); yon_gtk_window_setup(GTK_WINDOW(dialog->Window),GTK_WINDOW(window->Window),CONFIGURATION_MODE_TITLE_LABEL,icon_path,"filechooser_window");
GtkFileFilter *filter = gtk_file_filter_new();
gtk_file_filter_add_pattern(filter,"*.ini");
gtk_file_filter_set_name(filter,"*.ini");
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog->MainFileChooser),filter);
if (yon_file_chooser_start(dialog)==GTK_RESPONSE_APPLY){ if (yon_file_chooser_start(dialog)==GTK_RESPONSE_APPLY){
gtk_entry_set_text(GTK_ENTRY(window->PathEntry),dialog->last_success_selection); gtk_entry_set_text(GTK_ENTRY(window->PathEntry),dialog->last_success_selection);
free(dialog); free(dialog);
@ -29,6 +55,9 @@ void on_configuration_exit(GtkWidget *,configuration_window *window){
main_window *widgets = g_object_get_data(G_OBJECT(window->Window),"widgets"); main_window *widgets = g_object_get_data(G_OBJECT(window->Window),"widgets");
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(widgets->ConfigurationModeMenuItem),0); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(widgets->ConfigurationModeMenuItem),0);
gtk_widget_destroy(window->Window); gtk_widget_destroy(window->Window);
if (getuid()){
gtk_main_quit();
}
} }
void on_configuration_mode_switch(GtkWidget *self,main_window *widgets){ void on_configuration_mode_switch(GtkWidget *self,main_window *widgets){
@ -48,6 +77,9 @@ void on_configuration_mode_switch(GtkWidget *self,main_window *widgets){
g_signal_connect(G_OBJECT(window->PathButton),"clicked",G_CALLBACK(on_path_choose),window); g_signal_connect(G_OBJECT(window->PathButton),"clicked",G_CALLBACK(on_path_choose),window);
g_object_set_data(G_OBJECT(window->Window),"widgets",widgets); g_object_set_data(G_OBJECT(window->Window),"widgets",widgets);
yon_gtk_window_setup(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->MainWindow),CONFIGURATION_MODE_TITLE_LABEL,icon_path,"configuration_window"); yon_gtk_window_setup(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->MainWindow),CONFIGURATION_MODE_TITLE_LABEL,icon_path,"configuration_window");
if (getuid()){
yon_ubl_status_box_spawn_infinite(GTK_CONTAINER(window->StatusBox),"force_configure_mode",ROOT_FORCE_CONFIGURATION_MODE_LABEL,BACKGROUND_IMAGE_INFO_TYPE);
}
if (!yon_char_is_empty(main_config.config_save_path)) gtk_entry_set_text(GTK_ENTRY(window->PathEntry),main_config.config_save_path); if (!yon_char_is_empty(main_config.config_save_path)) gtk_entry_set_text(GTK_ENTRY(window->PathEntry),main_config.config_save_path);
gtk_widget_show(window->Window); gtk_widget_show(window->Window);

@ -502,18 +502,7 @@ void yon_install_init(main_window *widgets, enum YON_PAGES page){
} }
} }
if (format_switch){ if (format_switch){
char *format = config(part_format_parameter); if (fs_type_combo){
if ((!yon_char_is_empty(format)&&!strcmp(format,"yes"))||format_switch==widgets->CommonFormatSwitch){
gtk_switch_set_active(GTK_SWITCH(format_switch),1);
if (device_label){
char *parameter = config(part_label_parameter);
if (!yon_char_is_empty(parameter)){
gtk_entry_set_text(GTK_ENTRY(device_label),parameter);
} else {
gtk_entry_set_text(GTK_ENTRY(device_label),"");
}
}
if (fs_type_combo){
gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(fs_type_combo)); gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(fs_type_combo));
int size; int size;
config_str fs_types = yon_resource_open_file(fs_types_path,&size); config_str fs_types = yon_resource_open_file(fs_types_path,&size);
@ -533,6 +522,30 @@ void yon_install_init(main_window *widgets, enum YON_PAGES page){
gtk_combo_box_set_active(GTK_COMBO_BOX(fs_type_combo),0); gtk_combo_box_set_active(GTK_COMBO_BOX(fs_type_combo),0);
} }
} }
if (partition_encryption_combo && partition_encryption_entry){
int size;
gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(partition_encryption_combo));
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(partition_encryption_combo),NULL,yon_char_get_localised_from_lib(DEFAULT_LABEL));
config_str encryptions = yon_char_parsed_new(&size,encryptions_list,NULL);
for (int i=0;i<size;i++){
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(partition_encryption_combo),encryptions[i],encryptions[i]);
}
yon_char_parsed_free(encryptions,size);
gtk_combo_box_set_active(GTK_COMBO_BOX(partition_encryption_combo),0);
}
char *format = config(part_format_parameter);
if ((!yon_char_is_empty(format)&&!strcmp(format,"yes"))||format_switch==widgets->CommonFormatSwitch){
gtk_switch_set_active(GTK_SWITCH(format_switch),1);
if (device_label){
char *parameter = config(part_label_parameter);
if (!yon_char_is_empty(parameter)){
gtk_entry_set_text(GTK_ENTRY(device_label),parameter);
} else {
gtk_entry_set_text(GTK_ENTRY(device_label),"");
}
}
if (partition_size_spin&&partition_size_combo){ if (partition_size_spin&&partition_size_combo){
char *parameter = config(part_size_parameter); char *parameter = config(part_size_parameter);
if (!yon_char_is_empty(parameter)){ if (!yon_char_is_empty(parameter)){

@ -97,10 +97,10 @@ void yon_kernel_row_setup(kernel_row *row, char *name, char *modules,char *packa
row->modules = yon_char_new(modules); row->modules = yon_char_new(modules);
row->package = yon_char_new(package); row->package = yon_char_new(package);
char *description_full = yon_char_new(description); char *description_full = yon_char_new(_(description));
if (strlen(description)>100){ if (strlen(description)>100){
guint size; guint size;
config_str description_wrapped = yon_char_wrap_to_lines(description,3,&size); config_str description_wrapped = yon_char_wrap_to_lines(description_full,3,&size);
description_full = yon_char_parsed_to_string(description_wrapped,size,"\n"); description_full = yon_char_parsed_to_string(description_wrapped,size,"\n");
yon_char_parsed_free(description_wrapped,size); yon_char_parsed_free(description_wrapped,size);
} }
@ -154,9 +154,6 @@ void yon_kernel_addon_resize(main_window *widgets){
int install_size=0; int install_size=0;
int name_size=0; int name_size=0;
int modules_size=0; int modules_size=0;
gtk_widget_get_preferred_width(widgets->KernelAddonInstallLabel,&install_size,NULL);
gtk_widget_get_preferred_width(widgets->KernelAddonNameLabel,&name_size,NULL);
gtk_widget_get_preferred_width(widgets->KernelAddonModulesLabel,&modules_size,NULL);
for (;iter;iter=iter->next){ for (;iter;iter=iter->next){
kernel_row *row = g_object_get_data(G_OBJECT(iter->data),"kernel_row"); kernel_row *row = g_object_get_data(G_OBJECT(iter->data),"kernel_row");
@ -168,8 +165,6 @@ void yon_kernel_addon_resize(main_window *widgets){
if (name_size<cur_name_size) name_size=cur_name_size; if (name_size<cur_name_size) name_size=cur_name_size;
if (modules_size<cur_modules_size) modules_size=cur_modules_size; if (modules_size<cur_modules_size) modules_size=cur_modules_size;
} }
gtk_widget_set_size_request(GTK_WIDGET(widgets->KernelAddonNameLabel),name_size,-1);
gtk_widget_set_size_request(GTK_WIDGET(widgets->KernelAddonModulesLabel),modules_size,-1);
for (iter = list;iter;iter = iter->next){ for (iter = list;iter;iter = iter->next){
kernel_row *row = g_object_get_data(G_OBJECT(iter->data),"kernel_row"); kernel_row *row = g_object_get_data(G_OBJECT(iter->data),"kernel_row");
gtk_widget_set_size_request(GTK_WIDGET(row->InstallCheck),install_size,-1); gtk_widget_set_size_request(GTK_WIDGET(row->InstallCheck),install_size,-1);
@ -241,11 +236,110 @@ void yon_kernel_setup(main_window *widgets){
yon_char_parsed_free(modules_parsed,modules_size); yon_char_parsed_free(modules_parsed,modules_size);
} }
void on_kernel_addon_install_enabled(GtkWidget *, kernel_addon_row *row){
if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->InstallCheck))){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(main_config.kernel_unchosen_radio),1);
}
}
void on_kernel_addon_info(GtkLabel *self){
yon_window *window = yon_window_new();
yon_gtk_window_setup(GTK_WINDOW(window->Window),NULL,TITLE_LABEL,icon_path,"info-label");
char *package=NULL;
package = yon_char_new(gtk_label_get_text(self));
int size;
if (strstr(package,",")){
char *temp = yon_char_replace(package,","," ");
free(package);
package = temp;
}
GtkWidget *label = NULL;
config_str info = yon_config_load(get_package_info_command(package),&size);
if (size!=-1){
char *final_text = yon_char_parsed_to_string(info,size,"");
label = gtk_label_new(final_text);
gtk_widget_show(label);
gtk_box_pack_start(GTK_BOX(window->MainBox),label,0,0,0);
free(final_text);
} else {
label = gtk_label_new(PACKAGE_NOT_FOUND_LABEL);
gtk_widget_show(label);
gtk_box_pack_start(GTK_BOX(window->MainBox),label,0,0,0);
}
gtk_label_set_xalign(GTK_LABEL(label),0);
gtk_widget_show(window->Window);
}
kernel_addon_row *yon_kernel_addon_row_new(){
kernel_addon_row *row = new(kernel_addon_row);
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_kernel_addon_row);
row->RowBox = yon_gtk_builder_get_widget(builder,"TableRow");
row->InstallCheck = yon_gtk_builder_get_widget(builder,"InstallCheck");
row->NameLabel = yon_gtk_builder_get_widget(builder,"NameLabel");
row->ModuleLabel = yon_gtk_builder_get_widget(builder,"ModuleLabel");
row->PackageLabel = yon_gtk_builder_get_widget(builder,"PackageLabel");
row->DescriptionLabel = yon_gtk_builder_get_widget(builder,"DescriptionLabel");
row->name=NULL;
row->modules=NULL;
row->package=NULL;
g_signal_connect(G_OBJECT(row->InstallCheck),"toggled",G_CALLBACK(on_kernel_addon_install_enabled),row);
g_signal_connect(G_OBJECT(row->ModuleLabel),"activate-link",G_CALLBACK(on_kernel_addon_info),NULL);
g_signal_connect(G_OBJECT(row->PackageLabel),"activate-link",G_CALLBACK(on_kernel_addon_info),NULL);
row->row = gtk_list_box_row_new();
gtk_container_add(GTK_CONTAINER(row->row),row->RowBox);
gtk_widget_show(row->row);
g_object_set_data(G_OBJECT(row->InstallCheck),"kernel_row",row);
g_object_set_data(G_OBJECT(row->row),"kernel_row",row);
return row;
}
void yon_kernel_addon_row_setup(kernel_addon_row *row, char *name, char *modules,char *package, char *description){
row->name = yon_char_new(name);
row->modules = yon_char_new(modules);
row->package = yon_char_new(package);
char *description_full = yon_char_new(_(description));
if (strlen(description)>100){
guint size;
config_str description_wrapped = yon_char_wrap_to_lines(description,3,&size);
description_full = yon_char_parsed_to_string(description_wrapped,size,"\n");
yon_char_parsed_free(description_wrapped,size);
}
char *package_label = NULL;
if (!yon_char_is_empty(row->modules)){
package_label = yon_char_unite("<i><a href=\"\">",row->modules,"</a></i>",NULL);
gtk_label_set_markup(GTK_LABEL(row->PackageLabel),package_label);
} else {
gtk_widget_hide(gtk_widget_get_parent(row->PackageLabel));
}
char *module_label = NULL;
if (!yon_char_is_empty(row->package)){
module_label = yon_char_unite("<i><a href=\"\">",row->package,"</a></i>",NULL);
gtk_label_set_markup(GTK_LABEL(row->ModuleLabel),module_label);
} else {
gtk_widget_hide(gtk_widget_get_parent(row->ModuleLabel));
}
gtk_label_set_label(GTK_LABEL(row->NameLabel),_(name));
gtk_label_set_label(GTK_LABEL(row->DescriptionLabel),description_full);
free(description_full);
}
void yon_kernel_addon_setup(main_window *widgets){ void yon_kernel_addon_setup(main_window *widgets){
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->KernelAddonListBox)); GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->KernelAddonListBox));
GList *iter; GList *iter;
for (iter = list; iter; iter = iter->next){ for (iter = list; iter; iter = iter->next){
kernel_row *row = g_object_get_data(G_OBJECT(iter->data),"kernel_row"); kernel_addon_row *row = g_object_get_data(G_OBJECT(iter->data),"kernel_row");
if (row){ if (row){
if (row->name) free(row->name); if (row->name) free(row->name);
if (!yon_char_is_empty(row->modules)) free(row->modules); if (!yon_char_is_empty(row->modules)) free(row->modules);
@ -271,26 +365,20 @@ void yon_kernel_addon_setup(main_window *widgets){
config_str parsed = yon_char_parse(kernels[i],&parsed_size,";"); config_str parsed = yon_char_parse(kernels[i],&parsed_size,";");
char *name = parsed[0]; char *name = parsed[0];
char *modules = yon_char_new(parsed[1]); char *modules = yon_char_new(parsed[1]);
char *tags = NULL;
char *package = parsed[2]; char *package = parsed[2];
char *description = parsed[3]; char *description = parsed[3];
kernel_row *row = yon_kernel_row_new(); kernel_addon_row *row = yon_kernel_addon_row_new();
gtk_list_box_insert(GTK_LIST_BOX(widgets->KernelAddonListBox),row->row,-1); gtk_list_box_insert(GTK_LIST_BOX(widgets->KernelAddonListBox),row->row,-1);
gtk_size_group_add_widget(widgets->KernelSizeGroup,row->TagsBox);
gtk_widget_destroy(row->TagsBox);
gtk_widget_destroy(row->TagsSeparator);
gtk_widget_destroy(row->EnableRadio);
gtk_widget_destroy(row->EnableSeparator);
yon_kernel_row_setup(row,name,modules,package,tags,description); yon_kernel_addon_row_setup(row,name,modules,package,description);
if (yon_char_parsed_check_exist(modules_parsed,modules_size,parsed[1])>-1){ if (yon_char_parsed_check_exist(modules_parsed,modules_size,parsed[1])>-1){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),1);
} else { } else {
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),0);
} }
yon_char_parsed_free(parsed,parsed_size); // yon_char_parsed_free(parsed,parsed_size);
} }
yon_kernel_addon_resize(widgets); yon_kernel_addon_resize(widgets);

@ -157,6 +157,11 @@ void on_language_window_accept(GtkWidget *,dictionary *dict){
free(window); free(window);
} }
void yon_focus_set(GtkWidget *,GtkWidget *target){
gtk_widget_grab_focus(target);
}
ubinstall_language_window *yon_ubinstall_language_new(){ ubinstall_language_window *yon_ubinstall_language_new(){
ubinstall_language_window *window = malloc(sizeof(ubinstall_language_window)); ubinstall_language_window *window = malloc(sizeof(ubinstall_language_window));
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_ubinstall_language); GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_ubinstall_language);
@ -171,6 +176,7 @@ ubinstall_language_window *yon_ubinstall_language_new(){
window->ToggleRenderer=GTK_CELL_RENDERER(gtk_builder_get_object(builder,"ToggleRenderer")); window->ToggleRenderer=GTK_CELL_RENDERER(gtk_builder_get_object(builder,"ToggleRenderer"));
g_signal_connect(G_OBJECT(window->DefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->LanguagesTree); g_signal_connect(G_OBJECT(window->DefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->LanguagesTree);
g_signal_connect(G_OBJECT(window->DefaultCheck),"toggled",G_CALLBACK(yon_focus_set),window->LanguagesTree);
g_signal_connect(G_OBJECT(window->ToggleRenderer),"toggled",G_CALLBACK(yon_language_selection_changed),window); g_signal_connect(G_OBJECT(window->ToggleRenderer),"toggled",G_CALLBACK(yon_language_selection_changed),window);
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
return window; return window;
@ -183,7 +189,7 @@ void on_language_clicked(GtkWidget *, main_window *widgets){
yon_gtk_list_store_copy_full(window->liststore1,widgets->LanguagesList); yon_gtk_list_store_copy_full(window->liststore1,widgets->LanguagesList);
gtk_tree_view_set_model(GTK_TREE_VIEW(window->LanguagesTree),GTK_TREE_MODEL(window->liststore1)); gtk_tree_view_set_model(GTK_TREE_VIEW(window->LanguagesTree),GTK_TREE_MODEL(window->liststore1));
yon_gtk_window_setup(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->MainWindow),TITLE_LABEL,icon_path,"language-chooser-window"); yon_gtk_window_setup(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->MainWindow),TITLE_LABEL,icon_path,"language-chooser-window");
gtk_tree_view_set_search_column(GTK_TREE_VIEW(window->LanguagesTree),2);
if (yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->AvailableLanguagesEntry)))){ if (yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->AvailableLanguagesEntry)))){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->DefaultCheck),1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->DefaultCheck),1);
} }

@ -8,12 +8,12 @@ enum YON_PAGES yon_page_get_next(main_window *widgets, enum YON_PAGES page){
case YON_PAGE_WELCOME: return YON_PAGE_LICENCE; break; case YON_PAGE_WELCOME: return YON_PAGE_LICENCE; break;
case YON_PAGE_LICENCE: return YON_PAGE_SECTIONS; break; case YON_PAGE_LICENCE: return YON_PAGE_SECTIONS; break;
case YON_PAGE_SECTIONS: return yon_sections_get_next_page(widgets); break; case YON_PAGE_SECTIONS: return yon_sections_get_next_page(widgets); break;
case YON_PAGE_OS_COMPONENTS: return main_config.configure_mode? YON_PAGE_KERNEL : YON_PAGE_INSTALLATION_BEGIN; break; case YON_PAGE_OS_COMPONENTS: return YON_PAGE_SOFTWARE; break;
case YON_PAGE_SOFTWARE: return main_config.configure_mode? YON_PAGE_KERNEL : YON_PAGE_INSTALLATION_BEGIN; break;
case YON_PAGE_INSTALLATION_BEGIN: return YON_PAGE_KERNEL; break; case YON_PAGE_INSTALLATION_BEGIN: return YON_PAGE_KERNEL; break;
case YON_PAGE_KERNEL: return YON_PAGE_KERNEL_ADDON; break; case YON_PAGE_KERNEL: return YON_PAGE_KERNEL_ADDON; break;
case YON_PAGE_KERNEL_ADDON: return YON_PAGE_PACMAN_SOFTWARE; break; case YON_PAGE_KERNEL_ADDON: return YON_PAGE_PACMAN_SOFTWARE; break;
case YON_PAGE_PACMAN_SOFTWARE: return YON_PAGE_REGION; case YON_PAGE_PACMAN_SOFTWARE: return YON_PAGE_REGION;
case YON_PAGE_SOFTWARE: return YON_PAGE_PACMAN_SOFTWARE; break;
case YON_PAGE_REGION: return YON_PAGE_KEYBOARD; break; case YON_PAGE_REGION: return YON_PAGE_KEYBOARD; break;
case YON_PAGE_KEYBOARD: return YON_PAGE_USERS; break; case YON_PAGE_KEYBOARD: return YON_PAGE_USERS; break;
case YON_PAGE_USERS: return YON_PAGE_STARTUP; break; case YON_PAGE_USERS: return YON_PAGE_STARTUP; break;
@ -50,12 +50,12 @@ enum YON_PAGES yon_page_get_prev(enum YON_PAGES page){
case YON_PAGE_LICENCE: return YON_PAGE_WELCOME; break; case YON_PAGE_LICENCE: return YON_PAGE_WELCOME; break;
case YON_PAGE_SECTIONS: return YON_PAGE_LICENCE; break; case YON_PAGE_SECTIONS: return YON_PAGE_LICENCE; break;
case YON_PAGE_OS_COMPONENTS: return YON_PAGE_SECTIONS; break; case YON_PAGE_OS_COMPONENTS: return YON_PAGE_SECTIONS; break;
case YON_PAGE_INSTALLATION_BEGIN: return YON_PAGE_SECTIONS; break; case YON_PAGE_SOFTWARE: return YON_PAGE_OS_COMPONENTS; break;
case YON_PAGE_INSTALLATION_BEGIN: return YON_PAGE_SOFTWARE; break;
case YON_PAGE_KERNEL: return YON_PAGE_SECTIONS; break; case YON_PAGE_KERNEL: return YON_PAGE_SECTIONS; break;
case YON_PAGE_KERNEL_ADDON: return YON_PAGE_KERNEL; break; case YON_PAGE_KERNEL_ADDON: return YON_PAGE_KERNEL; break;
case YON_PAGE_PACMAN_SOFTWARE: return YON_PAGE_KERNEL_ADDON; break; case YON_PAGE_PACMAN_SOFTWARE: return YON_PAGE_KERNEL_ADDON; break;
case YON_PAGE_SOFTWARE: return YON_PAGE_PACMAN_SOFTWARE; break; case YON_PAGE_REGION: return YON_PAGE_PACMAN_SOFTWARE; break;
case YON_PAGE_REGION: return YON_PAGE_SOFTWARE; break;
case YON_PAGE_KEYBOARD: return YON_PAGE_REGION; break; case YON_PAGE_KEYBOARD: return YON_PAGE_REGION; break;
case YON_PAGE_USERS: return YON_PAGE_KEYBOARD; break; case YON_PAGE_USERS: return YON_PAGE_KEYBOARD; break;
case YON_PAGE_STARTUP: return YON_PAGE_USERS; break; case YON_PAGE_STARTUP: return YON_PAGE_USERS; break;
@ -372,7 +372,7 @@ void yon_page_init(main_window *widgets, enum YON_PAGES page){
break; break;
case YON_PAGE_INSTALL_ADVANCED: case YON_PAGE_INSTALL_ADVANCED:
yon_install_advanced_init(widgets); yon_install_advanced_init(widgets);
[[fallthrough]]; __attribute__((fallthrough));
case YON_PAGE_INSTALL_COMMON: case YON_PAGE_INSTALL_COMMON:
case YON_PAGE_INSTALL_SEPARATE: case YON_PAGE_INSTALL_SEPARATE:
case YON_PAGE_INSTALL_SAME_PARTITION: case YON_PAGE_INSTALL_SAME_PARTITION:
@ -449,7 +449,11 @@ void on_system_setup_pass(GtkWidget *, main_window *widgets){
if (main_config.configure_mode){ if (main_config.configure_mode){
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_CONFIGURE_END); gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_CONFIGURE_END);
} else { } else {
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION); if (main_config.install_complete) {
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_COMPLETION);
} else {
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION);
}
} }
yon_page_update(widgets); yon_page_update(widgets);
} }

@ -150,5 +150,4 @@ void yon_region_init(main_window *widgets){
if (!yon_char_is_empty(lang_param)){ if (!yon_char_is_empty(lang_param)){
gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->LanguagesCombo),lang_param); gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->LanguagesCombo),lang_param);
} }
} }

@ -574,12 +574,12 @@ void config_init(){
// void *on_setup_system_configuration(void *data); // void *on_setup_system_configuration(void *data);
void on_additional_software_toggled(GtkWidget *, char *path, main_window *widgets){ void on_additional_software_toggled(GtkWidget *, char *, main_window *){
GtkTreeIter iter; // GtkTreeIter iter;
int status; // int status;
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(widgets->AdditionalSoftwareList),&iter,path); // gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(widgets->AdditionalSoftwareList),&iter,path);
gtk_tree_model_get(GTK_TREE_MODEL(widgets->AdditionalSoftwareList),&iter,0,&status,-1); // gtk_tree_model_get(GTK_TREE_MODEL(widgets->AdditionalSoftwareList),&iter,0,&status,-1);
gtk_list_store_set(widgets->AdditionalSoftwareList,&iter,0,!status,-1); // gtk_list_store_set(widgets->AdditionalSoftwareList,&iter,0,!status,-1);
} }
void on_gparted_open(){ void on_gparted_open(){
@ -615,6 +615,7 @@ gboolean on_yon_exit(GtkWidget *,GdkEvent*, main_window *widgets){
data->action_text=INTERRUPT_TEXT_LABEL; data->action_text=INTERRUPT_TEXT_LABEL;
data->title=WARNING_TITLE_LABEL; data->title=WARNING_TITLE_LABEL;
if (yon_confirmation_dialog_call(widgets->MainWindow,data)==GTK_RESPONSE_ACCEPT ){ if (yon_confirmation_dialog_call(widgets->MainWindow,data)==GTK_RESPONSE_ACCEPT ){
yon_window_config_save_instant();
on_exit_accepted(widgets); on_exit_accepted(widgets);
gtk_main_quit(); gtk_main_quit();
return 1; return 1;
@ -912,6 +913,7 @@ void yon_main_window_create(main_window *widgets){
widgets->OSSysSectionTree = yon_gtk_builder_get_widget(builder,"OSSysSectionTree"); widgets->OSSysSectionTree = yon_gtk_builder_get_widget(builder,"OSSysSectionTree");
widgets->GpartedOSButton = yon_gtk_builder_get_widget(builder,"GpartedOSButton"); widgets->GpartedOSButton = yon_gtk_builder_get_widget(builder,"GpartedOSButton");
widgets->OSFormatSwitch = yon_gtk_builder_get_widget(builder,"OSFormatSwitch"); widgets->OSFormatSwitch = yon_gtk_builder_get_widget(builder,"OSFormatSwitch");
widgets->OSRevealer = yon_gtk_builder_get_widget(builder,"OSRevealer");
widgets->OSFormatSizeSpin = yon_gtk_builder_get_widget(builder,"OSFormatSizeSpin"); widgets->OSFormatSizeSpin = yon_gtk_builder_get_widget(builder,"OSFormatSizeSpin");
widgets->OSFormatSizeCombo = yon_gtk_builder_get_widget(builder,"OSFormatSizeCombo"); widgets->OSFormatSizeCombo = yon_gtk_builder_get_widget(builder,"OSFormatSizeCombo");
widgets->OSFormatPartitionEntry = yon_gtk_builder_get_widget(builder,"OSFormatPartitionEntry"); widgets->OSFormatPartitionEntry = yon_gtk_builder_get_widget(builder,"OSFormatPartitionEntry");
@ -924,6 +926,7 @@ void yon_main_window_create(main_window *widgets){
widgets->UserdataSysSectionTree = yon_gtk_builder_get_widget(builder,"UserdataSysSectionTree"); widgets->UserdataSysSectionTree = yon_gtk_builder_get_widget(builder,"UserdataSysSectionTree");
widgets->GpartedUserdataButton = yon_gtk_builder_get_widget(builder,"UserdataGpartedButton"); widgets->GpartedUserdataButton = yon_gtk_builder_get_widget(builder,"UserdataGpartedButton");
widgets->UserdataFormatSwitch = yon_gtk_builder_get_widget(builder,"UserdataFormatSwitch"); widgets->UserdataFormatSwitch = yon_gtk_builder_get_widget(builder,"UserdataFormatSwitch");
widgets->UserdataRevealer = yon_gtk_builder_get_widget(builder,"UserdataRevealer");
widgets->UserdataFormatSizeSpin = yon_gtk_builder_get_widget(builder,"UserdataFormatSizeSpin"); widgets->UserdataFormatSizeSpin = yon_gtk_builder_get_widget(builder,"UserdataFormatSizeSpin");
widgets->UserdataFormatSizeCombo = yon_gtk_builder_get_widget(builder,"UserdataFormatSizeCombo"); widgets->UserdataFormatSizeCombo = yon_gtk_builder_get_widget(builder,"UserdataFormatSizeCombo");
widgets->UserdataFormatPartitionEntry = yon_gtk_builder_get_widget(builder,"UserdataFormatPartitionEntry"); widgets->UserdataFormatPartitionEntry = yon_gtk_builder_get_widget(builder,"UserdataFormatPartitionEntry");
@ -972,9 +975,7 @@ void yon_main_window_create(main_window *widgets){
widgets->KeyboardBox = yon_gtk_builder_get_widget(builder,"KeyboardBox"); widgets->KeyboardBox = yon_gtk_builder_get_widget(builder,"KeyboardBox");
widgets->KeyboardLayoutChosenCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"KeyboardLayoutChosenCell")); widgets->KeyboardLayoutChosenCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"KeyboardLayoutChosenCell"));
widgets->AdditionalSoftwareList = GTK_LIST_STORE(gtk_builder_get_object(builder,"AdditionalSoftwareList")); widgets->AdditionalComponentsList = yon_gtk_builder_get_widget(builder,"AdditionalComponentsList");
widgets->AdditionalSoftwareTree = yon_gtk_builder_get_widget(builder,"AdditionalSoftwareTree");
widgets->AdditionalSoftwareCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"AdditionalSoftwareCell"));
widgets->InstallationProgress = yon_gtk_builder_get_widget(builder,"InstallationProgress"); widgets->InstallationProgress = yon_gtk_builder_get_widget(builder,"InstallationProgress");
@ -1110,7 +1111,6 @@ void yon_main_window_create(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->LanguagesTree),"cursor-changed",G_CALLBACK(on_locale_changed),widgets); g_signal_connect(G_OBJECT(widgets->LanguagesTree),"cursor-changed",G_CALLBACK(on_locale_changed),widgets);
g_signal_connect(G_OBJECT(widgets->CountryLanguagesTree),"row-activated",G_CALLBACK(on_installer_language_changed),widgets); g_signal_connect(G_OBJECT(widgets->CountryLanguagesTree),"row-activated",G_CALLBACK(on_installer_language_changed),widgets);
// g_signal_connect(G_OBJECT(widgets->LanguageCombo),"changed",G_CALLBACK(on_locale_changed),widgets); // g_signal_connect(G_OBJECT(widgets->LanguageCombo),"changed",G_CALLBACK(on_locale_changed),widgets);
g_signal_connect(G_OBJECT(widgets->AdditionalSoftwareCell),"toggled",G_CALLBACK(on_additional_software_toggled),widgets);
g_signal_connect(G_OBJECT(widgets->StartupChosenCell),"toggled",G_CALLBACK(on_srartup_services_toggled),widgets); g_signal_connect(G_OBJECT(widgets->StartupChosenCell),"toggled",G_CALLBACK(on_srartup_services_toggled),widgets);
g_signal_connect(G_OBJECT(widgets->StartupServicesTree),"cursor-changed",G_CALLBACK(on_startup_services_selection_changed),widgets); g_signal_connect(G_OBJECT(widgets->StartupServicesTree),"cursor-changed",G_CALLBACK(on_startup_services_selection_changed),widgets);
@ -1123,6 +1123,8 @@ void yon_main_window_create(main_window *widgets){
yon_gtk_revealer_set_from_switch(GTK_REVEALER(widgets->NextInstallationFormatRevealer),GTK_SWITCH(widgets->NextInstallationFormatSwitch)); yon_gtk_revealer_set_from_switch(GTK_REVEALER(widgets->NextInstallationFormatRevealer),GTK_SWITCH(widgets->NextInstallationFormatSwitch));
yon_gtk_revealer_set_from_switch(GTK_REVEALER(widgets->SameInstallationFormatRevealer),GTK_SWITCH(widgets->SameInstallationFormatSwitch)); yon_gtk_revealer_set_from_switch(GTK_REVEALER(widgets->SameInstallationFormatRevealer),GTK_SWITCH(widgets->SameInstallationFormatSwitch));
yon_gtk_revealer_set_from_switch(GTK_REVEALER(widgets->OSRevealer),GTK_SWITCH(widgets->OSFormatSwitch));
yon_gtk_revealer_set_from_switch(GTK_REVEALER(widgets->UserdataRevealer),GTK_SWITCH(widgets->UserdataFormatSwitch));
g_signal_connect(G_OBJECT(widgets->PacmanSoftwareAllCell),"toggled",G_CALLBACK(on_pacman_software_all_toggled),widgets); g_signal_connect(G_OBJECT(widgets->PacmanSoftwareAllCell),"toggled",G_CALLBACK(on_pacman_software_all_toggled),widgets);
g_signal_connect(G_OBJECT(widgets->PacmanSoftwareChosenCell),"toggled",G_CALLBACK(on_pacman_software_chosen_toggled),widgets); g_signal_connect(G_OBJECT(widgets->PacmanSoftwareChosenCell),"toggled",G_CALLBACK(on_pacman_software_chosen_toggled),widgets);
@ -1195,10 +1197,12 @@ void yon_main_window_create(main_window *widgets){
config_str parsed = NULL; config_str parsed = NULL;
parsed = yon_file_open(licence_path,&size); parsed = yon_file_open(licence_path,&size);
if (size){ if (size){
textdomain("ublinux-init-eula");
char *licence = yon_char_parsed_to_string(parsed,size,""); char *licence = yon_char_parsed_to_string(parsed,size,"");
gtk_label_set_text(GTK_LABEL(widgets->LicenceLabel),licence); gtk_label_set_text(GTK_LABEL(widgets->LicenceLabel),_(licence));
free(licence); free(licence);
yon_char_parsed_free(parsed,size); yon_char_parsed_free(parsed,size);
textdomain(LocaleName);
} }
} }
{ {
@ -1219,18 +1223,11 @@ void yon_main_window_create(main_window *widgets){
yon_char_parsed_free(slides,size); yon_char_parsed_free(slides,size);
} }
gtk_builder_connect_signals(builder,NULL); gtk_builder_connect_signals(builder,NULL);
// yon_load_proceed(YON_CONFIG_LOCAL);
// yon_interface_update(widgets);
if (!yon_char_is_empty(config(AUTOINSTALL_TYPE_INSTALL))){ if (!yon_char_is_empty(config(AUTOINSTALL_TYPE_INSTALL))){
gtk_widget_show(widgets->StartScenarioButton); gtk_widget_show(widgets->StartScenarioButton);
} else { } else {
gtk_widget_hide(widgets->StartScenarioButton); gtk_widget_hide(widgets->StartScenarioButton);
} }
// char *locale = config(installer_lang_parameter);
// if (!yon_char_is_empty(locale)){
// locale = setlocale(LC_ALL,NULL);
// }
// yon_ubl_window_init(TITLE_LABEL,DESCRIPTION_LABEL,locale,CssPath,LocaleName,version_application,WIKI_LINK);
if (main_config.force_ini){ if (main_config.force_ini){
main_config.configure_mode=1; main_config.configure_mode=1;
g_signal_handlers_block_by_func(G_OBJECT(widgets->ConfigurationModeMenuItem),G_CALLBACK(on_configuration_mode_switch),widgets); g_signal_handlers_block_by_func(G_OBJECT(widgets->ConfigurationModeMenuItem),G_CALLBACK(on_configuration_mode_switch),widgets);
@ -1242,20 +1239,17 @@ void yon_main_window_create(main_window *widgets){
} }
yon_locale_init(); yon_locale_init();
set_locales_list(widgets); set_locales_list(widgets);
// { }
// char *parameter = config(installer_lang_parameter);
// if (yon_char_is_empty(parameter)){ gboolean yon_maximize_start(main_window *widgets){
// parameter=setlocale(LC_ALL,NULL); gtk_window_maximize(GTK_WINDOW(widgets->MainWindow));
// } return G_SOURCE_REMOVE;
// GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->LanguagesBox)); }
// GList *iter;
// for (iter = list;iter;iter=iter->next){ void *yon_maximize(main_window *widgets){
// char *lang = g_object_get_data(G_OBJECT(iter->data),"language"); g_usleep(G_USEC_PER_SEC/10);
// if (!strcmp(lang,parameter)){ g_idle_add((GSourceFunc)yon_maximize_start,widgets);
// gtk_flow_box_select_child(GTK_FLOW_BOX(widgets->LanguagesBox),GTK_FLOW_BOX_CHILD(iter->data)); return NULL;
// }
// }
// }
} }
/**yon_main_window_complete(main_window *widgets) /**yon_main_window_complete(main_window *widgets)
@ -1268,6 +1262,8 @@ main_window *yon_main_window_complete(){
main_window *widgets=NULL; main_window *widgets=NULL;
widgets = yon_remalloc(widgets,sizeof(main_window)); widgets = yon_remalloc(widgets,sizeof(main_window));
yon_main_window_create(widgets); yon_main_window_create(widgets);
yon_window_config_setup(GTK_WINDOW(widgets->MainWindow));
// yon_window_config_custom_window_setup(GTK_WINDOW(widgets->MainWindow),"MainWindow");
return widgets; return widgets;
} }
@ -1301,12 +1297,18 @@ int main(int argc, char *argv[]){
} }
gtk_init(&argc,&argv); gtk_init(&argc,&argv);
main_window *widgets = NULL; main_window *widgets = NULL;
if (widgets){};
int fullscreen = 0;
widgets = yon_main_window_complete(); widgets = yon_main_window_complete();
on_config_global_load(NULL,widgets); on_config_global_load(NULL,widgets);
if (widgets){};
char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL); char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL);
yon_window_config_setup(GTK_WINDOW(widgets->MainWindow)); if (access(path,F_OK)){
fullscreen = 1;
g_thread_new("fullscreen",(GThreadFunc)yon_maximize,widgets);
}
yon_window_config_load(path); yon_window_config_load(path);
yon_window_config_add_instant_parameter("fullscreen","window",&fullscreen,YON_TYPE_BOOLEAN);
main_config.launch_arguments=yon_char_parsed_copy(argv,argc); main_config.launch_arguments=yon_char_parsed_copy(argv,argc);
main_config.launch_size=argc; main_config.launch_size=argc;
GtkCssProvider *css=gtk_css_provider_new(); GtkCssProvider *css=gtk_css_provider_new();

@ -30,6 +30,7 @@
#define glade_path_menu_window "/com/ublinux/ui/ubinstall-gtk-menu.glade" #define glade_path_menu_window "/com/ublinux/ui/ubinstall-gtk-menu.glade"
#define glade_path_menu_item "/com/ublinux/ui/ubinstall-gtk-menu-item.glade" #define glade_path_menu_item "/com/ublinux/ui/ubinstall-gtk-menu-item.glade"
#define glade_path_kernel_row "/com/ublinux/ui/ubinstall-gtk-kernel-row.glade" #define glade_path_kernel_row "/com/ublinux/ui/ubinstall-gtk-kernel-row.glade"
#define glade_path_kernel_addon_row "/com/ublinux/ui/ubinstall-gtk-kernel-addon-row.glade"
#define glade_path_os_row "/com/ublinux/ui/ubinstall-gtk-os-row.glade" #define glade_path_os_row "/com/ublinux/ui/ubinstall-gtk-os-row.glade"
#define glade_path_service "/com/ublinux/ui/ubinstall-gtk-service-window.glade" #define glade_path_service "/com/ublinux/ui/ubinstall-gtk-service-window.glade"
#define glade_path_bootloader_user "/com/ublinux/ui/ubinstall-gtk-bootloader-user.glade" #define glade_path_bootloader_user "/com/ublinux/ui/ubinstall-gtk-bootloader-user.glade"
@ -274,6 +275,8 @@ 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_append("pacman -Si ",target)
#define install_common_parameters \ #define install_common_parameters \
AUTOINSTALL_TYPE_INSTALL,\ AUTOINSTALL_TYPE_INSTALL,\
AUTOINSTALL_DEVICE,\ AUTOINSTALL_DEVICE,\
@ -420,7 +423,6 @@ typedef struct {
GtkListStore *DevicesList; GtkListStore *DevicesList;
GtkListStore *LanguagesList; GtkListStore *LanguagesList;
GtkTreeStore *LayoutList; GtkTreeStore *LayoutList;
GtkListStore *AdditionalSoftwareList;
GtkListStore *PartitionsList; GtkListStore *PartitionsList;
GtkWidget *LoadGlobalConfigurationMenuItem; GtkWidget *LoadGlobalConfigurationMenuItem;
@ -540,9 +542,7 @@ typedef struct {
GtkWidget *AboutMenuItem; GtkWidget *AboutMenuItem;
GtkWidget *DocumentationMenuItem; GtkWidget *DocumentationMenuItem;
GtkCellRenderer *AdditionalSoftwareCell; GtkWidget *AdditionalComponentsList;
GtkWidget *AdditionalSoftwareTree;
GtkWidget *GrubInstallRadio; GtkWidget *GrubInstallRadio;
GtkWidget *GrubUpdateRadio; GtkWidget *GrubUpdateRadio;
@ -562,6 +562,7 @@ typedef struct {
GtkWidget *OSDevicesTree; GtkWidget *OSDevicesTree;
GtkWidget *OSSysSectionTree; GtkWidget *OSSysSectionTree;
GtkWidget *OSFormatSwitch; GtkWidget *OSFormatSwitch;
GtkWidget *OSRevealer;
GtkWidget *OSFormatSizeSpin; GtkWidget *OSFormatSizeSpin;
GtkWidget *OSFormatSizeCombo; GtkWidget *OSFormatSizeCombo;
GtkWidget *OSFormatPartitionEntry; GtkWidget *OSFormatPartitionEntry;
@ -576,6 +577,7 @@ typedef struct {
GtkWidget *UserdataDevicesTree; GtkWidget *UserdataDevicesTree;
GtkWidget *UserdataSysSectionTree; GtkWidget *UserdataSysSectionTree;
GtkWidget *UserdataFormatSwitch; GtkWidget *UserdataFormatSwitch;
GtkWidget *UserdataRevealer;
GtkWidget *UserdataFormatSizeSpin; GtkWidget *UserdataFormatSizeSpin;
GtkWidget *UserdataFormatSizeCombo; GtkWidget *UserdataFormatSizeCombo;
GtkWidget *UserdataFormatPartitionEntry; GtkWidget *UserdataFormatPartitionEntry;
@ -849,28 +851,42 @@ typedef struct {
typedef struct { typedef struct {
GtkWidget *row; GtkWidget *row;
GtkWidget *RowBox; GtkWidget *RowBox;
GtkWidget *TagsBox;
GtkWidget *InstallCheck; GtkWidget *InstallCheck;
GtkWidget *NameLabel;
GtkWidget *DescriptionLabel;
GtkWidget *ModulesLabel;
GtkWidget *TagsBox;
GtkWidget *EnableRadio; GtkWidget *EnableRadio;
GtkWidget *EnableSeparator; GtkWidget *EnableSeparator;
GtkWidget *TagsSeparator; GtkWidget *TagsSeparator;
char *name;
char *modules;
char *package;
} kernel_row;
typedef struct {
GtkWidget *row;
GtkWidget *RowBox;
GtkWidget *InstallCheck;
GtkWidget *NameLabel; GtkWidget *NameLabel;
GtkWidget *DescriptionLabel; GtkWidget *DescriptionLabel;
GtkWidget *ModulesLabel; GtkWidget *ModuleLabel;
GtkWidget *PackageLabel;
char *name; char *name;
char *modules; char *modules;
char *package; char *package;
} kernel_row; } kernel_addon_row;
typedef struct { typedef struct {
GtkWidget *row; GtkWidget *row;
GtkWidget *RowBox; GtkWidget *RowBox;
GtkWidget *TagsBox;
GtkWidget *InstallCheck; GtkWidget *InstallCheck;
GtkWidget *NameLabel; GtkWidget *NameLabel;
GtkWidget *VersionLabel;
GtkWidget *DescriptionLabel; GtkWidget *DescriptionLabel;
GtkWidget *VersionLabel;
GtkWidget *TagsBox;
char *name; char *name;
char *modules; char *modules;
@ -1208,3 +1224,11 @@ gboolean on_format_changed(GtkWidget *self, gboolean state, advanced_partition
int yon_layouts_get(); int yon_layouts_get();
void on_link(GtkWidget *self, char* uri, gpointer ); void on_link(GtkWidget *self, char* uri, gpointer );
void on_source_changed(GtkComboBox *self); void on_source_changed(GtkComboBox *self);
void yon_focus_set(GtkWidget *,GtkWidget *target);
void on_main_window_close(GtkWidget*, main_window *);
gboolean yon_maximize_start(main_window *widgets);
void *yon_maximize(main_window *widgets);
kernel_addon_row *yon_kernel_addon_row_new();
void yon_kernel_addon_row_setup(kernel_addon_row *row, char *name, char *modules,char *package, char *description);
void on_kernel_addon_install_enabled(GtkWidget *, kernel_addon_row *row);
void on_kernel_addon_info(GtkLabel *self);

@ -227,6 +227,13 @@ NULL)
#define ABOUT_TITLE_LABEL _("About system installation") #define ABOUT_TITLE_LABEL _("About system installation")
#define VALUE_REPEAT_LABEL _("Repeating values") #define VALUE_REPEAT_LABEL _("Repeating values")
#define SOURCE_CREATE_ONGOING_ERROR_LABEL _("Source creation were not done") #define SOURCE_CREATE_ONGOING_ERROR_LABEL _("Source creation were not done")
#define CREATE_CONFIG_DIALOG_LABEL _("Configuration file does not exist. Create new configuration file?")
#define CREATE_CONFIG_DIALOG_LABEL_HOMEDIR _("Configuration file does not exist. Create new configuration file? New configuration file will be created at your user's home directory")
#define ROOT_FORCE_CONFIGURATION_MODE_LABEL _("Warning! Application was launched without root. Only configuration mode is allowed.")
#define PACKAGE_NOT_FOUND_LABEL _("Package were not found")
#define PACKAGE_INFO_LABEL _("Package information")
// #define _LABEL _("<i><b>Package:</b></i>")
// #define _LABEL _("<i><b>Module:</b></i>")
// #define _LABEL _("New section at") // #define _LABEL _("New section at")
// #define _LABEL _("\"/ublinux-data/\" user data section") // #define _LABEL _("\"/ublinux-data/\" user data section")
// #define _LABEL _("\"/ublinux/\" system section") // #define _LABEL _("\"/ublinux/\" system section")

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 --> <!-- Generated with glade 3.40.0 -->
<interface domain="ubinstall-gtk"> <interface domain="ubinstall-gtk">
<requires lib="gtk+" version="3.24"/> <requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubinstall-gtk.css --> <!-- interface-css-provider-path ubinstall-gtk.css -->
@ -152,7 +152,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-bottom">2</property> <property name="margin-bottom">2</property>
<property name="label" translatable="yes">UBLinux installation</property> <property name="label" translatable="yes">System installation</property>
<attributes> <attributes>
<attribute name="weight" value="bold"/> <attribute name="weight" value="bold"/>
</attributes> </attributes>

@ -0,0 +1,183 @@
<?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="GtkBox" id="TableRow">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-top">1</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-bottom">5</property>
<property name="spacing">7</property>
<child>
<object class="GtkCheckButton" id="InstallCheck">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="margin-top">5</property>
<property name="draw-indicator">True</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="orientation">vertical</property>
<child>
<object class="GtkLabel" id="NameLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Name</property>
<property name="use-markup">True</property>
<property name="use-underline">True</property>
<property name="track-visited-links">False</property>
<property name="xalign">0</property>
</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="spacing">5</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">&lt;i&gt;&lt;b&gt;Module:&lt;/b&gt;&lt;/i&gt;</property>
<property name="use-markup">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="ModuleLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Name</property>
<property name="use-markup">True</property>
<property name="track-visited-links">False</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">&lt;i&gt;&lt;b&gt;Package:&lt;/b&gt;&lt;/i&gt;</property>
<property name="use-markup">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="PackageLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Name</property>
<property name="use-markup">True</property>
<property name="track-visited-links">False</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-top">5</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">8</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="DescriptionLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-top">5</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">9</property>
</packing>
</child>
<style>
<class name="selection"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<style>
<class name="tableborderbottom"/>
</style>
</object>
</interface>

@ -75,7 +75,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="model">liststore1</property> <property name="model">liststore1</property>
<property name="search-column">1</property> <property name="search-column">0</property>
<property name="enable-grid-lines">both</property> <property name="enable-grid-lines">both</property>
<property name="activate-on-single-click">True</property> <property name="activate-on-single-click">True</property>
<child internal-child="selection"> <child internal-child="selection">

@ -64,7 +64,7 @@
<object class="GtkBox" id="TagsBox"> <object class="GtkBox" id="TagsBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="valign">start</property> <property name="halign">center</property>
<property name="margin-top">3</property> <property name="margin-top">3</property>
<property name="margin-bottom">5</property> <property name="margin-bottom">5</property>
<property name="spacing">2</property> <property name="spacing">2</property>
@ -75,6 +75,7 @@
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">6</property> <property name="position">6</property>
</packing> </packing>
</child> </child>

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save