WIP code structure changes

pull/94/head
parent b755df3136
commit bf7bf26ad6
No known key found for this signature in database
GPG Key ID: FF1D842BF4DDE92B

@ -105,6 +105,16 @@ endif()
set(SOURCE_FILES
ubinstall-gtk.c
ubinstall-gtk-page-switch.c
ubinstall-gtk-keyboard.c
ubinstall-gtk-region.c
ubinstall-gtk-bootloader.c
ubinstall-gtk-components.c
ubinstall-gtk-grub.c
ubinstall-gtk-installation.c
ubinstall-gtk-network.c
ubinstall-gtk-separate.c
ubinstall-gtk-users.c
ubinstall-gtk.h
ubl-strings.h
)
@ -118,6 +128,7 @@ set(LIBRARIES
pthread
ublsettings
ublsettings-gtk3
ublsettingsui-gtk3
)

@ -0,0 +1,27 @@
#include "ubinstall-gtk.h"
int yon_bootloader_save(main_window *widgets){
if (gtk_switch_get_active(GTK_SWITCH(widgets->BootloadTimerSwitch))){
// long time = gtk_spin_button_get_value(GTK_SPIN_BUTTON(widgets->BootloadTimerSpin));
// yon_config_register(,,yon_char_from_long(time));
}
char *OS = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->BootloadDefaultOSEntry));
if (strcmp(OS,DEFAULT_BOOTLOAD_MENU_ITEM_LABEL)){
// yon_config_register(,,OS);
} else {
// yon_config_remove_by_key();
}
if (gtk_switch_get_active(GTK_SWITCH(widgets->BootloadNoPasswordSwitch))){
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->BootloadUsersList);
for_iter(model,&iter){
int is_admin;
char *username, *password;
gtk_tree_model_get(model,&iter,0,&is_admin,1,&username,2,&password,-1);
// yon_config_register(,,);
}
} else {
// yon_config_remove_by_key();
}
return 1;
}

@ -0,0 +1,91 @@
#include "ubinstall-gtk.h"
int yon_kernel_save(main_window *widgets){
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->KernelsList);
int size = 0;
config_str kernels = NULL;
for_iter(model,&iter){
char *target;
int status,loaded;
gtk_tree_model_get(model,&iter,0,&status,1,&loaded,2,&target,-1);
if (status){
yon_char_parsed_add_or_create_if_exists(kernels,&size,target);
}
}
if (!size){
return 0;
}
return 1;
}
int yon_os_components_save(main_window *widgets){
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->OSSoftwareList);
int size = 0;
config_str modules = NULL;
for_iter(model,&iter){
char *target;
int status;
gtk_tree_model_get(model,&iter,0,&status,1,&target,-1);
if (status){
yon_char_parsed_add_or_create_if_exists(modules,&size,target);
}
}
if (size){
char *final = yon_char_parsed_to_string(modules,size,",");
yon_config_register(modules_parameter,modules_parameter_command,final);
} else {
yon_config_remove_by_key(modules_parameter);
}
return 1;
}
int yon_software_save(main_window *widgets){
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->AdditionalSoftwareList);
int size = 0;
config_str modules = NULL;
for_iter(model,&iter){
char *target;
int status;
gtk_tree_model_get(model,&iter,0,&status,1,&target,-1);
if (status){
yon_char_parsed_add_or_create_if_exists(modules,&size,target);
}
}
if (size){
char *final = yon_char_parsed_to_string(modules,size,",");
yon_config_register(modules_extra_parameter,modules_extra_parameter_command,final);
} else {
yon_config_remove_by_key(modules_extra_parameter);
}
return 1;
}
int yon_startup_save(main_window *widgets){
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->StartupList);
int size = 0;
config_str modules = NULL;
for_iter(model,&iter){
char *target;
int status;
gtk_tree_model_get(model,&iter,0,&status,1,&target,-1);
if (status){
yon_char_parsed_add_or_create_if_exists(modules,&size,target);
}
}
if (size){
// char *final = yon_char_parsed_to_string(modules,size,",");
// yon_config_register(modules_extra_parameter,modules_extra_parameter_command,final);
} else {
// yon_config_remove_by_key(modules_extra_parameter);
}
return 1;
}

@ -0,0 +1,49 @@
#include "ubinstall-gtk.h"
int yon_grub_install_save(main_window *widgets){
GtkTreeIter iter;
GtkTreeModel *model;
if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GrubInstallDevicesTree)),&model,&iter)){
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->GrubInstallDevicesTree));
return 0;
}
char *cur_device;
gtk_tree_model_get(model,&iter,0,&cur_device,-1);
if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GrubInstallPartitionTree)),&model,&iter)){
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->GrubInstallPartitionTree));
return 0;
}
char *partition;
gtk_tree_model_get(model,&iter,0,&partition,-1);
yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,cur_device);
yon_config_register(part_parameter,part_parameter_command,partition);
yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"grub_install");
yon_config_remove_by_key(part_parameter);
return 1;
}
int yon_grub_update_save(main_window *widgets){
GtkTreeIter iter;
GtkTreeModel *model;
if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GrubUpdateDevicesTree)),&model,&iter)){
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->GrubUpdateDevicesTree));
return 0;
}
char *cur_device;
gtk_tree_model_get(model,&iter,0,&cur_device,-1);
if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GrubUpdatePartitionTree)),&model,&iter)){
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->GrubUpdatePartitionTree));
return 0;
}
char *partition;
gtk_tree_model_get(model,&iter,0,&partition,-1);
yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,cur_device);
yon_config_register(part_parameter,part_parameter_command,partition);
yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"grub_update");
yon_config_remove_by_key(part_parameter);
return 1;
}

