v2 branch merged to master

pull/13/head
commit 2651015d5c

@ -31,6 +31,7 @@
<file>language.png</file> <file>language.png</file>
<file>in_part_install_disk.png</file> <file>in_part_install_disk.png</file>
<file>clear_install_disk.png</file> <file>clear_install_disk.png</file>
<file>manual_install_disk.png</file>
</gresource> </gresource>
<gresource prefix="/com/ublinux/csv"> <gresource prefix="/com/ublinux/csv">
<file>modules.csv</file> <file>modules.csv</file>

@ -56,6 +56,7 @@ set(DEPENDFILES
../images/near_install_disk.png ../images/near_install_disk.png
../images/in_part_install_disk.png ../images/in_part_install_disk.png
../images/clear_install_disk.png ../images/clear_install_disk.png
../images/manual_install_disk.png
../images/language.png ../images/language.png
../ubinstall-gtk.glade ../ubinstall-gtk.glade
../ubinstall-gtk-language.glade ../ubinstall-gtk-language.glade

@ -227,6 +227,12 @@ void config_init(){
main_config.progress_thread=0; main_config.progress_thread=0;
main_config.install_complete=0; main_config.install_complete=0;
main_config.save_done=0; main_config.save_done=0;
main_config.configure_mode=0;
}
void on_configuration_mode_switch(GtkWidget *self);
void on_configuration_mode_switch(GtkWidget *self){
main_config.configure_mode = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(self));
} }
int yon_image_resize_from_container(GtkImage *target, GdkPixbuf *pixbuf_unscaled); int yon_image_resize_from_container(GtkImage *target, GdkPixbuf *pixbuf_unscaled);
@ -394,7 +400,6 @@ gboolean yon_installation_progress_update(void *data){
void on_page_changed(GtkWidget *,GtkWidget *,int page, main_window *widgets); void on_page_changed(GtkWidget *,GtkWidget *,int page, main_window *widgets);
void on_page_changed(GtkWidget *,GtkWidget *,int page, main_window *widgets){ void on_page_changed(GtkWidget *,GtkWidget *,int page, main_window *widgets){
yon_switch_page_render(widgets,page>3?page-2:page);
switch(page){ switch(page){
case YON_PAGE_WELCOME: { case YON_PAGE_WELCOME: {
gtk_widget_set_sensitive(widgets->CancelInstallButton,0); gtk_widget_set_sensitive(widgets->CancelInstallButton,0);
@ -405,41 +410,53 @@ void on_page_changed(GtkWidget *,GtkWidget *,int page, main_window *widgets){
gtk_button_set_label(GTK_BUTTON(widgets->CancelInstallButton),CANCEL_LABEL); gtk_button_set_label(GTK_BUTTON(widgets->CancelInstallButton),CANCEL_LABEL);
gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->NextButton))),"com.ublinux.ubinstall-gtk.arrow-right-symbolic",GTK_ICON_SIZE_BUTTON); gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->NextButton))),"com.ublinux.ubinstall-gtk.arrow-right-symbolic",GTK_ICON_SIZE_BUTTON);
gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->CancelInstallButton))),"com.ublinux.ubinstall-gtk.circle-exit-symbolic",GTK_ICON_SIZE_BUTTON); gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->CancelInstallButton))),"com.ublinux.ubinstall-gtk.circle-exit-symbolic",GTK_ICON_SIZE_BUTTON);
gtk_widget_set_sensitive(widgets->ConfigurationModeMenuItem,1);
yon_switch_page_render(widgets,0);
} break; } break;
case YON_PAGE_LICENCE:{ case YON_PAGE_LICENCE:{
gtk_widget_set_sensitive(widgets->CancelInstallButton,1); gtk_widget_set_sensitive(widgets->CancelInstallButton,1);
gtk_widget_set_sensitive(widgets->BackButton,1); gtk_widget_set_sensitive(widgets->BackButton,1);
yon_switch_page_render(widgets,1);
} break; } break;
case YON_PAGE_REGION: { case YON_PAGE_REGION: {
yon_image_resize_from_container(GTK_IMAGE(widgets->RegionImage), widgets->regions_original); yon_image_resize_from_container(GTK_IMAGE(widgets->RegionImage), widgets->regions_original);
yon_switch_page_render(widgets,4);
} break; } break;
case YON_PAGE_KEYBOARD: { case YON_PAGE_KEYBOARD: {
yon_switch_page_render(widgets,5);
yon_image_resize_from_container(GTK_IMAGE(widgets->KeyboardImage), widgets->keyboard_original); yon_image_resize_from_container(GTK_IMAGE(widgets->KeyboardImage), widgets->keyboard_original);
} break; } break;
case YON_PAGE_OS_COMPONENTS:
case YON_PAGE_SOFTWARE:
case YON_PAGE_INSTALLATION_BEGIN:
yon_switch_page_render(widgets,3);
break;
case YON_PAGE_INSTALLATION:{ case YON_PAGE_INSTALLATION:{
yon_switch_page_render(widgets,3);
gtk_widget_set_sensitive(widgets->BackButton,0); gtk_widget_set_sensitive(widgets->BackButton,0);
if (main_config.config_save_thread) if (main_config.config_save_thread&&!main_config.configure_mode)
g_thread_join(main_config.config_save_thread); g_thread_join(main_config.config_save_thread);
// if (!main_config.install_thread&&!main_config.install_complete) if (!main_config.progress_thread&&!main_config.configure_mode)
// main_config.install_thread = g_thread_new("InstallThread",(GThreadFunc)yon_installation_start,widgets);
if (!main_config.progress_thread)
main_config.progress_thread = gdk_threads_add_timeout(500,(GSourceFunc)yon_installation_progress_update,widgets); main_config.progress_thread = gdk_threads_add_timeout(500,(GSourceFunc)yon_installation_progress_update,widgets);
if (!main_config.slider_thread) if (!main_config.slider_thread&&!main_config.configure_mode)
main_config.slider_thread = g_timeout_add(5000,(GSourceFunc)on_image_slide,widgets); main_config.slider_thread = g_timeout_add(5000,(GSourceFunc)on_image_slide,widgets);
gtk_widget_show(gtk_widget_get_parent(widgets->InstallationProgress)); gtk_widget_show(gtk_widget_get_parent(widgets->InstallationProgress));
} break; } break;
case YON_PAGE_OS_COMPONENTS:
case YON_PAGE_SOFTWARE:
yon_switch_page_render(widgets,3);
break;
case YON_PAGE_USERS: case YON_PAGE_USERS:
yon_switch_page_render(widgets,6);
gtk_widget_set_sensitive(widgets->NextButton,1); gtk_widget_set_sensitive(widgets->NextButton,1);
break; break;
case YON_PAGE_INSTALL_ERROR: case YON_PAGE_INSTALL_ERROR:
case YON_PAGE_COMPLETION:{ case YON_PAGE_COMPLETION:{
yon_switch_page_render(widgets,7);
gtk_widget_set_sensitive(widgets->BackButton,0); gtk_widget_set_sensitive(widgets->BackButton,0);
gtk_widget_hide(gtk_widget_get_parent(widgets->PackageInstallationProgress)); gtk_widget_hide(gtk_widget_get_parent(widgets->PackageInstallationProgress));
gtk_widget_hide(widgets->InstallationLabel); gtk_widget_hide(widgets->InstallationLabel);
@ -453,9 +470,18 @@ void on_page_changed(GtkWidget *,GtkWidget *,int page, main_window *widgets){
gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->NextButton))),"com.ublinux.libublsettingsui-gtk3.sync-symbolic",GTK_ICON_SIZE_BUTTON); gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->NextButton))),"com.ublinux.libublsettingsui-gtk3.sync-symbolic",GTK_ICON_SIZE_BUTTON);
} }
break; break;
case YON_PAGE_SECTIONS:
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:
case YON_PAGE_INSTALL_OPTIONS:
case YON_PAGE_OPTIONS_GRUB_INSTALL:
case YON_PAGE_OPTIONS_GRUB_UPDATE:
case YON_PAGE_OPTIONS_SEPARATE:
case YON_PAGE_OPTIONS_SEPARATE_USRDATA:
case YON_PAGE_OPTIONS_OS_ONLY:
case YON_PAGE_OPTIONS_USRDATA_ONLY: {
yon_switch_page_render(widgets,2); yon_switch_page_render(widgets,2);
} }
} }
@ -491,6 +517,32 @@ void *on_setup_system_configuration(void * data){
return NULL; return NULL;
} }
void yon_install_options_save(GtkWidget *device_tree, GtkWidget *part_tree,char *mode,main_window *widgets);
void yon_install_options_save(GtkWidget *device_tree, GtkWidget *part_tree,char *mode,main_window *widgets){
GtkTreeIter iter,itar;
GtkTreeModel *model,*model2;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(device_tree)),&model,&iter)){
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(part_tree)),&model2,&itar)){
char *cur_device, *cur_section;
gtk_tree_model_get(model,&iter,0,&cur_device,-1);
gtk_tree_model_get(model2,&itar,0,&cur_section,-1);
yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,cur_device);
yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,mode);
yon_config_register(part_parameter,part_parameter_command,cur_section);
if (!main_config.configure_mode)
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION_BEGIN);
else
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_REGION);
} else {
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(part_tree);
}
} else {
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(device_tree);
}
}
void on_page_navigation_clicked(GtkWidget *self, main_window *widgets); void on_page_navigation_clicked(GtkWidget *self, main_window *widgets);
void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
int mode = self==widgets->NextButton ? 1 : self == widgets->BackButton ? -1 : self==widgets->CancelInstallButton?-2:0; int mode = self==widgets->NextButton ? 1 : self == widgets->BackButton ? -1 : self==widgets->CancelInstallButton?-2:0;
@ -498,6 +550,11 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
switch (mode){ switch (mode){
case 1: { // Next case 1: { // Next
switch (page){ switch (page){
case YON_PAGE_WELCOME:{
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_LICENCE);
gtk_widget_set_sensitive(widgets->ConfigurationModeMenuItem,0);
} break;
case YON_PAGE_SECTIONS:{ //sections case YON_PAGE_SECTIONS:{ //sections
int active_id=-1; int active_id=-1;
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationRadio))) if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationRadio)))
@ -506,8 +563,8 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
active_id=1; active_id=1;
else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationLinuxRadio))) else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationLinuxRadio)))
active_id=2; active_id=2;
// else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationRadio))) else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationWindowsRadio)))
// active_id=3; active_id=3;
// else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationRadio))) // else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationRadio)))
// active_id=4; // active_id=4;
main_config.install_mode=active_id; main_config.install_mode=active_id;
@ -520,6 +577,9 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
break; break;
case 2: case 2:
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALL_SAME_PARTITION); gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALL_SAME_PARTITION);
break;
case 3:
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALL_OPTIONS);
} }
}break; }break;
case YON_PAGE_REGION:{ //region case YON_PAGE_REGION:{ //region
@ -558,6 +618,7 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page+1); gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page+1);
}break; }break;
case YON_PAGE_KEYBOARD: { //keyboard case YON_PAGE_KEYBOARD: { //keyboard
gtk_widget_set_sensitive(widgets->BackButton,1); gtk_widget_set_sensitive(widgets->BackButton,1);
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->ManualLayoutRadio))){ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->ManualLayoutRadio))){
@ -595,10 +656,12 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page+1); gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page+1);
} break; } break;
default:{ // all other pages default:{ // all other pages
gtk_widget_set_sensitive(widgets->BackButton,1); gtk_widget_set_sensitive(widgets->BackButton,1);
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page+1); gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page+1);
}break; }break;
case YON_PAGE_INSTALL_COMMON: { case YON_PAGE_INSTALL_COMMON: {
GtkTreeModel *model; GtkTreeModel *model;
GtkTreeIter iter; GtkTreeIter iter;
@ -610,15 +673,19 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
char *file_system_type = (char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(widgets->CommonInstallationFilesystemTypeCombo)); char *file_system_type = (char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(widgets->CommonInstallationFilesystemTypeCombo));
char *device_name = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->CommonInstallationSectionNameEntry)); char *device_name = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->CommonInstallationSectionNameEntry));
char *device; char *device;
yon_config_remove_by_key(AUTOSTART_PARTS); yon_config_remove_by_key(part_parameter);
gtk_tree_model_get(model,&iter,0,&device,-1); gtk_tree_model_get(model,&iter,0,&device,-1);
yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"fast"); yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"fast");
yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,device); yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,device);
yon_config_register(device_label_parameter,device_label_parameter_command,device_name); yon_config_register(device_label_parameter,device_label_parameter_command,device_name);
yon_config_register(part_type_parameter,part_type_parameter_command,file_system_type); yon_config_register(part_type_parameter,part_type_parameter_command,file_system_type);
if (!main_config.configure_mode)
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION_BEGIN); gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION_BEGIN);
else
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_REGION);
}break; }break;
case YON_PAGE_INSTALL_SEPARATE: case YON_PAGE_INSTALL_SEPARATE:
{ {
GtkTreeModel *model; GtkTreeModel *model;
@ -646,7 +713,7 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
gtk_tree_model_get(model,&iter,0,&part,-1); gtk_tree_model_get(model,&iter,0,&part,-1);
yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"next"); yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"next");
yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,device); yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,device);
yon_config_register(AUTOSTART_PARTS,AUTOSTART_PARTS_command,part); yon_config_register(part_parameter,part_parameter_command,part);
yon_config_register(device_label_parameter,device_label_parameter_command,device_name); yon_config_register(device_label_parameter,device_label_parameter_command,device_name);
if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->NextInstallationFormatCheck))){ if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->NextInstallationFormatCheck))){
yon_config_register(device_format_parameter,device_format_parameter_command,"no"); yon_config_register(device_format_parameter,device_format_parameter_command,"no");
@ -659,9 +726,13 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->NextInstallationFormatCheck))) if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->NextInstallationFormatCheck)))
yon_config_register(device_format_parameter,device_format_parameter_command,"no"); yon_config_register(device_format_parameter,device_format_parameter_command,"no");
if (!main_config.configure_mode)
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION_BEGIN); gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION_BEGIN);
else
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_REGION);
} }
break; break;
case YON_PAGE_INSTALL_SAME_PARTITION: case YON_PAGE_INSTALL_SAME_PARTITION:
{ {
GtkTreeModel *model; GtkTreeModel *model;
@ -684,7 +755,7 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
gtk_tree_model_get(model,&iter,0,&part,-1); gtk_tree_model_get(model,&iter,0,&part,-1);
yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"part"); yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"part");
yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,device); yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,device);
yon_config_register(AUTOSTART_PARTS,AUTOSTART_PARTS_command,part); yon_config_register(part_parameter,part_parameter_command,part);
yon_config_register(device_label_parameter,device_label_parameter_command,device_name); yon_config_register(device_label_parameter,device_label_parameter_command,device_name);
if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->SameInstallationFormatCheck))){ if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->SameInstallationFormatCheck))){
@ -697,8 +768,12 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
} }
if (!main_config.configure_mode)
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION_BEGIN); gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION_BEGIN);
else
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_REGION);
}break; }break;
case YON_PAGE_USERS:{ //users case YON_PAGE_USERS:{ //users
if (yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->UserNameEntry)))){ if (yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->UserNameEntry)))){
@ -792,6 +867,7 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
} else { } else {
yon_config_remove_by_key(xkboptions_parameter); yon_config_remove_by_key(xkboptions_parameter);
} }
if (!main_config.configure_mode){
if (!main_config.install_complete){ if (!main_config.install_complete){
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION); gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION);
} else { } else {
@ -812,31 +888,131 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
gtk_widget_set_sensitive(widgets->NextButton,0); gtk_widget_set_sensitive(widgets->NextButton,0);
gtk_widget_set_sensitive(widgets->BackButton,0); gtk_widget_set_sensitive(widgets->BackButton,0);
} }
} else {
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_CONFIGURE_END);
}
}break; }break;
case YON_PAGE_INSTALLATION_BEGIN:{ case YON_PAGE_INSTALLATION_BEGIN:{
pthread_t tid; pthread_t tid;
pthread_create(&tid,NULL,on_config_save,widgets); pthread_create(&tid,NULL,on_config_save,widgets);
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION); gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION);
} break; } break;
case YON_PAGE_COMPLETION: case YON_PAGE_COMPLETION:
if (!system("reboot")) if (!system("reboot"))
return; return;
break; break;
case YON_PAGE_INSTALL_OPTIONS: {
int mode = -1;
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->GrubInstallRadio))){
mode = 0;
} else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->GrubUpdateRadio))){
mode = 1;
} else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->SeparateRadio))){
mode = 2;
} else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->OSRadio))){
mode = 3;
} else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->UserDataOnlyRadio))){
mode = 4;
}
switch(mode){
case 0: gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_OPTIONS_GRUB_INSTALL);
break;
case 1: gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_OPTIONS_GRUB_UPDATE);
break;
case 2: gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_OPTIONS_SEPARATE);
break;
case 3: gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_OPTIONS_OS_ONLY);
break;
case 4: gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_OPTIONS_USRDATA_ONLY);
break;
}
} break;
case YON_PAGE_OPTIONS_GRUB_INSTALL:{
GtkTreeIter iter;
GtkTreeModel *model;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GrubInstallDevicesTree)),&model,&iter)){
char *cur_device;
gtk_tree_model_get(model,&iter,0,&cur_device,-1);
yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,cur_device);
yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"grub_install");
yon_config_remove_by_key(part_parameter);
if (!main_config.configure_mode)
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION_BEGIN);
else
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_REGION);
} else {
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(widgets->GrubInstallDevicesTree);
}
} break;
case YON_PAGE_OPTIONS_GRUB_UPDATE:{
GtkTreeIter iter;
GtkTreeModel *model;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GrubUpdateDevicesTree)),&model,&iter)){
char *cur_device;
gtk_tree_model_get(model,&iter,0,&cur_device,-1);
yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,cur_device);
yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"grub_update");
yon_config_remove_by_key(part_parameter);
if (!main_config.configure_mode)
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION_BEGIN);
else
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_REGION);
} else {
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(widgets->GrubUpdateDevicesTree);
}
}break;
case YON_PAGE_OPTIONS_SEPARATE:{
yon_install_options_save(widgets->SeparateDevicesTree,widgets->SeparateSysSectionTree,"system_only",widgets);
}break;
case YON_PAGE_OPTIONS_SEPARATE_USRDATA:{
yon_install_options_save(widgets->SeparateUserDevicesTree,widgets->SeparateUserSysSectionTree,"system_only",widgets);
} break;
case YON_PAGE_OPTIONS_OS_ONLY:{
yon_install_options_save(widgets->OSDevicesTree,widgets->OSSysSectionTree,"system_only",widgets);
} break;
case YON_PAGE_OPTIONS_USRDATA_ONLY:{
yon_install_options_save(widgets->UserdataDevicesTree,widgets->UserdataSysSectionTree,"data_only",widgets);
} break;
} }
} break; } break;
case -1: { // Previous case -1: { // Previous
switch (page){ switch (page){
case YON_PAGE_REGION: { case YON_PAGE_REGION: {
if (!main_config.configure_mode){
gtk_widget_set_sensitive(widgets->BackButton,0); gtk_widget_set_sensitive(widgets->BackButton,0);
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page-1); gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page-1);
} else {
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_SECTIONS);
}
}break; }break;
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:
case YON_PAGE_INSTALL_OPTIONS:
{ {
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),2); gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_SECTIONS);
} break; } break;
case YON_PAGE_OPTIONS_GRUB_INSTALL:
case YON_PAGE_OPTIONS_GRUB_UPDATE:
case YON_PAGE_OPTIONS_SEPARATE:
case YON_PAGE_OPTIONS_OS_ONLY:
case YON_PAGE_OPTIONS_USRDATA_ONLY:
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALL_OPTIONS);
break;
default:{ default:{
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page-1); gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page-1);
} }
@ -964,7 +1140,7 @@ void on_near_installation_device_changed(GtkWidget *self, main_window *widgets){
free_space_string = yon_char_append(yon_char_from_float(free_space)," "); free_space_string = yon_char_append(yon_char_from_float(free_space)," ");
free_space_string[strlen(free_space_string)-1]=json_object_get_string(size)[strlen(json_object_get_string(size))-1]; free_space_string[strlen(free_space_string)-1]=json_object_get_string(size)[strlen(json_object_get_string(size))-1];
} }
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->InstallationNearSizeSpin),0.0); // gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->InstallationNearSizeSpin),0.0);
gtk_adjustment_set_upper(gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(widgets->InstallationNearSizeSpin)),0.0); gtk_adjustment_set_upper(gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(widgets->InstallationNearSizeSpin)),0.0);
gtk_list_store_append(widgets->PartitionsList,&iter); gtk_list_store_append(widgets->PartitionsList,&iter);
gtk_list_store_set(widgets->PartitionsList,&iter,0,json_object_get_string(path),1,json_object_get_string(size),2,free_space_string,3,json_object_get_string(fstype),-1); gtk_list_store_set(widgets->PartitionsList,&iter,0,json_object_get_string(path),1,json_object_get_string(size),2,free_space_string,3,json_object_get_string(fstype),-1);
@ -1114,12 +1290,40 @@ main_window *yon_main_window_complete(){
widgets->GpartedNearButton = yon_gtk_builder_get_widget(builder,"GpartedNearButton"); widgets->GpartedNearButton = yon_gtk_builder_get_widget(builder,"GpartedNearButton");
widgets->GpartedSameButton = yon_gtk_builder_get_widget(builder,"GpartedSameButton"); widgets->GpartedSameButton = yon_gtk_builder_get_widget(builder,"GpartedSameButton");
widgets->ConfigurationModeMenuItem = yon_gtk_builder_get_widget(builder,"ConfigurationModeMenuItem");
widgets->DocumentationMenuItem = yon_gtk_builder_get_widget(builder,"DocumentationMenuItem"); widgets->DocumentationMenuItem = yon_gtk_builder_get_widget(builder,"DocumentationMenuItem");
widgets->AboutMenuItem = yon_gtk_builder_get_widget(builder,"AboutMenuItem"); widgets->AboutMenuItem = yon_gtk_builder_get_widget(builder,"AboutMenuItem");
widgets->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox"); widgets->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox");
widgets->AdditionalSoftwareCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"AdditionalSoftwareCell")); widgets->AdditionalSoftwareCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"AdditionalSoftwareCell"));
widgets->GrubInstallRadio = yon_gtk_builder_get_widget(builder,"GrubInstallRadio");
widgets->GrubUpdateRadio = yon_gtk_builder_get_widget(builder,"GrubUpdateRadio");
widgets->SeparateRadio = yon_gtk_builder_get_widget(builder,"SeparateRadio");
widgets->OSRadio = yon_gtk_builder_get_widget(builder,"OSRadio");
widgets->UserDataOnlyRadio = yon_gtk_builder_get_widget(builder,"UserDataOnlyRadio");
widgets->GpartedGrubInstallButton = yon_gtk_builder_get_widget(builder,"GpartedGrubInstallButton");
widgets->GrubInstallDevicesTree = yon_gtk_builder_get_widget(builder,"GrubInstallDevicesTree");
widgets->GpartedGrubUpdateButton = yon_gtk_builder_get_widget(builder,"GpartedGrubUpdateButton");
widgets->GrubUpdateDevicesTree = yon_gtk_builder_get_widget(builder,"GrubUpdateDevicesTree");
widgets->GpartedSeparateButton = yon_gtk_builder_get_widget(builder,"GpartedSeparateButton");
widgets->SeparateDevicesTree = yon_gtk_builder_get_widget(builder,"SeparateDevicesTree");
widgets->SeparateSysSectionTree = yon_gtk_builder_get_widget(builder,"SeparateSysSectionTree");
widgets->GpartedSeparateUserButton = yon_gtk_builder_get_widget(builder,"GpartedSeparateUserButton");
widgets->SeparateUserDevicesTree = yon_gtk_builder_get_widget(builder,"SeparateUserDevicesTree");
widgets->SeparateUserSysSectionTree = yon_gtk_builder_get_widget(builder,"SeparateUse-rSysSectionTree");
widgets->GpartedOSButton = yon_gtk_builder_get_widget(builder,"GpartedOSButton");
widgets->OSDevicesTree = yon_gtk_builder_get_widget(builder,"OSDevicesTree");
widgets->OSSysSectionTree = yon_gtk_builder_get_widget(builder,"OSSysSectionTree");
widgets->GpartedUserdataButton = yon_gtk_builder_get_widget(builder,"GpartedUserdataButton");
widgets->UserdataDevicesTree = yon_gtk_builder_get_widget(builder,"UserdataDevicesTree");
widgets->UserdataSysSectionTree = yon_gtk_builder_get_widget(builder,"UserdataSysSectionTree");
widgets->LanguagesList = GTK_LIST_STORE(gtk_builder_get_object(builder,"LanguagesList")); widgets->LanguagesList = GTK_LIST_STORE(gtk_builder_get_object(builder,"LanguagesList"));
widgets->LanguagesFilter = GTK_TREE_MODEL(gtk_builder_get_object(builder,"LanguagesFilter")); widgets->LanguagesFilter = GTK_TREE_MODEL(gtk_builder_get_object(builder,"LanguagesFilter"));
widgets->LayoutsFilter = GTK_TREE_MODEL(gtk_builder_get_object(builder,"LayoutsFilter")); widgets->LayoutsFilter = GTK_TREE_MODEL(gtk_builder_get_object(builder,"LayoutsFilter"));
@ -1151,6 +1355,7 @@ main_window *yon_main_window_complete(){
g_signal_connect(G_OBJECT(widgets->InstallationNearSysDevicesTree),"cursor-changed",G_CALLBACK(on_near_installation_device_changed),widgets); g_signal_connect(G_OBJECT(widgets->InstallationNearSysDevicesTree),"cursor-changed",G_CALLBACK(on_near_installation_device_changed),widgets);
g_signal_connect(G_OBJECT(widgets->SamePlaceDeviceTree),"cursor-changed",G_CALLBACK(on_near_installation_device_changed),widgets); g_signal_connect(G_OBJECT(widgets->SamePlaceDeviceTree),"cursor-changed",G_CALLBACK(on_near_installation_device_changed),widgets);
g_signal_connect(G_OBJECT(widgets->ConfigurationModeMenuItem),"toggled",G_CALLBACK(on_configuration_mode_switch),widgets);
g_signal_connect(G_OBJECT(widgets->DocumentationMenuItem),"activate",G_CALLBACK(on_open_documentation_confirmation),widgets); g_signal_connect(G_OBJECT(widgets->DocumentationMenuItem),"activate",G_CALLBACK(on_open_documentation_confirmation),widgets);
g_signal_connect(G_OBJECT(widgets->AboutMenuItem),"activate",G_CALLBACK(on_about),widgets); g_signal_connect(G_OBJECT(widgets->AboutMenuItem),"activate",G_CALLBACK(on_about),widgets);

@ -75,7 +75,7 @@ NULL
#define AUTOINSTALL_TYPE_INSTALL "AUTOINSTALL[install_type]" #define AUTOINSTALL_TYPE_INSTALL "AUTOINSTALL[install_type]"
#define AUTOINSTALL_DEVICE "AUTOINSTALL[device]" #define AUTOINSTALL_DEVICE "AUTOINSTALL[device]"
#define AUTOSTART_PARTS "AUTOINSTALL[part]" #define part_parameter "AUTOINSTALL[part]"
#define user_name_parameter "AUTOINSTALL[user_name]" #define user_name_parameter "AUTOINSTALL[user_name]"
#define user_name_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[user_name]" #define user_name_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[user_name]"
@ -120,7 +120,7 @@ NULL
#define AUTOINSTALL_TYPE_INSTALL_command "ubconfig --source global get autoinstall AUTOINSTALL[install_type]" #define AUTOINSTALL_TYPE_INSTALL_command "ubconfig --source global get autoinstall AUTOINSTALL[install_type]"
#define AUTOINSTALL_DEVICE_command "ubconfig --source global get autoinstall AUTOINSTALL[device]" #define AUTOINSTALL_DEVICE_command "ubconfig --source global get autoinstall AUTOINSTALL[device]"
#define AUTOSTART_PARTS_command "ubconfig --source global get autoinstall AUTOINSTALL[part]" #define part_parameter_command "ubconfig --source global get autoinstall AUTOINSTALL[part]"
#define PASSWORD_DEFAULT "ublinux" #define PASSWORD_DEFAULT "ublinux"
@ -152,7 +152,14 @@ enum YON_PAGES {
YON_PAGE_INSTALL_SEPARATE, YON_PAGE_INSTALL_SEPARATE,
YON_PAGE_INSTALL_SAME_PARTITION, YON_PAGE_INSTALL_SAME_PARTITION,
YON_PAGE_INSTALL_OPTIONS, YON_PAGE_INSTALL_OPTIONS,
YON_PAGE_INSTALL_ERROR YON_PAGE_OPTIONS_GRUB_INSTALL,
YON_PAGE_OPTIONS_GRUB_UPDATE,
YON_PAGE_OPTIONS_SEPARATE,
YON_PAGE_OPTIONS_SEPARATE_USRDATA,
YON_PAGE_OPTIONS_OS_ONLY,
YON_PAGE_OPTIONS_USRDATA_ONLY,
YON_PAGE_INSTALL_ERROR,
YON_PAGE_CONFIGURE_END
}; };
typedef struct { typedef struct {
@ -178,6 +185,7 @@ typedef struct {
GThread *config_save_thread; GThread *config_save_thread;
GThread *install_thread; GThread *install_thread;
guint progress_thread; guint progress_thread;
int configure_mode;
} config; } config;
typedef struct { typedef struct {
@ -270,6 +278,7 @@ typedef struct {
GtkWidget *GpartedNearButton; GtkWidget *GpartedNearButton;
GtkWidget *GpartedSameButton; GtkWidget *GpartedSameButton;
GtkWidget *ConfigurationModeMenuItem;
GtkWidget *AboutMenuItem; GtkWidget *AboutMenuItem;
GtkWidget *DocumentationMenuItem; GtkWidget *DocumentationMenuItem;
@ -278,6 +287,33 @@ typedef struct {
GtkWidget *CommonInstallationDevicesTree; GtkWidget *CommonInstallationDevicesTree;
GtkWidget *AdditionalSoftwareTree; GtkWidget *AdditionalSoftwareTree;
GtkWidget *GrubInstallRadio;
GtkWidget *GrubUpdateRadio;
GtkWidget *SeparateRadio;
GtkWidget *OSRadio;
GtkWidget *UserDataOnlyRadio;
GtkWidget *GpartedGrubInstallButton;
GtkWidget *GrubInstallDevicesTree;
GtkWidget *GpartedGrubUpdateButton;
GtkWidget *GrubUpdateDevicesTree;
GtkWidget *GpartedSeparateButton;
GtkWidget *SeparateDevicesTree;
GtkWidget *SeparateSysSectionTree;
GtkWidget *GpartedSeparateUserButton;
GtkWidget *SeparateUserDevicesTree;
GtkWidget *SeparateUserSysSectionTree;
GtkWidget *GpartedOSButton;
GtkWidget *OSDevicesTree;
GtkWidget *OSSysSectionTree;
GtkWidget *GpartedUserdataButton;
GtkWidget *UserdataDevicesTree;
GtkWidget *UserdataSysSectionTree;
GtkTreeModel *LanguagesFilter; GtkTreeModel *LanguagesFilter;
GtkTreeModel *LayoutsFilter; GtkTreeModel *LayoutsFilter;

@ -68,6 +68,19 @@
#define INSTALLATION_PARAMETERS_LABEL _("Installation parameters") #define INSTALLATION_PARAMETERS_LABEL _("Installation parameters")
#define ADVANCED_INSTALLATION_HEAD_LABEL _("Advanced installation mode")
#define ADVANCED_INSTALLATION_LABEL _("Installing OS files, user data on different partitions, creating RAID, etc.")
#define ADVANCED_INSTALLATION_ATTENTION_LABEL _("Attention! The selected OC UBLinux components will be installed\nseparately into the selected partition.")
#define GRUB_INSTALL_HEAD_LABEL _("GRUB install")
#define GRUB_INSTALL_LABEL _("Install the GRUB bootloader")
#define GRUB_UPDATE_HEAD_LABEL _("GRUB update")
#define GRUN_UPDATE_LABEL _("Update (reinstall) the GRUB bootloader")
#define SEPARATE_INSTALL_HEAD_LABEL _("Separate installation")
#define SEPARATE_INSTALL_LABEL _("Installing OS components and user data on different disk partitions")
#define OS_ONLY_HEAD_LABEL _("OS only")
#define OS_ONLY_LABEL _("Installing only OS components without user data")
#define USER_DATA_HEAD_LABEL _("User data only")
#define USER_DATA_LABEL _("Installing only user data without OS components")
#define KEYBOARD__LABEL _("Keyboard layout language") #define KEYBOARD__LABEL _("Keyboard layout language")
@ -115,6 +128,10 @@
#define DOCUMENTATION_CHECK_LABEL _("Always redirect to online documentation") #define DOCUMENTATION_CHECK_LABEL _("Always redirect to online documentation")
#define OPEN_DOCUMENTATION_LABEL _("Open documentation") #define OPEN_DOCUMENTATION_LABEL _("Open documentation")
#define INSTALLATION_ERROR_LABEL _("Installation error") #define INSTALLATION_ERROR _("Installation error")
#define ERROR_TOPIC_LABEL _("Error") #define ATTENTION_NEXT_LABEL _("Attention! The UBLinux OS will be installed on the selected partition with OS already installed. All user data will be saved.")
#define ERROR_LABEL _("Error has occured during installation process.")
#define INSTALLATION_OPTIONS_LABEL _("Installation options")
#define ERROR_HEAD_LABEL _("Error")
#define ERROR_LABEL _("Error has occured while installation process")

@ -8,7 +8,7 @@
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="modal">True</property> <property name="modal">True</property>
<property name="default-width">800</property> <property name="default-width">800</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3</property> <property name="icon-name">com.ublinux.ubinstall-gtk</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
@ -123,7 +123,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="pixel-size">32</property> <property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubinstall-gtk-gui</property> <property name="icon-name">com.ublinux.ubinstall-gtk</property>
</object> </object>
</child> </child>
<child> <child>

@ -18,7 +18,7 @@
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="modal">True</property> <property name="modal">True</property>
<property name="default-width">800</property> <property name="default-width">800</property>
<property name="icon-name">com.ublinux.ubinstall-gui</property> <property name="icon-name">com.ublinux.ubinstall-gtk</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
@ -134,7 +134,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="pixel-size">32</property> <property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubinstall-gtk-gui</property> <property name="icon-name">com.ublinux.ubinstall-gtk</property>
</object> </object>
</child> </child>
<child> <child>

File diff suppressed because it is too large Load Diff

@ -466,12 +466,20 @@ msgstr ""
msgid "Installation error" msgid "Installation error"
msgstr "" msgstr ""
#: source/ubl-strings.h:102
msgid "Attention! The UBLinux OS will be installed on the selected partition with OS already installed. All user data will be saved."
msgstr ""
#: source/ubl-strings.h:134
msgid "Installation options"
msgstr ""
#: source/ubl-strings.h:102 #: source/ubl-strings.h:102
msgid "Error" msgid "Error"
msgstr "" msgstr ""
#: source/ubl-strings.h:102 #: source/ubl-strings.h:102
msgid "Error has occured during installation process." msgid "Error has occured while installation process"
msgstr "" msgstr ""
msgid "Afrikaans" msgid "Afrikaans"

@ -441,11 +441,11 @@ msgstr "Тип ФС"
#: source/ubl-strings.h:103 #: source/ubl-strings.h:103
msgid "Default (L_Alt + L_Shift)" msgid "Default (L_Alt + L_Shift)"
msgstr "По умолчанию ((L_Alt + L_Shift))" msgstr "По умолчанию (L_Alt + L_Shift)"
#: source/ubl-strings.h:104 #: source/ubl-strings.h:104
msgid "Default (Regular 105-key)" msgid "Default (Regular 105-key)"
msgstr "По умолчанию ((Regular 105-key))" msgstr "По умолчанию (Обычная 105-клавишная)"
#: source/ubl-strings.h:102 #: source/ubl-strings.h:102
msgid "Installation configuration has ended" msgid "Installation configuration has ended"
@ -488,13 +488,21 @@ msgstr "Открыть документацию"
msgid "Installation error" msgid "Installation error"
msgstr "Ошибка установки" msgstr "Ошибка установки"
#: source/ubl-strings.h:102
msgid "Attention! The UBLinux OS will be installed on the selected partition with OS already installed. All user data will be saved."
msgstr "Внимание! ОС UBLinux будет установлена в выбранный раздел. Если не менять тип ФС и не форматировать, все данные на разделе будут сохранены"
#: source/ubl-strings.h:134
msgid "Installation options"
msgstr "Параметры установки"
#: source/ubl-strings.h:102 #: source/ubl-strings.h:102
msgid "Error" msgid "Error"
msgstr "Ошибка" msgstr "Ошибка"
#: source/ubl-strings.h:102 #: source/ubl-strings.h:102
msgid "Error has occured during installation process." msgid "Error has occured while installation process"
msgstr "Во время процесса установки произошла ошибка." msgstr "Во время процесса установки произошла ошибка"
msgid "Afrikaans" msgid "Afrikaans"
msgstr "Африканский" msgstr "Африканский"

Loading…
Cancel
Save