You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
220 lines
13 KiB
220 lines
13 KiB
#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")&>k_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;
|
|
} |