@ -0,0 +1,220 @@
#include "ubinstall-gtk.h"
int yon_install_common_save(main_window *widgets){
GtkTreeModel *model;
GtkTreeIter iter;
if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->CommonInstallationDevicesTree)),&model,&iter)){
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->CommonInstallationDevicesTree));
return 0;
}
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(part_size_parameter);
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);
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->CommonSectionSensitiveCheck))){
yon_config_register(device_label_parameter,device_label_parameter_command,device_name);
} else {
yon_config_remove_by_key(device_label_parameter);
}
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->CommonFilesystemSensitiveCheck))){
yon_config_register(part_type_parameter,part_type_parameter_command,file_system_type);
} else {
yon_config_remove_by_key(part_type_parameter);
}
return 1;
}
int yon_install_separate_save(main_window *widgets){
GtkTreeModel *model;
GtkTreeIter iter;
if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->InstallationNearSysDevicesTree)),&model,&iter)){
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->CommonInstallationDevicesTree));
return 0;
}
char *device;
gtk_tree_model_get(model,&iter,0,&device,-1);
if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->InstallationNearSysSectionTree)),&model,&iter)){
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->CommonInstallationDevicesTree));
return 0;
}
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->NextSizeSensitiveCheck))){
double part_size = gtk_spin_button_get_value(GTK_SPIN_BUTTON(widgets->InstallationNearSizeSpin));
if (part_size){
char *size_letter = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->InstallationNearSizeTypeSpin));
char *size_final = yon_char_append(yon_char_from_long((long)part_size),size_letter);
yon_config_register(part_size_parameter,part_size_parameter_command,size_final);
} else yon_config_remove_by_key(part_size_parameter);
} else yon_config_remove_by_key(part_size_parameter);
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->NextLabelSensitiveCheck))){
char *device_name = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->NextInstallationSectionNameEntry));
yon_config_register(device_label_parameter,device_label_parameter_command,device_name);
} else {
yon_config_remove_by_key(device_label_parameter);
}
char *part;
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(part_parameter,part_parameter_command,part);
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->NextFSTypeSensitiveCheck))){
if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->NextInstallationFormatCheck))){
yon_config_register(device_format_parameter,device_format_parameter_command,"no");
yon_config_remove_by_key(part_type_parameter);
} else {
char *file_system_type = (char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(widgets->NextInstallationFilesystemTypeCombo));
yon_config_register(part_type_parameter,part_type_parameter_command,file_system_type);
yon_config_remove_by_key(device_format_parameter);
}
if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->NextInstallationFormatCheck)))
yon_config_register(device_format_parameter,device_format_parameter_command,"no");
} else {
yon_config_remove_by_key(part_type_parameter);
yon_config_remove_by_key(device_format_parameter);
}
return 1;
}
int yon_install_same_partition_save(main_window *widgets){
GtkTreeModel *model;
GtkTreeIter iter;
if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SamePlaceDeviceTree)),&model,&iter)){
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->CommonInstallationDevicesTree));
return 0;
}
char *device;
gtk_tree_model_get(model,&iter,0,&device,-1);
if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SamePlacePartTree)),&model,&iter)){
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->CommonInstallationDevicesTree));
return 0;
}
yon_config_remove_by_key(part_size_parameter);
char *part;
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(part_parameter,part_parameter_command,part);
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->SameLabelSensitiveCheck))){
char *device_name = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->SameInstallationSectionNameEntry));
yon_config_register(device_label_parameter,device_label_parameter_command,device_name);
} else {
yon_config_remove_by_key(device_label_parameter);
}
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->SameFSTypeSensitiveCheck))){
if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->SameInstallationFormatCheck))){
yon_config_register(device_format_parameter,device_format_parameter_command,"no");
yon_config_remove_by_key(part_type_parameter);
} else {
char *file_system_type = (char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(widgets->SameInstallationFilesystemTypeCombo));
yon_config_register(part_type_parameter,part_type_parameter_command,file_system_type);
yon_config_remove_by_key(device_format_parameter);
}
} else {
yon_config_remove_by_key(device_format_parameter);
yon_config_remove_by_key(part_type_parameter);
}
return 1;
}
int yon_advanced_sections_save(dictionary *dict){
if (!dict) return 0;
advanced_section *first_section = yon_dictionary_get_data(dict->first,advanced_section*);
advanced_section *last_section = NULL;
if (dict->first->next){
last_section = yon_dictionary_get_data(dict->first->next,advanced_section*);
}
char *part_first = first_section->part;
char *part_last = last_section?last_section->part:NULL;
char *part = yon_char_unite(part_first,last_section?",":NULL,part_last,NULL);
yon_config_register(part_parameter,part_parameter_command,part);
char * format_first = gtk_switch_get_active(GTK_SWITCH(first_section->FormatSwitch))?"yes":"no";
char * format_last = last_section?gtk_switch_get_active(GTK_SWITCH(last_section->FormatSwitch))?"yes":"no":NULL;
char *format = yon_char_unite(format_first,part_last?",":NULL,format_last,NULL);
yon_config_register(part_format_parameter,part_format_parameter_command,format);
if (!yon_char_is_empty(format)){
char *size_first = g_strdup_printf("%d%s",gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(first_section->SizeSpin)),yon_size_get_mod(gtk_combo_box_get_active(GTK_COMBO_BOX(first_section->SizeCombo))));
char *size_last = last_section&&!strcmp(format_last,"yes")?g_strdup_printf("%d%s",gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(last_section->SizeSpin)),yon_size_get_mod(gtk_combo_box_get_active(GTK_COMBO_BOX(last_section->SizeCombo)))):NULL;
char *size = yon_char_unite(size_first,size_last?",":NULL,size_last,NULL);
yon_config_register(part_size_parameter,part_size_parameter_command,size);
char *device_label_first = gtk_entry_get_text(GTK_ENTRY(first_section->SectionMarkEntry));
char *device_label_last = last_section&&!strcmp(format_last,"yes")?gtk_entry_get_text(GTK_ENTRY(last_section->SectionMarkEntry)):NULL;
char *device_label = yon_char_unite(device_label_first,device_label_last?",":NULL,device_label_last,NULL);
yon_config_register(device_label_parameter,device_label_parameter_command,device_label);
char *fs_label_first = gtk_entry_get_text(GTK_ENTRY(first_section->FileSystemMarkentry));
char *fs_label_last = last_section&&!strcmp(format_last,"yes")?gtk_entry_get_text(GTK_ENTRY(last_section->FileSystemMarkentry)):NULL;
char *fs_label = yon_char_unite(fs_label_first,fs_label_last?",":NULL,fs_label_last,NULL);
yon_config_register(part_fs_label_parameter,part_fs_label_parameter_command,fs_label);
char *fs_type_first = gtk_combo_box_get_active_id(GTK_COMBO_BOX(first_section->FileSystemTypeCombo));
char *fs_type_last = last_section&&!strcmp(format_last,"yes")?gtk_combo_box_get_active_id(GTK_COMBO_BOX(last_section->FileSystemTypeCombo)):NULL;
char *fs_type = yon_char_unite(fs_type_first,fs_type_last?",":NULL,fs_type_last,NULL);
yon_config_register(part_type_parameter,part_type_parameter_command,fs_type);
char *part_crypt_first = gtk_combo_box_get_active(first_section->EncryptionCombo)?gtk_entry_get_text(GTK_ENTRY(first_section->EncryptionEntry)):NULL;
char *part_crypt_last = last_section&&!strcmp(format_last,"yes")&&gtk_combo_box_get_active(last_section->EncryptionCombo)?gtk_entry_get_text(GTK_ENTRY(first_section->EncryptionEntry)):NULL;
char *part_crypt = NULL;
if (part_crypt_first||part_crypt_last){
part_crypt = yon_char_unite(part_crypt_first,part_crypt_last?",":NULL,part_crypt_last,NULL);
}
if (part_crypt){
yon_config_register(part_crypt_parameter,part_crypt_parameter_command,part_crypt);
} else {
yon_config_remove_by_key(part_crypt_parameter);
}
}
return 1;
}
int yon_install_advanced_save(main_window *widgets){
GtkTreeModel *model;
GtkTreeIter iter;
if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->AdvancedDeviceTree)),&model,&iter)){
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->AdvancedDeviceTree));
return 0;
}
char *device;
gtk_tree_model_get(model,&iter,0,&device,-1);
if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->AdvancedPartitionTree)),&model,&iter)){
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->AdvancedPartitionTree));
return 0;
}
yon_config_remove_by_key(part_size_parameter);
char *part;
gtk_tree_model_get(model,&iter,0,&part,-1);
yon_advanced_section_get_string(widgets->advanced_sections);
if (gtk_switch_get_active(GTK_SWITCH(widgets->AdvancedSwapSwitch))){
if (gtk_switch_get_active(GTK_SWITCH(widgets->AdvancedSwapAutoSwitch))){
yon_config_register(swap_parameter,swap_parameter_command,"auto");
} else if (gtk_switch_get_active(GTK_SWITCH(widgets->AdvancedSwapRamSwitch))){
yon_config_register(swap_parameter,swap_parameter_command,"yes");
yon_config_register(swap_size_parameter,swap_size_parameter_command,"ram");
} else {
yon_config_register(swap_parameter,swap_parameter_command,"yes");
char *swap = g_strdup_printf("%d%s",gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widgets->AdvancedSwapFixedSpin)),yon_size_get_mod(gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->AdvancedSwapFixedSizeSwitch))+1));
yon_config_register(swap_size_parameter,swap_size_parameter_command,swap);
}
}
return 1;
}

