master #13

Merged
asmeron merged 15 commits from YanTheKaller/ubinstall-gtk:master into master 1 year ago

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

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

@ -227,6 +227,12 @@ void config_init(){
main_config.progress_thread=0;
main_config.install_complete=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);
@ -322,7 +328,8 @@ void *on_config_save(void *data){
fclose(file);
char *command = save_config_command(yon_char_parsed_to_string(parameters,size," "));
if (system(command)){
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),INSTALLATION_ERROR,5,BACKGROUND_IMAGE_FAIL_TYPE);
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALL_ERROR);
// yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),INSTALLATION_ERROR,5,BACKGROUND_IMAGE_FAIL_TYPE);
};
main_config.install_thread=NULL;
main_config.install_complete=1;
@ -393,51 +400,62 @@ 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){
yon_switch_page_render(widgets,page>3?page-2:page);
switch(page){
case YON_PAGE_WELCOME: {
gtk_widget_set_sensitive(widgets->CancelInstallButton,0);
gtk_widget_set_sensitive(widgets->BackButton,0);
gtk_widget_set_sensitive(widgets->NextButton,1);
gtk_widget_set_sensitive(widgets->BackButton,0);
gtk_button_set_label(GTK_BUTTON(widgets->NextButton),NEXT_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->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;
case YON_PAGE_LICENCE:{
gtk_widget_set_sensitive(widgets->CancelInstallButton,1);
gtk_widget_set_sensitive(widgets->BackButton,1);
yon_switch_page_render(widgets,1);
} break;
case YON_PAGE_REGION: {
yon_image_resize_from_container(GTK_IMAGE(widgets->RegionImage), widgets->regions_original);
yon_switch_page_render(widgets,4);
} break;
case YON_PAGE_KEYBOARD: {
yon_switch_page_render(widgets,5);
yon_image_resize_from_container(GTK_IMAGE(widgets->KeyboardImage), widgets->keyboard_original);
} 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:{
yon_switch_page_render(widgets,3);
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);
// if (!main_config.install_thread&&!main_config.install_complete)
// main_config.install_thread = g_thread_new("InstallThread",(GThreadFunc)yon_installation_start,widgets);
if (!main_config.progress_thread)
if (!main_config.progress_thread&&!main_config.configure_mode)
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);
gtk_widget_show(gtk_widget_get_parent(widgets->InstallationProgress));
} break;
case YON_PAGE_OS_COMPONENTS:
case YON_PAGE_SOFTWARE:
yon_switch_page_render(widgets,3);
break;
case YON_PAGE_USERS:
yon_switch_page_render(widgets,6);
gtk_widget_set_sensitive(widgets->NextButton,1);
break;
case YON_PAGE_INSTALL_ERROR:
case YON_PAGE_COMPLETION:{
yon_switch_page_render(widgets,7);
gtk_widget_set_sensitive(widgets->BackButton,0);
gtk_widget_hide(gtk_widget_get_parent(widgets->PackageInstallationProgress));
gtk_widget_hide(widgets->InstallationLabel);
@ -449,15 +467,20 @@ void on_page_changed(GtkWidget *,GtkWidget *,int page, main_window *widgets){
gtk_button_set_label(GTK_BUTTON(widgets->NextButton),RESTART_LABEL);
gtk_button_set_label(GTK_BUTTON(widgets->CancelInstallButton),EXIT_LABEL);
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->CancelInstallButton))),"com.ublinux.libublsettingsui-gtk3.reset-symbolic",GTK_ICON_SIZE_BUTTON);
// pthread_t tid;
// pthread_create(&tid,NULL,on_config_save,widgets);
}
break;
case YON_PAGE_SECTIONS:
case YON_PAGE_INSTALL_COMMON:
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);
}
}
@ -493,6 +516,32 @@ void *on_setup_system_configuration(void * data){
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){
int mode = self==widgets->NextButton ? 1 : self == widgets->BackButton ? -1 : self==widgets->CancelInstallButton?-2:0;
@ -500,6 +549,11 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
switch (mode){
case 1: { // Next
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
int active_id=-1;
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationRadio)))
@ -508,8 +562,8 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
active_id=1;
else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationLinuxRadio)))
active_id=2;
// else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationRadio)))
// active_id=3;
else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationWindowsRadio)))
active_id=3;
// else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationRadio)))
// active_id=4;
main_config.install_mode=active_id;
@ -522,6 +576,9 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
break;
case 2:
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;
case YON_PAGE_REGION:{ //region
@ -560,6 +617,7 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page+1);
}break;
case YON_PAGE_KEYBOARD: { //keyboard
gtk_widget_set_sensitive(widgets->BackButton,1);
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->ManualLayoutRadio))){
@ -597,10 +655,12 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page+1);
} break;
default:{ // all other pages
gtk_widget_set_sensitive(widgets->BackButton,1);
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page+1);
}break;
case YON_PAGE_INSTALL_COMMON: {
GtkTreeModel *model;
GtkTreeIter iter;
@ -612,15 +672,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 *device_name = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->CommonInstallationSectionNameEntry));
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);
yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"fast");
yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,device);
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);
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);
}break;
case YON_PAGE_INSTALL_SEPARATE:
{
GtkTreeModel *model;
@ -648,7 +712,7 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
gtk_tree_model_get(model,&iter,0,&part,-1);
yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"next");
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);
if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->NextInstallationFormatCheck))){
yon_config_register(device_format_parameter,device_format_parameter_command,"no");
@ -661,9 +725,13 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->NextInstallationFormatCheck)))
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);
else
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_REGION);
}
break;
case YON_PAGE_INSTALL_SAME_PARTITION:
{
GtkTreeModel *model;
@ -686,7 +754,7 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
gtk_tree_model_get(model,&iter,0,&part,-1);
yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"part");
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);
if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->SameInstallationFormatCheck))){
@ -699,8 +767,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);
else
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_REGION);
}break;
case YON_PAGE_USERS:{ //users
if (yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->UserNameEntry)))){
@ -794,51 +866,156 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
} else {
yon_config_remove_by_key(xkboptions_parameter);
}
if (!main_config.install_complete){
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION);
if (!main_config.configure_mode){
if (!main_config.install_complete){
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION);
}
if (gtk_progress_bar_get_fraction(GTK_PROGRESS_BAR(widgets->InstallationProgress))>0.9){
pthread_t tid;
pthread_create(&tid,NULL,on_setup_system_configuration,widgets);
}
main_config.save_done=1;
yon_debug_output("Save changed to: %s\n",yon_char_from_int(main_config.save_done));
yon_debug_output("Install state: %s\n",yon_char_from_int(main_config.install_complete));
if (main_config.install_complete){
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_COMPLETION);
} else {
printf("still deactivated\n");
gtk_widget_set_sensitive(widgets->CancelInstallButton,0);
gtk_widget_set_sensitive(widgets->NextButton,0);
gtk_widget_set_sensitive(widgets->BackButton,0);
}
} else {
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_COMPLETION);
}
if (gtk_progress_bar_get_fraction(GTK_PROGRESS_BAR(widgets->InstallationProgress))>0.9){
pthread_t tid;
pthread_create(&tid,NULL,on_setup_system_configuration,widgets);
}
main_config.save_done=1;
yon_debug_output("Save changed to: %s\n",yon_char_from_int(main_config.save_done));
yon_debug_output("Install state: %s\n",yon_char_from_int(main_config.install_complete));
if (main_config.install_complete)
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_COMPLETION);
else {
gtk_widget_set_sensitive(widgets->CancelInstallButton,0);
gtk_widget_set_sensitive(widgets->NextButton,0);
gtk_widget_set_sensitive(widgets->BackButton,0);
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_CONFIGURE_END);
}
}break;
case YON_PAGE_INSTALLATION_BEGIN:{
pthread_t tid;
pthread_create(&tid,NULL,on_config_save,widgets);
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION);
} break;
case YON_PAGE_INSTALL_ERROR:
case YON_PAGE_COMPLETION:
if (!system("reboot"))
return;
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;
case -1: { // Previous
switch (page){
case YON_PAGE_REGION: {
gtk_widget_set_sensitive(widgets->BackButton,0);
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page-1);
if (!main_config.configure_mode){
gtk_widget_set_sensitive(widgets->BackButton,0);
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;
case YON_PAGE_INSTALL_COMMON:
case YON_PAGE_INSTALL_SEPARATE:
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;
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;
case YON_PAGE_INSTALLATION_BEGIN:
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_SECTIONS);
break;
default:{
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page-1);
}
@ -847,7 +1024,8 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){
} break;
case -2: { // Cancel/repeat
switch (page){
case YON_PAGE_COMPLETION:{
case YON_PAGE_COMPLETION:
case YON_PAGE_INSTALL_ERROR:{
gtk_main_quit();
}break;
default:{
@ -966,7 +1144,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[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_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);
@ -1116,12 +1294,40 @@ main_window *yon_main_window_complete(){
widgets->GpartedNearButton = yon_gtk_builder_get_widget(builder,"GpartedNearButton");
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->AboutMenuItem = yon_gtk_builder_get_widget(builder,"AboutMenuItem");
widgets->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox");
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->LanguagesFilter = GTK_TREE_MODEL(gtk_builder_get_object(builder,"LanguagesFilter"));
widgets->LayoutsFilter = GTK_TREE_MODEL(gtk_builder_get_object(builder,"LayoutsFilter"));
@ -1153,6 +1359,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->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->AboutMenuItem),"activate",G_CALLBACK(on_about),widgets);

@ -28,7 +28,7 @@
#define CssPath "/com/ublinux/css/ubinstall-gtk.css"
#define config_path yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL)
#define icon_path "com.ublinux.ubinstall-gtk-gui"
#define icon_path "com.ublinux.ubinstall-gtk"
#define LocalePath "/usr/share/locale"
#define LocaleName "ubinstall-gtk"
@ -75,7 +75,7 @@ NULL
#define AUTOINSTALL_TYPE_INSTALL "AUTOINSTALL[install_type]"
#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_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_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"
@ -150,7 +150,16 @@ enum YON_PAGES {
YON_PAGE_COMPLETED,
YON_PAGE_INSTALL_COMMON,
YON_PAGE_INSTALL_SEPARATE,
YON_PAGE_INSTALL_SAME_PARTITION
YON_PAGE_INSTALL_SAME_PARTITION,
YON_PAGE_INSTALL_OPTIONS,
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 {
@ -176,6 +185,7 @@ typedef struct {
GThread *config_save_thread;
GThread *install_thread;
guint progress_thread;
int configure_mode;
} config;
typedef struct {
@ -268,6 +278,7 @@ typedef struct {
GtkWidget *GpartedNearButton;
GtkWidget *GpartedSameButton;
GtkWidget *ConfigurationModeMenuItem;
GtkWidget *AboutMenuItem;
GtkWidget *DocumentationMenuItem;
@ -276,6 +287,33 @@ typedef struct {
GtkWidget *CommonInstallationDevicesTree;
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 *LayoutsFilter;

@ -68,6 +68,19 @@
#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")
@ -116,3 +129,10 @@
#define OPEN_DOCUMENTATION_LABEL _("Open documentation")
#define INSTALLATION_ERROR _("Installation 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 INSTALLATION_OPTIONS_LABEL _("Installation options")
#define CONFIGURATION_MODE_LABEL _("Configuration mode")
#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="modal">True</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>
<object class="GtkBox">
<property name="visible">True</property>
@ -123,7 +123,7 @@
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubinstall-gtk-gui</property>
<property name="icon-name">com.ublinux.ubinstall-gtk</property>
</object>
</child>
<child>

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

File diff suppressed because it is too large Load Diff

@ -462,6 +462,30 @@ msgstr ""
msgid "Open documentation"
msgstr ""
#: source/ubl-strings.h:102
msgid "Installation error"
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
msgid "Error"
msgstr ""
#: source/ubl-strings.h:102
msgid "Error has occured while installation process"
msgstr ""
#: source/ubl-strings.h:136
msgid "Configuration mode"
msgstr ""
msgid "Afrikaans"
msgstr ""
@ -2675,18 +2699,12 @@ msgstr ""
msgid "Uzbek (Afghanistan)"
msgstr ""
msgid "Albanian"
msgstr ""
msgid "Albanian (Plisi)"
msgstr ""
msgid "Albanian (Veqilharxhi)"
msgstr ""
msgid "Armenian"
msgstr ""
msgid "Armenian (alt. eastern)"
msgstr ""
@ -2726,9 +2744,6 @@ msgstr ""
msgid "APL symbols (unified)"
msgstr ""
msgid "Arabic"
msgstr ""
msgid "Arabic (AZERTY)"
msgstr ""
@ -2780,15 +2795,9 @@ msgstr ""
msgid "English (Australian)"
msgstr ""
msgid "Azerbaijani"
msgstr ""
msgid "Azerbaijani (Cyrillic)"
msgstr ""
msgid "Bosnian"
msgstr ""
msgid "Bosnian (with guillemets)"
msgstr ""
@ -2828,9 +2837,6 @@ msgstr ""
msgid "Belgian (Wang 724 AZERTY)"
msgstr ""
msgid "Bulgarian"
msgstr ""
msgid "Bulgarian (new phonetic)"
msgstr ""
@ -2885,9 +2891,6 @@ msgstr ""
msgid "Tswana"
msgstr ""
msgid "Belarusian"
msgstr ""
msgid "Belarusian (intl.)"
msgstr ""
@ -2981,9 +2984,6 @@ msgstr ""
msgid "Cameroon Multilingual (QWERTY, intl.)"
msgstr ""
msgid "Chinese"
msgstr ""
msgid "Hanyu Pinyin Letters (with AltGr dead keys)"
msgstr ""
@ -3020,10 +3020,7 @@ msgstr ""
msgid "A user-defined custom Layout"
msgstr ""
msgid "Czech"
msgstr ""
msgid "Czech (with <\"
msgid "Czech (with <\\"
msgstr ""
msgid "Czech (coder)"
@ -3059,9 +3056,6 @@ msgstr ""
msgid "Czech (UCW, only accented letters)"
msgstr ""
msgid "German"
msgstr ""
msgid "German (Aus der Neo-Welt)"
msgstr ""
@ -3155,9 +3149,6 @@ msgstr ""
msgid "German (US)"
msgstr ""
msgid "Danish"
msgstr ""
msgid "Danish (Dvorak)"
msgstr ""
@ -3194,9 +3185,6 @@ msgstr ""
msgid "Kabyle (QWERTY, US, with dead keys)"
msgstr ""
msgid "Estonian"
msgstr ""
msgid "Estonian (Dvorak)"
msgstr ""
@ -3218,9 +3206,6 @@ msgstr ""
msgid "Esperanto (legacy)"
msgstr ""
msgid "Spanish"
msgstr ""
msgid "Asturian (Spain, with bottom-dot H and L)"
msgstr ""
@ -3251,9 +3236,6 @@ msgstr ""
msgid "EurKEY (US)"
msgstr ""
msgid "Finnish"
msgstr ""
msgid "Finnish (classic)"
msgstr ""
@ -3284,9 +3266,6 @@ msgstr ""
msgid "Faroese (no dead keys)"
msgstr ""
msgid "French"
msgstr ""
msgid "French (AZERTY, AFNOR)"
msgstr ""
@ -3383,9 +3362,6 @@ msgstr ""
msgid "English (UK, Sun Type 6/7)"
msgstr ""
msgid "Georgian"
msgstr ""
msgid "Georgian (ergonomic)"
msgstr ""
@ -3428,9 +3404,6 @@ msgstr ""
msgid "N'Ko (AZERTY)"
msgstr ""
msgid "Greek"
msgstr ""
msgid "Greek (Colemak)"
msgstr ""
@ -3449,9 +3422,6 @@ msgstr ""
msgid "Greek (Sun Type 6/7)"
msgstr ""
msgid "Croatian"
msgstr ""
msgid "Croatian (with guillemets)"
msgstr ""
@ -3464,9 +3434,6 @@ msgstr ""
msgid "Croatian (US)"
msgstr ""
msgid "Hungarian"
msgstr ""
msgid "Hungarian (QWERTY, 101-key, comma, dead keys)"
msgstr ""
@ -3554,9 +3521,6 @@ msgstr ""
msgid "Irish (UnicodeExpert)"
msgstr ""
msgid "Hebrew"
msgstr ""
msgid "Hebrew (Biblical, Tiro)"
msgstr ""
@ -3569,9 +3533,6 @@ msgstr ""
msgid "Hebrew (phonetic)"
msgstr ""
msgid "Indian"
msgstr ""
msgid "Bangla (India, Baishakhi)"
msgstr ""
@ -3599,9 +3560,6 @@ msgstr ""
msgid "English (India, with rupee)"
msgstr ""
msgid "Gujarati"
msgstr ""
msgid "Punjabi (Gurmukhi)"
msgstr ""
@ -3620,18 +3578,12 @@ msgstr ""
msgid "Kannada (KaGaPa, phonetic)"
msgstr ""
msgid "Kannada"
msgstr ""
msgid "Malayalam (enhanced InScript, with rupee)"
msgstr ""
msgid "Malayalam (Lalitha)"
msgstr ""
msgid "Malayalam"
msgstr ""
msgid "Marathi (enhanced InScript)"
msgstr ""
@ -3647,9 +3599,6 @@ msgstr ""
msgid "Oriya (Bolnagri)"
msgstr ""
msgid "Oriya"
msgstr ""
msgid "Oriya (Wx)"
msgstr ""
@ -3680,9 +3629,6 @@ msgstr ""
msgid "Telugu (Sarala)"
msgstr ""
msgid "Telugu"
msgstr ""
msgid "Urdu (Navees)"
msgstr ""
@ -3731,9 +3677,6 @@ msgstr ""
msgid "Persian (with Persian keypad)"
msgstr ""
msgid "Icelandic"
msgstr ""
msgid "Icelandic (Dvorak)"
msgstr ""
@ -3743,9 +3686,6 @@ msgstr ""
msgid "Icelandic (Macintosh, legacy)"
msgstr ""
msgid "Italian"
msgstr ""
msgid "Italian (Dvorak)"
msgstr ""
@ -3782,9 +3722,6 @@ msgstr ""
msgid "Italian (Windows)"
msgstr ""
msgid "Japanese"
msgstr ""
msgid "Japanese (Dvorak)"
msgstr ""
@ -3827,18 +3764,12 @@ msgstr ""
msgid "Khmer (Cambodia)"
msgstr ""
msgid "Korean"
msgstr ""
msgid "Korean (101/104-key compatible)"
msgstr ""
msgid "Korean (Sun Type 6/7)"
msgstr ""
msgid "Kazakh"
msgstr ""
msgid "Kazakh (extended)"
msgstr ""
@ -3887,9 +3818,6 @@ msgstr ""
msgid "Sinhala (US)"
msgstr ""
msgid "Lithuanian"
msgstr ""
msgid "Lithuanian (IBM LST 1205-92)"
msgstr ""
@ -3917,9 +3845,6 @@ msgstr ""
msgid "Lithuanian (US)"
msgstr ""
msgid "Latvian"
msgstr ""
msgid "Latvian (adapted)"
msgstr ""
@ -4028,9 +3953,6 @@ msgstr ""
msgid "Montenegrin (Latin, QWERTY)"
msgstr ""
msgid "Macedonian"
msgstr ""
msgid "Macedonian (no dead keys)"
msgstr ""
@ -4067,9 +3989,6 @@ msgstr ""
msgid "Mongolian"
msgstr ""
msgid "Maltese"
msgstr ""
msgid "Maltese (UK, with AltGr overrides)"
msgstr ""
@ -4100,9 +4019,6 @@ msgstr ""
msgid "Yoruba"
msgstr ""
msgid "Dutch"
msgstr ""
msgid "Dutch (Macintosh)"
msgstr ""
@ -4196,9 +4112,6 @@ msgstr ""
msgid "Urdu (Pakistan, NLA)"
msgstr ""
msgid "Polish"
msgstr ""
msgid "Polish (Colemak-DH)"
msgstr ""
@ -4244,9 +4157,6 @@ msgstr ""
msgid "Silesian"
msgstr ""
msgid "Portuguese"
msgstr ""
msgid "Portuguese (Colemak)"
msgstr ""
@ -4271,9 +4181,6 @@ msgstr ""
msgid "Portuguese (Sun Type 6/7)"
msgstr ""
msgid "Romanian"
msgstr ""
msgid "Crimean Tatar (Dobruja Q)"
msgstr ""
@ -4289,9 +4196,6 @@ msgstr ""
msgid "Romanian (Windows)"
msgstr ""
msgid "Serbian"
msgstr ""
msgid "Serbian (Cyrillic, with guillemets)"
msgstr ""
@ -4319,9 +4223,6 @@ msgstr ""
msgid "Serbian (Cyrillic, ZE and ZHE swapped)"
msgstr ""
msgid "Russian"
msgstr ""
msgid "Bashkirian"
msgstr ""
@ -4418,9 +4319,6 @@ msgstr ""
msgid "Kalmyk"
msgstr ""
msgid "Swedish"
msgstr ""
msgid "Swedish (Dvorak A5)"
msgstr ""
@ -4460,18 +4358,12 @@ msgstr ""
msgid "Swedish (US)"
msgstr ""
msgid "Slovenian"
msgstr ""
msgid "Slovenian (with guillemets)"
msgstr ""
msgid "Slovenian (US)"
msgstr ""
msgid "Slovak"
msgstr ""
msgid "Slovak (ACC layout, only accented letters)"
msgstr ""
@ -4511,9 +4403,6 @@ msgstr ""
msgid "French (Togo)"
msgstr ""
msgid "Thai"
msgstr ""
msgid "Thai (Pattachote)"
msgstr ""
@ -4538,9 +4427,6 @@ msgstr ""
msgid "International Phonetic Alphabet (QWERTY)"
msgstr ""
msgid "Turkish"
msgstr ""
msgid "Turkish (Alt-Q)"
msgstr ""
@ -4589,9 +4475,6 @@ msgstr ""
msgid "Swahili (Tanzania)"
msgstr ""
msgid "Ukrainian"
msgstr ""
msgid "Crimean Tatar (Turkish Alt-Q)"
msgstr ""
@ -4775,9 +4658,6 @@ msgstr ""
msgid "Uzbek (Latin)"
msgstr ""
msgid "Vietnamese"
msgstr ""
msgid "Vietnamese (AÐERTY)"
msgstr ""

@ -441,11 +441,11 @@ msgstr "Тип ФС"
#: source/ubl-strings.h:103
msgid "Default (L_Alt + L_Shift)"
msgstr "По умолчанию ((L_Alt + L_Shift))"
msgstr "По умолчанию (L_Alt + L_Shift)"
#: source/ubl-strings.h:104
msgid "Default (Regular 105-key)"
msgstr "По умолчанию ((Regular 105-key))"
msgstr "По умолчанию (Обычная 105-клавишная)"
#: source/ubl-strings.h:102
msgid "Installation configuration has ended"
@ -468,8 +468,13 @@ msgid "Would you like to read documentation in the Web?"
msgstr "Вы хотите прочитать документацию в Сети?"
#: source/ubl-strings.h:102
msgid "You will be redirected to documentation website where documentation is\ntranslated and supported by community."
msgstr "Вы будете перенаправлены на сайт с документацией, где документация переводится\nи поддерживается сообществом"
msgid ""
"You will be redirected to documentation website where documentation is\n"
"translated and supported by community."
msgstr ""
"Вы будете перенаправлены на сайт с документацией, где документация "
"переводится\n"
"и поддерживается сообществом"
#: source/ubl-strings.h:102
msgid "Always redirect to online documentation"
@ -479,6 +484,30 @@ msgstr "Всегда перенаправлять"
msgid "Open documentation"
msgstr "Открыть документацию"
#: source/ubl-strings.h:102
msgid "Installation error"
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
msgid "Error"
msgstr "Ошибка"
#: source/ubl-strings.h:102
msgid "Error has occured while installation process"
msgstr "Во время процесса установки произошла ошибка"
#: source/ubl-strings.h:136
msgid "Configuration mode"
msgstr "Режим конфигурации"
msgid "Afrikaans"
msgstr "Африканский"
@ -3025,7 +3054,7 @@ msgstr "Уйгурский"
msgid "A user-defined custom Layout"
msgstr "Пользовательский макет"
msgid "Czech (with <\""
msgid "Czech (with <\\"
msgstr "Чешский (с <\")"
msgid "Czech (coder)"
@ -4450,6 +4479,15 @@ msgstr "Курдский (Турция, F)"
msgid "Kurdish (Turkey, Latin Q)"
msgstr "Курдский (Турция, латиница Q)"
msgid "Ottoman (F)"
msgstr "Османская (F)"
msgid "Old Turkic (F)"
msgstr "Старый тюркский (F)"
msgid "Old Turkic"
msgstr "Старый тюркский"
msgid "Ottoman (Q)"
msgstr "Османская (Q)"
@ -4541,13 +4579,16 @@ msgid "English (Carpalx)"
msgstr "Английский (Carpalx)"
msgid "English (Carpalx, full optimization, intl., with AltGr dead keys)"
msgstr "Английский (Carpalx, полная оптимизация, международный, с мёртвыми клавишами AltGr)"
msgstr ""
"Английский (Carpalx, полная оптимизация, международный, с мёртвыми клавишами "
"AltGr)"
msgid "English (Carpalx, full optimization)"
msgstr "Английский (Carpalx, полная оптимизация)"
msgid "English (Carpalx, full optimization, intl., with dead keys)"
msgstr "Английский (Carpalx, полная оптимизация, международный, с мёртвыми клавишами)"
msgstr ""
"Английский (Carpalx, полная оптимизация, международный, с мёртвыми клавишами)"
msgid "English (Carpalx, intl., with dead keys)"
msgstr "Английский (Carpalx, международный, с мёртвыми клавишами)"
@ -4571,7 +4612,8 @@ msgid "Czech Slovak and German (US)"
msgstr "Чешский, словацкий и немецкий (США)"
msgid "Czech, Slovak, Polish, Spanish, Finnish, Swedish and German (US)"
msgstr "Чешский, словацкий, польский, испанский, финский, шведский и немецкий (США)"
msgstr ""
"Чешский, словацкий, польский, испанский, финский, шведский и немецкий (США)"
msgid "German, Swedish and Finnish (US)"
msgstr "Немецкий, шведский и финский (США)"

Loading…
Cancel
Save