@ -0,0 +1,224 @@
#include "ubinstall-gtk.h"
int yon_keyboard_save(main_window *widgets){
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->ManualLayoutRadio))){
GtkTreeIter iter;
if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->LayoutList),&iter)){
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),LAYOUTS_CHOSEN_BUT_EMPTY_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(widgets->ManualLayoutRadio);
yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->LayoutTree));
return 0;
}
}
char *layouts_list="";
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->ManualLayoutRadio))&&gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->LayoutSensitiveCheck))){
GtkTreeModel *layouts_model=GTK_TREE_MODEL(widgets->LayoutList);
GtkTreeIter iter;
char *cur_layout=NULL;
for_iter(layouts_model,&iter){
int chosen=0;
gtk_tree_model_get(layouts_model,&iter,0,&cur_layout,3,&chosen,-1);
if (chosen)
layouts_list = yon_char_unite(layouts_list,yon_char_is_empty(layouts_list)?"":",",cur_layout,NULL);
}
}
if (yon_char_is_empty(layouts_list)&&gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->LayoutSensitiveCheck)))
yon_config_register(xkblayout_parameter,xkblayout_parameter_command,layouts_list);
else
yon_config_remove_by_key(xkblayout_parameter);
if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->KeyboardModelCombo))&&gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->KeyboardModelSensitiveCheck))){
char *model = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->KeyboardModelCombo));
if (!yon_char_is_empty(model))
yon_config_register(xkbmodel_parameter,xkbmodel_parameter_command,model);
} else{
yon_config_remove_by_key(xkbmodel_parameter);
}
if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->LayoutBindingCombo))&&gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->OptionsSensitiveCheck))){
char *options = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->LayoutBindingCombo));
if (options){};
yon_config_register(xkboptions_parameter,xkboptions_parameter_command,options);
} else {
yon_config_remove_by_key(xkboptions_parameter);
}
return 1;
}
ubinstall_keyboard_window *yon_ubinstall_keyboard_new(){
void on_additional_software_toggled();
ubinstall_keyboard_window *window = malloc(sizeof(ubinstall_keyboard_window));
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_ubinstall_keyboard);
window->MainWindow=yon_gtk_builder_get_widget(builder,"MainWindow");
window->StatusBox=yon_gtk_builder_get_widget(builder,"StatusBox");
window->headerBar=yon_gtk_builder_get_widget(builder,"headerBar");
window->CancelButton=yon_gtk_builder_get_widget(builder,"CancelButton");
window->SaveButton=yon_gtk_builder_get_widget(builder,"SaveButton");
window->LayoutsTree=yon_gtk_builder_get_widget(builder,"LayoutsTree");
window->ActiveToggle = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"ActiveToggle"));
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
return window;
}
void on_keyboard_removed(GtkWidget *, main_window *widgets){
GtkTreeModel *model;
GtkTreeIter iter, childiter;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->LayoutTree)),&model,&iter)){
gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(widgets->LayoutsFilter),&childiter,&iter);
gtk_tree_store_set(widgets->LayoutList,&childiter,3,0,-1);
}
}
void yon_language_selection_changed(GtkCellRenderer *, char *path, ubinstall_language_window *window){
GtkTreeIter iter;
int state;
if (gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(window->liststore1),&iter,path)){
gtk_tree_model_get(GTK_TREE_MODEL(window->liststore1),&iter,0,&state,-1);
gtk_list_store_set(window->liststore1,&iter,0,!state,-1);
}
}
void on_language_window_accept(GtkWidget *,dictionary *dict){
main_window *widgets= yon_dictionary_get_data(dict->first,main_window*);
ubinstall_language_window *window = yon_dictionary_get_data(dict->first->next,ubinstall_language_window*);
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->DefaultCheck))){
gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),"");
GtkTreeIter iter;
int size;
config_str lang_parsed = default_langs(&size);
char *final = "";
for_iter(widgets->LanguagesList,&iter){
char *code, *labl;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->LanguagesList),&iter,1,&labl,2,&code,-1);
if (yon_char_parsed_check_exist(lang_parsed,size,code)!=-1){
gtk_list_store_set(widgets->LanguagesList,&iter,0,1,-1);
char *tmp = yon_char_unite(final,!yon_char_is_empty(final)?";":"",labl,NULL);
if (!yon_char_is_empty(final)) free(final);
final = tmp;
} else
gtk_list_store_set(widgets->LanguagesList,&iter,0,0,-1);
}
if (!yon_char_is_empty(final)){
gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),final);
}
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->LanguagesCombo),-1);
gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter));
} else {
yon_gtk_list_store_copy_full(widgets->LanguagesList,window->liststore1);
gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter));
config_str parsed = NULL;
int size;
GtkTreeIter iter;
for_iter(GTK_TREE_MODEL(window->liststore1),&iter){
char *current;
int status;
gtk_tree_model_get(GTK_TREE_MODEL(window->liststore1),&iter,0,&status,1,&current,-1);
if (status)
yon_char_parsed_add_or_create_if_exists(parsed,&size,current);
}
if (parsed){
char *final = yon_char_parsed_to_string(parsed,size,"; ");
gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),!yon_char_is_empty(final)?final:"");
if (yon_char_is_empty(final)) {
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->LanguagesCombo),-1);
}
if (final) free(final);
yon_char_parsed_free(parsed,size);
} else
gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),"");
}
on_subwindow_close(window->MainWindow);
free(window);
}
ubinstall_language_window *yon_ubinstall_language_new(){
ubinstall_language_window *window = malloc(sizeof(ubinstall_language_window));
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_ubinstall_language);
window->liststore1=GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1"));
window->MainWindow=yon_gtk_builder_get_widget(builder,"MainWindow");
window->StatusBox=yon_gtk_builder_get_widget(builder,"StatusBox");
window->DefaultCheck=yon_gtk_builder_get_widget(builder,"DefaultCheck");
window->LanguagesTree=yon_gtk_builder_get_widget(builder,"LanguagesTree");
window->headerBar=yon_gtk_builder_get_widget(builder,"headerBar");
window->CancelButton=yon_gtk_builder_get_widget(builder,"CancelButton");
window->SaveButton=yon_gtk_builder_get_widget(builder,"SaveButton");
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->ToggleRenderer),"toggled",G_CALLBACK(yon_language_selection_changed),window);
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
return window;
}
void on_language_clicked(GtkWidget *, main_window *widgets){
ubinstall_language_window *window = yon_ubinstall_language_new();
g_object_ref(G_OBJECT(window->liststore1));
gtk_tree_view_set_model(GTK_TREE_VIEW(window->LanguagesTree),NULL);
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));
yon_gtk_window_setup(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->MainWindow),TITLE_LABEL,icon_path,"language-chooser-window");
if (yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->AvailableLanguagesEntry)))){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->DefaultCheck),1);
}
int size;
int found=0;
int statusfound=0;
config_str langs = default_langs(&size);
GtkTreeIter iter;
for_iter(widgets->LanguagesList,&iter){
char *cur;
int status;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->LanguagesList),&iter,0,&status,2,&cur,-1);
if (status){
statusfound++;
if (yon_char_parsed_check_exist(langs,size,cur)>-1)
found++;
}
}
if ((found==size)&&statusfound==size){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->DefaultCheck),1);
}
dictionary *dict=NULL;
yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets);
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_language_window_accept),dict);
gtk_widget_show(window->MainWindow);
}
void on_layout_toggle(GtkCellRendererToggle*, gchar* path, ubinstall_keyboard_window *window){
GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(window->LayoutsTree));
GtkTreeIter iter;
if (gtk_tree_model_get_iter_from_string(model,&iter,path)){
int status=0;
gtk_tree_model_get(model,&iter,3,&status,-1);
gtk_tree_store_set(GTK_TREE_STORE(model),&iter,3,!status,-1);
}
}
void on_keyboard_accept(GtkWidget *self,main_window *widgets){
gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->LayoutsFilter));
on_subwindow_close(self);
}
void on_keyboard_clicked (GtkWidget *, main_window *widgets){
ubinstall_keyboard_window *window = yon_ubinstall_keyboard_new();
yon_gtk_window_setup(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->MainWindow),KEYBOARD_TITLE_LABEL,icon_path,"keyboard-window");
gtk_tree_view_set_model(GTK_TREE_VIEW(window->LayoutsTree),GTK_TREE_MODEL(widgets->LayoutList));
g_signal_connect(G_OBJECT(window->ActiveToggle),"toggled",G_CALLBACK(on_layout_toggle),window);
g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_keyboard_accept),widgets);
gtk_widget_show(window->MainWindow);
}

@ -0,0 +1,21 @@
#include "ubinstall-gtk.h"
network_info *yon_network_info_new(){
network_info *info = new(network_info);
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_network_info);
info->MainBox = yon_gtk_builder_get_widget(builder,"MainBox");
info->TypeCombo = yon_gtk_builder_get_widget(builder,"TypeCombo");
info->ConnectionCombo = yon_gtk_builder_get_widget(builder,"ConnectionCombo");
info->EnabledSwitch = yon_gtk_builder_get_widget(builder,"EnabledSwitch");
info->RemoveButton = yon_gtk_builder_get_widget(builder,"RemoveButton");
info->AutoGetIPSwitch = yon_gtk_builder_get_widget(builder,"AutoGetIPSwitch");
info->IpAdressEntry = yon_gtk_builder_get_widget(builder,"IpAdressEntry");
info->GatewayEntry = yon_gtk_builder_get_widget(builder,"GatewayEntry");
info->MaskEntry = yon_gtk_builder_get_widget(builder,"MaskEntry");
info->DNSEntry = yon_gtk_builder_get_widget(builder,"DNSEntry");
g_object_set_data(G_OBJECT(info->RemoveButton),"network_info",info);
g_object_set_data(G_OBJECT(info->MainBox),"network_info",info);
return info;
}

@ -0,0 +1,192 @@
#include "ubinstall-gtk.h"
enum YON_PAGES yon_page_get_next(main_window *widgets, enum YON_PAGES page){
switch (page){
case YON_PAGE_WELCOME: return YON_PAGE_LICENCE; 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_OS_COMPONENTS: return YON_PAGE_INSTALLATION_BEGIN; break;
case YON_PAGE_INSTALLATION_BEGIN: return YON_PAGE_KERNEL; break;
case YON_PAGE_KERNEL: return YON_PAGE_SOFTWARE; break;
case YON_PAGE_SOFTWARE: return YON_PAGE_REGION; break;
case YON_PAGE_REGION: return YON_PAGE_KEYBOARD; break;
case YON_PAGE_KEYBOARD: return YON_PAGE_USERS; break;
case YON_PAGE_USERS: return YON_PAGE_STARTUP; break;
case YON_PAGE_STARTUP: return YON_PAGE_BOOTLOADER; break;
case YON_PAGE_BOOTLOADER: return YON_PAGE_NETWORK; break;
case YON_PAGE_NETWORK: return YON_PAGE_INSTALLATION; break;
case YON_PAGE_INSTALL_COMMON: return YON_PAGE_KERNEL; break;
case YON_PAGE_INSTALL_SEPARATE: return YON_PAGE_KERNEL; break;
case YON_PAGE_INSTALL_SAME_PARTITION: return YON_PAGE_KERNEL; break;
case YON_PAGE_INSTALL_ADVANCED: return YON_PAGE_KERNEL; break;
case YON_PAGE_INSTALL_RECOVERY: return yon_recovery_get_next(widgets); break;
case YON_PAGE_RECOVERY_GRUB_INSTALL: return YON_PAGE_INSTALLATION; break;
case YON_PAGE_RECOVERY_GRUB_UPDATE: return YON_PAGE_INSTALLATION; break;
case YON_PAGE_RECOVERY_OS_ONLY: return YON_PAGE_INSTALLATION; break;
case YON_PAGE_RECOVERY_USRDATA_ONLY: return YON_PAGE_INSTALLATION; break;
default:return YON_PAGE_WELCOME;
}
return YON_PAGE_WELCOME;
}
enum YON_PAGES yon_page_get_prev(enum YON_PAGES page){
switch (page){
case YON_PAGE_WELCOME: 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_OS_COMPONENTS: return YON_PAGE_SECTIONS; break;
case YON_PAGE_INSTALLATION_BEGIN: return YON_PAGE_SECTIONS; break;
case YON_PAGE_KERNEL: return YON_PAGE_SECTIONS; break;
case YON_PAGE_SOFTWARE: return YON_PAGE_KERNEL; break;
case YON_PAGE_REGION: return YON_PAGE_SOFTWARE; break;
case YON_PAGE_KEYBOARD: return YON_PAGE_REGION; break;
case YON_PAGE_USERS: return YON_PAGE_KEYBOARD; break;
case YON_PAGE_STARTUP: return YON_PAGE_USERS; break;
case YON_PAGE_BOOTLOADER: return YON_PAGE_STARTUP; break;
case YON_PAGE_NETWORK: return YON_PAGE_BOOTLOADER; break;
case YON_PAGE_INSTALLATION: return YON_PAGE_INSTALLATION; break;
case YON_PAGE_CONFIGURE_END: return YON_PAGE_CONFIGURE_END; break;
case YON_PAGE_INSTALL_COMMON: return YON_PAGE_SECTIONS; break;
case YON_PAGE_INSTALL_SEPARATE: return YON_PAGE_SECTIONS; break;
case YON_PAGE_INSTALL_SAME_PARTITION: return YON_PAGE_SECTIONS; break;
case YON_PAGE_INSTALL_ADVANCED: return YON_PAGE_SECTIONS; break;
case YON_PAGE_INSTALL_RECOVERY: return YON_PAGE_SECTIONS; break;
case YON_PAGE_RECOVERY_GRUB_INSTALL: return YON_PAGE_INSTALL_RECOVERY; break;
case YON_PAGE_RECOVERY_GRUB_UPDATE: return YON_PAGE_INSTALL_RECOVERY; break;
case YON_PAGE_RECOVERY_OS_ONLY: return YON_PAGE_INSTALL_RECOVERY; break;
case YON_PAGE_RECOVERY_USRDATA_ONLY: return YON_PAGE_INSTALL_RECOVERY; break;
default:return YON_PAGE_WELCOME;
}
return YON_PAGE_WELCOME;
}
enum YON_PAGES yon_page_get_current(GtkNotebook *target){
enum YON_PAGES page = gtk_notebook_get_current_page(target);
return page;
}
void yon_navigation_buttons_set_sensetiveness(main_window *widgets){
enum YON_PAGES page = yon_page_get_current(GTK_NOTEBOOK(widgets->Notebook));
switch(page){
case YON_PAGE_WELCOME:
gtk_widget_hide(widgets->BackButton);
gtk_widget_set_sensitive(widgets->NextButton,1);
break;
case YON_PAGE_LICENCE:
gtk_widget_show(widgets->BackButton);
gtk_widget_set_sensitive(widgets->BackButton,1);
gtk_widget_set_sensitive(widgets->NextButton,1);
gtk_widget_set_sensitive(widgets->CancelInstallButton,1);
break;
case YON_PAGE_INSTALLATION:
gtk_widget_set_sensitive(widgets->NextButton,0);
gtk_widget_set_sensitive(widgets->BackButton,0);
break;
case YON_PAGE_KERNEL:
gtk_widget_set_sensitive(widgets->BackButton,0);
break;
case YON_PAGE_COMPLETED:
case YON_PAGE_INSTALL_ERROR:
case YON_PAGE_CONFIGURE_SAVE:
case YON_PAGE_CONFIGURE_END:
case YON_PAGE_COMPLETION:
gtk_button_set_label(GTK_BUTTON(widgets->NextButton),RESTART_LABEL);
gtk_widget_set_sensitive(widgets->BackButton,0);
break;
default:
gtk_widget_set_sensitive(widgets->BackButton,1);
gtk_widget_set_sensitive(widgets->NextButton,1);
gtk_widget_set_sensitive(widgets->CancelInstallButton,1);
break;
}
}
int yon_page_save(main_window *widgets, enum YON_PAGES page){
switch (page){
case YON_PAGE_OS_COMPONENTS:
return yon_os_components_save(widgets);
break;
case YON_PAGE_KERNEL:
return yon_kernel_save(widgets);
break;
case YON_PAGE_SOFTWARE:
return yon_software_save(widgets);
break;
case YON_PAGE_REGION:
return yon_region_save(widgets);
break;
case YON_PAGE_KEYBOARD:
return yon_keyboard_save(widgets);
break;
case YON_PAGE_USERS:
return yon_users_save(widgets);
break;
case YON_PAGE_STARTUP:
return yon_startup_save(widgets);
break;
case YON_PAGE_BOOTLOADER:
return yon_bootloader_save(widgets);
break;
case YON_PAGE_NETWORK:
// return yon_network_save(widgets);
break;
case YON_PAGE_INSTALL_COMMON:
return yon_install_common_save(widgets);
break;
case YON_PAGE_INSTALL_SEPARATE:
return yon_install_separate_save(widgets);
break;
case YON_PAGE_INSTALL_SAME_PARTITION:
return yon_install_same_partition_save(widgets);
break;
case YON_PAGE_INSTALL_ADVANCED:
return yon_install_advanced_save(widgets);
break;
case YON_PAGE_RECOVERY_GRUB_INSTALL:
return yon_grub_install_save(widgets);
break;
case YON_PAGE_RECOVERY_GRUB_UPDATE:
return yon_grub_update_save(widgets);
break;
case YON_PAGE_RECOVERY_OS_ONLY:
return yon_install_options_save(widgets->OSDevicesTree,widgets->OSSysSectionTree,"system_only",widgets);
break;
case YON_PAGE_RECOVERY_USRDATA_ONLY:
return yon_install_options_save(widgets->UserdataDevicesTree,widgets->UserdataSysSectionTree,"data_only",widgets);
break;
default:return 1;
}
return 1;
}
void yon_page_update(main_window *widgets){
yon_navigation_buttons_set_sensetiveness(widgets);
yon_switch_page_render(widgets);
}
enum YON_PAGES yon_sections_get_next_page(main_window *widgets){
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationRadio)))
return YON_PAGE_INSTALL_COMMON;
else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationNearRadio)))
return YON_PAGE_INSTALL_SEPARATE;
else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationLinuxRadio)))
return YON_PAGE_INSTALL_SAME_PARTITION;
else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationWindowsRadio)))
return YON_PAGE_INSTALL_ADVANCED;
else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationOptionsRadio)))
return YON_PAGE_INSTALL_RECOVERY;
return YON_PAGE_SECTIONS;
}
enum YON_PAGES yon_recovery_get_next(main_window *widgets){
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->GrubInstallRadio)))
return YON_PAGE_RECOVERY_GRUB_INSTALL;
else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->GrubUpdateRadio)))
return YON_PAGE_RECOVERY_GRUB_UPDATE;
else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->OSRadio)))
return YON_PAGE_RECOVERY_OS_ONLY;
else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->UserDataOnlyRadio)))
return YON_PAGE_RECOVERY_USRDATA_ONLY;
return YON_PAGE_SECTIONS;
}

@ -0,0 +1,43 @@
#include "ubinstall-gtk.h"
int yon_region_save(main_window *widgets){
if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->RegionCombo))==-1){
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),REGION_EMPTY_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(widgets->RegionCombo);
return 0;
} else if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->ZoneCombo))==-1){
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),ZONE_EMPTY_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(widgets->ZoneCombo);
return 0;
}
char *languages = "";
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->LanguagesFilter);
char *lang_code=NULL;
for_iter(model,&iter){
gtk_tree_model_get(model,&iter,2,&lang_code,-1);
languages = yon_char_unite(languages,!yon_char_is_empty(languages)?",":"",lang_code,NULL);
}
if (yon_char_is_empty(languages)||!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->MainLanguageSensitiveCheck))){
yon_config_remove_by_key(locale_parameter);
} else {
yon_config_register(locale_parameter,locale_parameter_command,languages);
free(languages);
}
if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->LanguagesCombo))==-1||!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->LanguagesSensitiveCheck))){
yon_config_remove_by_key(lang_parameter);
} else {
char *language = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->LanguagesCombo));
yon_config_register(lang_parameter,lang_parameter_command,language);
}
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RegionSensitiveCheck))){
char *region = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->RegionCombo));
char *zone = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->ZoneCombo));
yon_debug_output("%s",region);
yon_debug_output("/%s\n\n",zone);
yon_config_register(zone_parameter,zone_parameter_command,yon_char_unite(region,"/",zone,NULL));
} else {
yon_config_remove_by_key(zone_parameter);
}
return 1;
}

@ -0,0 +1,26 @@
#include "ubinstall-gtk.h"
int 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)){
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(device_tree));
return 0;
}
if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(part_tree)),&model2,&itar)){
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(part_tree));
return 0;
}
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(cur_section) free(cur_section);
if(cur_device) free(cur_device);
return 1;
}

@ -0,0 +1,89 @@
#include "ubinstall-gtk.h"
int yon_users_save(main_window *widgets){
if (yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->UserNameEntry)))||!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->UsernameSensitiveCheck))){
yon_config_remove_by_key(user_gecos_parameter);
} else {
char *username = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->UserNameEntry));
if (username){};
yon_config_register(user_gecos_parameter,user_gecos_parameter_command,username);
}
if (yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->LoginEntry)))||!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->LoginSensitiveCheck))){
yon_config_remove_by_key(user_name_parameter);
} else {
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->UserRootOnlyCheck))){
yon_config_register(user_name_parameter,user_name_parameter_command,"root");
} else {
char *login = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->LoginEntry));
if (login){};
yon_config_register(user_name_parameter,user_name_parameter_command,login);
}
}
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->PasswordSensitiveCheck))){
if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->PasswordCombo))==1){
if (yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->PasswordEntry)))){
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(widgets->PasswordEntry);
return 0;
} else {
char *password = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->PasswordEntry));
if (password){};
yon_config_register(user_password_parameter,user_password_parameter_command,password);
}
} else {
yon_config_remove_by_key(user_password_parameter);
}
}else {
yon_config_remove_by_key(user_password_parameter);
}
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RootPasswordSensitiveCheck))){
if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->AdminPasswordCombo))==1){
if (yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->AdminPasswordEntry)))){
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(widgets->AdminPasswordEntry);
return 0;
} else {
char *root_password = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->AdminPasswordEntry));
if (root_password){};
yon_config_register(root_password_parameter,root_password_parameter_command,root_password);
}
} else {
yon_config_remove_by_key(root_password_parameter);
}
} else {
yon_config_remove_by_key(root_password_parameter);
}
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->HostnameSensitiveCheck))){
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->AutoHostnameCheck))){
yon_config_register(hostname_parameter,hostname_parameter_command,"auto");
} else {
if (!yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->HotnameEntry)))){
char *hostname = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->HotnameEntry));
if (hostname){};
yon_config_register(hostname_parameter,hostname_parameter_command,hostname);
} else {
yon_config_remove_by_key(hostname_parameter);
}
}
} else {
yon_config_remove_by_key(hostname_parameter);
}
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->AutologinSensitiveCheck))){
char *autologin = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->AutologinCheck))?"yes":"no";
yon_config_register(autologin_parameter,autologin_parameter_command,autologin);
} else {
yon_config_remove_by_key(autologin_parameter);
}
return 1;
}

File diff suppressed because it is too large Load Diff

@ -11,6 +11,7 @@
#include <sys/statvfs.h>
#include <libublsettings.h>
#include <libublsettings-gtk3.h>
#include <libublsettingsui-gtk3.h>
#ifdef WEBKIT_FOUND
#include <webkit2/webkit2.h>
#endif
@ -23,10 +24,8 @@
#define glade_path "/com/ublinux/ui/ubinstall-gtk.glade"
#define glade_path_ubinstall_keyboard "/com/ublinux/ui/ubinstall-gtk-keyboard.glade"
#define glade_path_ubinstall_language "/com/ublinux/ui/ubinstall-gtk-language.glade"
#define glade_path_network_info "/com/ublinux/ui/ubinstall-gtk-network-box.glade"
#define glade_path_log_view "/com/ublinux/ui/ubinstall-gtk-log-view.glade"
#define ui_glade_path_about "/com/ublinux/ui/ubinstall-gtk-about.glade"
#define ui_glade_path_documentation "/com/ublinux/ui/ubinstall-gtk-documentation.glade"
#define glade_path_confirmation "/com/ublinux/ui/ubinstall-gtk-warning.glade"
#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)
@ -84,6 +83,12 @@ NULL
#define part_parameter "AUTOINSTALL[part]"
#define part_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[part]"
#define modules_parameter "AUTOINSTALL[modules]"
#define modules_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[modules]"
#define modules_extra_parameter "AUTOINSTALL[modules_extra]"
#define modules_extra_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[modules_extra]"
#define user_name_parameter "AUTOINSTALL[user_name]"
#define user_name_parameter_command "ubconfig --source global --conarg get [autoinstall] AUTOINSTALL[user_name]"
#define user_gecos_parameter "AUTOINSTALL[user_gecos]"
@ -118,6 +123,16 @@ NULL
#define part_size_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[part_size]"
#define part_type_parameter "AUTOINSTALL[part_fs_type]"
#define part_type_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[part_fs_type]"
#define part_format_parameter "AUTOINSTALL[part_format]"
#define part_format_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[part_format]"
#define part_fs_label_parameter "AUTOINSTALL[part_fs_label]"
#define part_fs_label_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[part_fs_label]"
#define part_crypt_parameter "AUTOINSTALL[part_crypt]"
#define part_crypt_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[part_crypt]"
#define swap_parameter "AUTOINSTALL[swap]"
#define swap_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[swap]"
#define swap_size_parameter "AUTOINSTALL[swap_size]"
#define swap_size_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[swap_size]"
#define save_config_command(parameters) yon_char_unite("ubconfig --target system set [autoinstall] AUTOINSTALL[log]=yes ",parameters, "; nice ubinstall2 --debug autoinstall", NULL)
@ -154,57 +169,52 @@ NULL
#define default_langs(size) yon_char_parsed_new(size,"en_US.UTF-8","ru_RU.UTF-8",NULL);
typedef char* string;
__attribute__((unused)) static \
string version_application;
char *local;
extern int cur_slide;
enum YON_PAGES {
YON_PAGE_WELCOME = 0,
YON_PAGE_LICENCE,
YON_PAGE_SECTIONS,
YON_PAGE_OS_COMPONENTS,
YON_PAGE_SOFTWARE,
YON_PAGE_INSTALLATION_BEGIN,
YON_PAGE_INSTALLATION,
YON_PAGE_KERNEL,
YON_PAGE_SOFTWARE,
YON_PAGE_REGION,
YON_PAGE_KEYBOARD,
YON_PAGE_USERS,
YON_PAGE_STARTUP,
YON_PAGE_BOOTLOADER,
YON_PAGE_NETWORK,
YON_PAGE_INSTALLATION,
YON_PAGE_COMPLETION,
YON_PAGE_COMPLETED,
YON_PAGE_INSTALL_ERROR,
YON_PAGE_CONFIGURE_END,
YON_PAGE_CONFIGURE_SAVE,
YON_PAGE_INSTALL_COMMON,
YON_PAGE_INSTALL_SEPARATE,
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
YON_PAGE_INSTALL_ADVANCED,
YON_PAGE_INSTALL_RECOVERY,
YON_PAGE_RECOVERY_GRUB_INSTALL,
YON_PAGE_RECOVERY_GRUB_UPDATE,
YON_PAGE_RECOVERY_OS_ONLY,
YON_PAGE_RECOVERY_USRDATA_ONLY
};
typedef struct {
int socket_id;
int load_socket_id;
int save_socket_id;
int lock_help;
int lock_save_local;
int lock_save_global;
int lock_load_global;
int always_open_documentation;
int password_min_length;
template_config_fields
config_str launch_arguments;
int launch_size;
int save_done;
int save_configured;
int load_mode;
int install_complete;
int debug_mode;
guint slider_thread;
int install_mode;
unsigned long install_thread;
@ -222,6 +232,18 @@ typedef struct {
config_str arg_target;
} config;
extern config main_config;
typedef struct {
GtkWidget *CommonInstallationDevicesTree;
GtkWidget *GpartedCommonButton;
GtkWidget *CommonFilesystemSensitiveCheck;
GtkWidget *CommonInstallationFilesystemTypeCombo;
GtkWidget *CommonSectionSensitiveCheck;
GtkWidget *CommonInstallationSectionNameEntry;
GtkListStore *DevicesList;
} install_common_page;
typedef struct {
GtkBuilder *builder;
GtkListStore *DevicesList;
@ -392,8 +414,69 @@ typedef struct {
GtkWidget *SameFSTypeSensitiveCheck;
GtkWidget *SameLabelSensitiveCheck;
GtkWidget *KernelsTree;
GtkListStore *KernelsList;
GtkWidget *OSSoftwareTree;
GtkListStore *OSSoftwareList;
GtkWidget *StartupServicesTree;
GtkListStore *StartupList;
GtkWidget *BootloadTimerSwitch;
GtkWidget *BootloadTimerSpin;
GtkWidget *BootloadDefaultOSEntry;
GtkWidget *BootloadDefaulOSButton;
GtkWidget *BootloadNoPasswordSwitch;
GtkWidget *BootloadUserAddButton;
GtkWidget *BootloadUserRemoveButton;
GtkWidget *BootloadUserTree;
GtkListStore *BootloadUsersList;
GtkWidget *NetworkDomainSwitch;
GtkWidget *NetworkDomainNameEntry;
GtkWidget *NetworkDomainAdminEntry;
GtkWidget *DomainPasswordEntry;
GtkWidget *NetworkNTPServerSwitch;
GtkWidget *NetworkNTPCombo;
GtkWidget *NetworkNTPEntry;
GtkWidget *NetworkConnectionsBox;
GtkWidget *NetworkConnectionsAddButton;
dictionary *network_connections;
GtkWidget *AdvancedDeviceTree;
GtkWidget *AdvancedVirtualDeviceCombo;
GtkWidget *AdvancedPartitionTree;
GtkWidget *AdvancedPartitionAddBox;
GtkWidget *AdvancedAddButton;
GtkWidget *AdvancedLoadTypeSwitch;
GtkWidget *AdvancedBiosSectorSwitch;
GtkWidget *AdvancedEFISwitch;
GtkWidget *AdvancedSwapSwitch;
GtkWidget *AdvancedSwapAutoSwitch;
GtkWidget *AdvancedSwapRamSwitch;
GtkWidget *AdvancedSwapFixedSpin;
GtkWidget *AdvancedSwapFixedSwitch;
GtkWidget *AdvancedSwapFixedSizeSwitch;
dictionary *advanced_sections;
} main_window;
typedef struct {
GtkWidget *MainBox;
GtkWidget *SystemSectionToggle;
GtkWidget *UserDataSectionToggle;
GtkWidget *RemoveButton;
GtkWidget *FormatSwitch;
GtkWidget *FormatExpander;
GtkWidget *SizeSpin;
GtkWidget *SizeCombo;
GtkWidget *SectionMarkEntry;
GtkWidget *FileSystemTypeCombo;
GtkWidget *FileSystemMarkentry;
GtkWidget *EncryptionCombo;
GtkWidget *EncryptionEntry;
GtkWidget *EncryptionButton;
char *part;
} advanced_section;
typedef struct {
GtkWidget *Window;
@ -458,6 +541,19 @@ typedef struct {
GtkWidget *CancelButton;
} confirmation_window;
typedef struct {
GtkWidget *MainBox;
GtkWidget *TypeCombo;
GtkWidget *ConnectionCombo;
GtkWidget *EnabledSwitch;
GtkWidget *RemoveButton;
GtkWidget *AutoGetIPSwitch;
GtkWidget *IpAdressEntry;
GtkWidget *GatewayEntry;
GtkWidget *MaskEntry;
GtkWidget *DNSEntry;
} network_info;
void config_init();
main_window *yon_main_window_complete();
ubinstall_language_window *yon_ubinstall_language_new();
@ -467,7 +563,6 @@ ubinstall_keyboard_window *yon_ubinstall_keyboard_new();
password_window *yon_password_new();
void on_password_accept(GtkWidget *self, dictionary *dict);
char* yon_debug_output(char *pattern,char*text);
void yon_interface_update(main_window *widgets);
@ -484,8 +579,77 @@ gboolean on_install_success(main_window *widgets);
gboolean on_install_error(main_window *widgets);
confirmation_window *yon_confirmation_window_new();
void on_reboot_accepted(GtkWidget *,dictionary *dict);
// confirmation_window *yon_confirmation_window_new();
void on_reboot_accepted(main_window *widgets);
void on_keyboard_clicked (GtkWidget *, main_window *widgets);
void on_keyboard_accept(GtkWidget *self,main_window *widgets);
void on_layout_toggle(GtkCellRendererToggle*, gchar* path, ubinstall_keyboard_window *window);
void on_language_clicked(GtkWidget *, main_window *widgets);
void yon_language_selection_changed(GtkCellRenderer *, char *path, ubinstall_language_window *window);
void on_language_window_accept(GtkWidget *,dictionary *dict);
void on_keyboard_removed(GtkWidget *, main_window *widgets);
void on_exit_accepted(main_window *widgets);
void on_gparted_open();
void on_same_installation_device_changed(GtkWidget *, main_window *widgets);
void on_separate_installation_changed(GtkWidget *self, main_window *widgets);
void on_partition_changed(GtkWidget *self, main_window *widgets);
void yon_set_max_size_from_partition(GtkTreeView *table, GtkSpinButton *spin_size, GtkComboBox *size_type);
gboolean on_yon_exit(GtkWidget *,GdkEvent*, main_window *widgets);
void on_locale_changed(GtkWidget *,main_window *);
void on_region_changed(GtkComboBox *self, main_window *widgets);
void on_page_navigation_clicked(GtkWidget *self, main_window *widgets);
int yon_install_options_save(GtkWidget *device_tree, GtkWidget *part_tree,char *mode,main_window *widgets);
void on_process_log_view(GtkWidget *,main_window *widgets);
gboolean yon_read_log(void *data);
log_window *yon_log_window_new();
void on_log_closed(GtkWidget *, dictionary *dict);
void on_page_changed(GtkWidget *,GtkWidget *,int page, main_window *widgets);
gboolean yon_installation_progress_update(void *data);
void *on_config_save(void *data);
gboolean on_image_slide(void *data);
void on_region_resized(GtkWidget *,main_window *widgets);
int yon_image_resize_from_container(GtkImage *target, GdkPixbuf *pixbuf_unscaled);
void on_configuration_mode_switch(GtkWidget *self,main_window *widgets);
double yon_size_long_convert_automatic(unsigned long bytes, char *size);
void on_root_get_root(char *argline);
void on_config_custom_save(GtkWidget *, main_window *widgets);
void on_config_global_save(GtkWidget *,main_window *widgets);
void on_config_local_save(GtkWidget *,main_window *widgets);
void on_config_global_local_save(GtkWidget *,main_window *widgets);
void on_config_custom_load(GtkWidget *,main_window *);
void on_config_global_load(GtkWidget *,main_window *);
void on_config_local_load(GtkWidget *,main_window *widgets);
// void yon_save_proceed(char *path, YON_CONFIG_TYPE type);
void on_page_next_clicked(GtkWidget *, main_window *widgets);
void on_page_prev_clicked(GtkWidget *, main_window *widgets);
void yon_load_proceed(YON_CONFIG_TYPE type);
void _yon_saving_threaded(char *final_command);
void yon_password_combo_set_sensitive(GtkWidget *self, main_window *widgets);
void yon_password_set_sensitive_from_toggle(GtkWidget *self, main_window *widgets);
void on_layout_toggle_button_switch(GtkWidget *self, main_window *widgets);
enum YON_PAGES yon_page_get_next(main_window *widgets,enum YON_PAGES page);
enum YON_PAGES yon_page_get_prev(enum YON_PAGES page);
enum YON_PAGES yon_sections_get_next_page(main_window *widgets);
enum YON_PAGES yon_recovery_get_next(main_window *widgets);
enum YON_PAGES yon_page_get_current(GtkNotebook *target);
void yon_switch_page_render(main_window *widgets);
void yon_page_update(main_window *);
void yon_navigation_buttons_set_sensetiveness(main_window *widgets);
int yon_region_save(main_window *widgets);
int yon_keyboard_save(main_window *widgets);
int yon_install_common_save(main_window *widgets);
int yon_install_separate_save(main_window *widgets);
int yon_install_same_partition_save(main_window *widgets);
int yon_grub_install_save(main_window *widgets);
int yon_grub_update_save(main_window *widgets);
int yon_os_components_save(main_window *widgets);
int yon_software_save(main_window *widgets);
int yon_kernel_save(main_window *widgets);
int yon_page_save(main_window *widgets, enum YON_PAGES page);
int yon_users_save(main_window *widgets);
int yon_bootloader_save(main_window *widgets);
int yon_startup_save(main_window *widgets);
network_info *yon_network_info_new();
int yon_install_advanced_save(main_window *widgets);

@ -1,5 +1,3 @@
#define VERSION_LABEL yon_char_unite(_("Version:")," ",!yon_char_is_empty(version_application)?version_application:"","\n",NULL)
#define HELP_LABEL(rest) yon_char_unite(LocaleName,_(" version:")," ", !yon_char_is_empty(version_application)?version_application:"","\n",TITLE_LABEL,"\n",_("Usage:"), " ",LocaleName," ",_("[OPTIONS]"),"\n",_("Options:"),"\n\t--help, -h\t\t\t",_("Show this help"),"\n\t--version, -V\t\t\t",_("Show package version"),"\n\t--lock-help\t\t\t",_("Lock this help menu"),"\n\t--lock-save\t\t\t",_("Lock configuration saving"),"\n\t--lock-save-local\t\t",_("Lock local configration saving"),"\n\t--lock-save-global\t\t",_("Lock global configration saving"),"\n\t--lock-load-global\t\t",_("Lock global configration loading"),"\n\t--clear-config\t\t\t",_("Reset application settings"),"\n",!yon_char_is_empty(rest)?rest:NULL,NULL)
#define TITLE_LABEL _("UBLinux installation")
@ -107,7 +105,7 @@
#define SECTION_NAME_LABEL _("Section name:")
#define FORMAT_LABEL _("Format")
#define SUCCESS_LABEL _("You have UBLinux installed on your computer.\nYou can reboot and use your new system\nor continue working in the UBLinux Live environment.")
#define INSTALL_SUCCESS_LABEL _("You have UBLinux installed on your computer.\nYou can reboot and use your new system\nor continue working in the UBLinux Live environment.")
#define LANGUAGES_TITLE_LABEL _("Available languages in the system")
#define LAYOUTS_TITLE_LABEL _("Keyboard layout language")
@ -186,3 +184,5 @@
#define WARNING_TEXT_LABEL _("Are you sure want to exit and\ninterrupt installation process?")
#define WARNING_REBOOT_TEXT_LABEL _("Are you sure want to reboot system?")
#define DEFAULT_BOOTLOAD_MENU_ITEM_LABEL _("Default (Use last succeeded)")

@ -0,0 +1,416 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface domain="ubinstall-gtk">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubinstall-gtk.css -->
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.trash-symbolic</property>
</object>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="stock">gtk-missing-image</property>
</object>
<object class="GtkImage" id="image3">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="stock">gtk-missing-image</property>
</object>
<object class="GtkImage" id="image4">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.edit-symbolic</property>
</object>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<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">New section at</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">/dev/sdb</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="RemoveButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image1</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="UserDataSectionToggle">
<property name="label" translatable="yes">"/ublinux-data/" user data section</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image2</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="SystemSectionToggle">
<property name="label" translatable="yes">"/ublinux/" system section</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image3</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">5</property>
</packing>
</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="spacing">5</property>
<child>
<object class="GtkSwitch" id="FormatSwitch">
<property name="visible">True</property>
<property name="can-focus">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">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Format</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="GtkExpander" id="FormatExpander">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="expanded">True</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkSeparator">
<property name="visible">True</property>
<property name="can-focus">False</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" id="label1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Size:</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="GtkSpinButton" id="SizeSpin">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="SizeCombo">
<property name="visible">True</property>
<property name="can-focus">False</property>
<items>
<item id="M" translatable="yes">Mb</item>
<item id="G" translatable="yes">Gb</item>
<item id="T" translatable="yes">Tb</item>
</items>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Part label:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="SectionMarkEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">File system type:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="FileSystemTypeCombo">
<property name="visible">True</property>
<property name="can-focus">False</property>
<items>
<item translatable="yes">Default</item>
</items>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">6</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" id="label2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">File system label:</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="GtkEntry" id="FileSystemMarkentry">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label4">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Encryption:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="EncryptionCombo">
<property name="visible">True</property>
<property name="can-focus">False</property>
<items>
<item translatable="yes">Off</item>
</items>
</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="label" translatable="yes">Encryption password:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="EncryptionEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
<child>
<object class="GtkButton" id="EncryptionButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image4</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">6</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
<child type="label_item">
<placeholder/>
</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">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<style>
<class name="bggrey"/>
</style>
</object>
<object class="GtkSizeGroup">
<widgets>
<widget name="label1"/>
<widget name="label2"/>
</widgets>
</object>
<object class="GtkSizeGroup">
<widgets>
<widget name="label3"/>
<widget name="label4"/>
</widgets>
</object>
</interface>

@ -0,0 +1,300 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface domain="ubinstall-gtk">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubinstall-gtk.css -->
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.trash-symbolic</property>
</object>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<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">Connection type:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="TypeCombo">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkComboBoxText" id="ConnectionCombo">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Enabled:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkSwitch" id="EnabledSwitch">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkButton" id="RemoveButton">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image1</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">5</property>
</packing>
</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="spacing">5</property>
<child>
<object class="GtkSwitch" id="AutoGetIPSwitch">
<property name="visible">True</property>
<property name="can-focus">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">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Automatically get IP adress with DHCP</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="GtkSeparator">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</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" id="label1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">IP adress:</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="GtkEntry" id="IpAdressEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Gateway:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="GatewayEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">3</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="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Mask:</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="GtkEntry" id="MaskEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label4">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">DNS-server:</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="DNSEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<style>
<class name="bggrey"/>
</style>
</object>
<object class="GtkSizeGroup">
<widgets>
<widget name="label1"/>
<widget name="label2"/>
</widgets>
</object>
<object class="GtkSizeGroup">
<widgets>
<widget name="label3"/>
<widget name="label4"/>
</widgets>
</object>
</interface>

@ -218,3 +218,10 @@ treeview row:nth-child(even) { background-color: #ffffff; }
.menubox *{
color:@theme_base_color;
}
.bggrey{
border-radius:5px;
border-color:@theme_text_color;
border-style:solid;
border-width:0.3px;
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.15);
}

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