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

Reviewed-on: #273
pull/287/head
Dmitry Razumov 2 months ago
commit 6901bb5337

@ -3,6 +3,37 @@
#define toggled_icon_name "com.ublinux.libublsettingsui-gtk3.toggled-symbolic" #define toggled_icon_name "com.ublinux.libublsettingsui-gtk3.toggled-symbolic"
#define untoggled_icon_name "com.ublinux.libublsettingsui-gtk3.untoggled-symbolic" #define untoggled_icon_name "com.ublinux.libublsettingsui-gtk3.untoggled-symbolic"
void on_advanced_part_toggled(GtkWidget *self){
if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self))){
g_signal_handlers_block_by_func(G_OBJECT(self),on_advanced_part_toggled,NULL);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self),1);
g_signal_handlers_unblock_by_func(G_OBJECT(self),on_advanced_part_toggled,NULL);
}
advanced_part_widgets *select_part = g_object_get_data(G_OBJECT(self),"advanced_part_widgets");
g_signal_handlers_block_by_func(G_OBJECT(select_part->SystemSectionToggle),on_advanced_part_toggled,NULL);
g_signal_handlers_block_by_func(G_OBJECT(select_part->UserDataSectionToggle),on_advanced_part_toggled,NULL);
main_window *widgets = g_object_get_data(G_OBJECT(select_part->MainBox),"widgets");
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->AdvancedPartitionAddBox));
int size = g_list_length(list);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self == select_part->SystemSectionToggle?select_part->UserDataSectionToggle:select_part->SystemSectionToggle),!(size>1));
GList *iter;
for (iter=list;iter;iter=iter->next){
advanced_part_widgets *cur_part = g_object_get_data(G_OBJECT(iter->data),"advanced_part_widgets");
if (cur_part!=select_part){
g_signal_handlers_block_by_func(G_OBJECT(cur_part->SystemSectionToggle),on_advanced_part_toggled,NULL);
g_signal_handlers_block_by_func(G_OBJECT(cur_part->UserDataSectionToggle),on_advanced_part_toggled,NULL);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self == select_part->SystemSectionToggle ? cur_part->SystemSectionToggle : cur_part->UserDataSectionToggle),0);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self == select_part->SystemSectionToggle ? cur_part->UserDataSectionToggle : cur_part->SystemSectionToggle),1);
g_signal_handlers_unblock_by_func(G_OBJECT(cur_part->SystemSectionToggle),on_advanced_part_toggled,NULL);
g_signal_handlers_unblock_by_func(G_OBJECT(cur_part->UserDataSectionToggle),on_advanced_part_toggled,NULL);
}
}
g_signal_handlers_unblock_by_func(G_OBJECT(select_part->SystemSectionToggle),on_advanced_part_toggled,NULL);
g_signal_handlers_unblock_by_func(G_OBJECT(select_part->UserDataSectionToggle),on_advanced_part_toggled,NULL);
}
void on_advanced_part_remove_part(GtkWidget *self, main_window *widgets){ void on_advanced_part_remove_part(GtkWidget *self, main_window *widgets){
advanced_part_widgets *part = g_object_get_data(G_OBJECT(self),"advanced_part_widgets"); advanced_part_widgets *part = g_object_get_data(G_OBJECT(self),"advanced_part_widgets");
advanced_part_data *data = g_object_get_data(G_OBJECT(self),"advanced_part_data"); advanced_part_data *data = g_object_get_data(G_OBJECT(self),"advanced_part_data");
@ -109,6 +140,138 @@ void on_install_advanced_device_chosen(GtkCellRenderer *, gchar *path, main_wind
} }
} }
void yon_advanced_part_to_data(advanced_part_widgets *part, advanced_part_data *data){
const char *format = gtk_combo_box_get_active_id(GTK_COMBO_BOX(part->FormatCombo));
data->format = yon_char_new(format);
if (gtk_combo_box_get_active(GTK_COMBO_BOX(part->FormatCombo))==2){
gdouble size = gtk_spin_button_get_value(GTK_SPIN_BUTTON(part->SizeSpin));
char *sizemod = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(part->SizeCombo));
data->size = size;
data->size_letter = sizemod[0];
data->part_label = yon_char_new(gtk_entry_get_text(GTK_ENTRY(part->PartLabelEntry)));
data->encryption = yon_char_new(gtk_combo_box_get_active_id(GTK_COMBO_BOX(part->EncryptionCombo)));
data->encryption_password = yon_char_new(gtk_entry_get_text(GTK_ENTRY(part->EncryptionEntry)));
data->fs_type = yon_char_new(gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(part->FileSystemTypeCombo)));
data->fs_label = yon_char_new(gtk_entry_get_text(GTK_ENTRY(part->FileSystemLabelEntry)));
}
}
void yon_advanced_part_clean_config(){
yon_config_remove_by_key(device_parameter);
yon_config_remove_by_key(part_parameter);
yon_config_remove_by_key(part_size_parameter);
yon_config_remove_by_key(part_label_parameter);
yon_config_remove_by_key(part_fs_type_parameter);
yon_config_remove_by_key(part_fs_label_parameter);
yon_config_remove_by_key(part_crypt_parameter);
yon_config_remove_by_key(part_format_parameter);
}
void yon_advanced_part_save_part(advanced_part_data *data){
if (!config(device_parameter)) yon_config_register(device_parameter,device_parameter_command,NULL);
if (!config(part_parameter)) yon_config_register(part_parameter,part_parameter_command,NULL);
if (!config(part_size_parameter)) yon_config_register(part_size_parameter,part_size_parameter_command,NULL);
if (!config(part_label_parameter)) yon_config_register(part_label_parameter,part_label_parameter_command,NULL);
if (!config(part_fs_type_parameter)) yon_config_register(part_fs_type_parameter,part_fs_type_parameter_command,NULL);
if (!config(part_fs_label_parameter)) yon_config_register(part_fs_label_parameter,part_fs_label_parameter_command,NULL);
if (!config(part_crypt_parameter)) yon_config_register(part_crypt_parameter,part_crypt_parameter_command,NULL);
if (!config(part_format_parameter)) yon_config_register(part_format_parameter,part_format_parameter_command,NULL);
yon_config_force_append_element(device_parameter,data->device,",");
yon_config_force_append_element(part_parameter,data->partition,",");
if (data->size>0){
char *size_str = yon_char_from_long(data->size);
char *temp = yon_char_append_c(size_str,data->size_letter);
free(size_str);
yon_config_force_append_element(part_size_parameter,temp,",");
} else {
yon_config_force_append_element(part_size_parameter,"",",");
}
yon_config_force_append_element(part_label_parameter,data->part_label,",");
yon_config_force_append_element(part_fs_type_parameter,data->fs_type,",");
yon_config_force_append_element(part_fs_label_parameter,data->fs_label,",");
yon_config_force_append_element(part_crypt_parameter,data->encryption,",");
yon_config_force_append_element(part_format_parameter,data->format,",");
}
void yon_advanced_part_save(main_window *widgets){
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->AdvancedPartitionAddBox));
advanced_part_data *data1 = NULL;
if (list){
data1 = g_object_get_data(list->data,"advanced_part_data");
advanced_part_widgets *part1 = g_object_get_data(list->data,"advanced_part_widgets");
yon_advanced_part_to_data(part1,data1);
advanced_part_data *data2 = NULL;
if (list->next){
data2 = g_object_get_data(list->next->data,"advanced_part_data");
advanced_part_widgets *part2 = g_object_get_data(list->next->data,"advanced_part_widgets");
yon_advanced_part_to_data(part2,data2);
}
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(part1->SystemSectionToggle))){
yon_advanced_part_save_part(data1);
yon_advanced_part_save_part(data2);
} else {
yon_advanced_part_save_part(data2);
yon_advanced_part_save_part(data1);
}
}
}
int yon_advanced_save(main_window *widgets){
yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"custom");
yon_advanced_part_clean_config();
yon_advanced_part_save(widgets);
if (gtk_switch_get_active(GTK_SWITCH(widgets->AdvancedLoadTypeSwitch))){
char *boot = NULL;
if (gtk_switch_get_active(GTK_SWITCH(widgets->AdvancedBiosSectorSwitch))){
char *temp = yon_char_append_element(boot,"bios","+");
if(!yon_char_is_empty(boot)) free(boot);
boot = temp;
}
if (gtk_switch_get_active(GTK_SWITCH(widgets->AdvancedEFISwitch))){
char *temp = yon_char_append_element(boot,"efi","+");
if(!yon_char_is_empty(boot)) free(boot);
boot = temp;
}
if (!yon_char_is_empty(boot)){
yon_config_register(boot_parameter,boot_parameter_command,boot);
} else {
yon_config_remove_by_key(boot_parameter);
}
} else {
yon_config_remove_by_key(boot_parameter);
}
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_parameter_command,"ram");
} else if (gtk_switch_get_active(GTK_SWITCH(widgets->AdvancedSwapFixedSwitch))){
yon_config_register(swap_parameter,swap_parameter_command,"yes");
long swap_size = gtk_spin_button_get_value(GTK_SPIN_BUTTON(widgets->AdvancedSwapFixedSpin));
int size_letter = gtk_switch_get_active(GTK_SWITCH(widgets->AdvancedSwapFixedSizeSwitch));
char *swap_str = yon_char_from_long(swap_size);
char *size_final = yon_char_unite(swap_str,size_letter?"G":"M",NULL);
yon_config_register(swap_size_parameter,swap_parameter_command,size_final);
} else {
yon_config_remove_by_key(swap_parameter);
yon_config_remove_by_key(swap_size_parameter);
}
}
yon_debug_output("%s\n",yon_config_get_all_info());
return 1;
}
int yon_advanced_part_check_count(main_window *widgets){ int yon_advanced_part_check_count(main_window *widgets){
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->AdvancedPartitionAddBox)); GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->AdvancedPartitionAddBox));
int len = g_list_length(list); int len = g_list_length(list);
@ -185,6 +348,9 @@ void on_advanced_virtual_device_changed(GtkWidget *, main_window *widgets){
data->part_source = PART_SOURCE_VIRTUAL; data->part_source = PART_SOURCE_VIRTUAL;
data->device = yon_char_new(device); data->device = yon_char_new(device);
advanced_part_widgets *part = yon_advanced_part_create(data); advanced_part_widgets *part = yon_advanced_part_create(data);
g_object_set_data(G_OBJECT(part->SystemSectionToggle),"advanced_part_widgets",part);
g_object_set_data(G_OBJECT(part->UserDataSectionToggle),"advanced_part_widgets",part);
g_object_set_data(G_OBJECT(part->MainBox),"widgets",widgets);
gtk_box_pack_start(GTK_BOX(widgets->AdvancedPartitionAddBox),part->MainBox,0,0,0); gtk_box_pack_start(GTK_BOX(widgets->AdvancedPartitionAddBox),part->MainBox,0,0,0);
g_signal_connect(G_OBJECT(part->RemoveButton),"clicked",G_CALLBACK(on_advanced_part_remove_virtual),widgets); g_signal_connect(G_OBJECT(part->RemoveButton),"clicked",G_CALLBACK(on_advanced_part_remove_virtual),widgets);
yon_advanced_part_update_from_data(part, data); yon_advanced_part_update_from_data(part, data);
@ -205,23 +371,15 @@ void on_advanced_virtual_device_changed(GtkWidget *, main_window *widgets){
} }
} }
yon_char_parsed_free(vfs_file,size); yon_char_parsed_free(vfs_file,size);
// yon_advanced_update(widgets);
} }
void yon_update_part_sections(main_window *widgets){ void yon_update_part_sections(main_window *widgets){
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->AdvancedPartitionAddBox)); GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->AdvancedPartitionAddBox));
int parts_size = g_list_length(list);
if (list){ if (list){
advanced_part_widgets *part = g_object_get_data(G_OBJECT(list->data),"advanced_part_widgets"); advanced_part_widgets *part = g_object_get_data(G_OBJECT(list->data),"advanced_part_widgets");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(part->SystemSectionToggle),1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(part->SystemSectionToggle),1);
if (parts_size==2){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(part->UserDataSectionToggle),0);
} else {
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(part->UserDataSectionToggle),1);
}
if (list->next){ if (list->next){
advanced_part_widgets *part = g_object_get_data(G_OBJECT(list->next->data),"advanced_part_widgets"); advanced_part_widgets *part = g_object_get_data(G_OBJECT(list->next->data),"advanced_part_widgets");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(part->SystemSectionToggle),0);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(part->UserDataSectionToggle),1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(part->UserDataSectionToggle),1);
} }
@ -315,8 +473,6 @@ void yon_advanced_part_update_from_data(advanced_part_widgets *part, advanced_pa
} }
gtk_label_set_text(GTK_LABEL(part->SectionLabel),source_string); gtk_label_set_text(GTK_LABEL(part->SectionLabel),source_string);
//toggle buttons
// format // format
int format = 0; int format = 0;
if (yon_char_is_empty(data->format)) return; if (yon_char_is_empty(data->format)) return;
@ -353,6 +509,9 @@ void yon_advanced_part_create_for_device(GtkTreeIter *iter, main_window *widgets
data->device = target; data->device = target;
advanced_part_widgets *part = yon_advanced_part_create(data); advanced_part_widgets *part = yon_advanced_part_create(data);
g_signal_connect(G_OBJECT(part->RemoveButton),"clicked",G_CALLBACK(on_advanced_part_remove_device),widgets); g_signal_connect(G_OBJECT(part->RemoveButton),"clicked",G_CALLBACK(on_advanced_part_remove_device),widgets);
g_object_set_data(G_OBJECT(part->SystemSectionToggle),"advanced_part_widgets",part);
g_object_set_data(G_OBJECT(part->UserDataSectionToggle),"advanced_part_widgets",part);
g_object_set_data(G_OBJECT(part->MainBox),"widgets",widgets);
gtk_box_pack_start(GTK_BOX(widgets->AdvancedPartitionAddBox),part->MainBox,0,0,0); gtk_box_pack_start(GTK_BOX(widgets->AdvancedPartitionAddBox),part->MainBox,0,0,0);
yon_advanced_part_update_from_data(part,data); yon_advanced_part_update_from_data(part,data);
yon_update_part_sections(widgets); yon_update_part_sections(widgets);
@ -367,6 +526,9 @@ void yon_advanced_part_create_for_part(GtkTreeIter *iter, main_window *widgets){
data->partition = target; data->partition = target;
advanced_part_widgets *part = yon_advanced_part_create(data); advanced_part_widgets *part = yon_advanced_part_create(data);
g_signal_connect(G_OBJECT(part->RemoveButton),"clicked",G_CALLBACK(on_advanced_part_remove_part),widgets); g_signal_connect(G_OBJECT(part->RemoveButton),"clicked",G_CALLBACK(on_advanced_part_remove_part),widgets);
g_object_set_data(G_OBJECT(part->SystemSectionToggle),"advanced_part_widgets",part);
g_object_set_data(G_OBJECT(part->UserDataSectionToggle),"advanced_part_widgets",part);
g_object_set_data(G_OBJECT(part->MainBox),"widgets",widgets);
gtk_box_pack_start(GTK_BOX(widgets->AdvancedPartitionAddBox),part->MainBox,0,0,0); gtk_box_pack_start(GTK_BOX(widgets->AdvancedPartitionAddBox),part->MainBox,0,0,0);
yon_advanced_part_update_from_data(part,data); yon_advanced_part_update_from_data(part,data);
yon_update_part_sections(widgets); yon_update_part_sections(widgets);
@ -389,7 +551,7 @@ void yon_advanced_part_add_parts_for_device(const char *device_name, main_window
free_space = capacity-atol(parsed[8]); free_space = capacity-atol(parsed[8]);
} }
char *free_space_string = free_space ? yon_size_long_convert_automatic_to_string(free_space) : yon_char_new(""); char *free_space_string = free_space ? yon_size_long_convert_automatic_to_string(free_space) : yon_char_new("");
if (!strcmp(parsed[1],"part")&&strcmp(parsed[1],"free")){ if (!strcmp(parsed[1],"part")){
gtk_list_store_append(widgets->PartitionsList,&iter); gtk_list_store_append(widgets->PartitionsList,&iter);
gtk_list_store_set(widgets->PartitionsList,&iter, gtk_list_store_set(widgets->PartitionsList,&iter,
0,yon_char_return_if_exist(parsed[2],""), 1,capacity_string, 0,yon_char_return_if_exist(parsed[2],""), 1,capacity_string,
@ -404,6 +566,27 @@ void yon_advanced_part_add_parts_for_device(const char *device_name, main_window
} }
} }
void yon_advanced_part_remove_for_part(const char *part_name, main_window *widgets){
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->AdvancedPartitionAddBox));
GList *iter;
for (iter=list;iter;iter=iter->next){
advanced_part_data *data = g_object_get_data(G_OBJECT(iter->data),"advanced_part_data");
if (!yon_char_is_empty(data->partition)){
if (!strcmp(data->partition,part_name)){
advanced_part_widgets *part = g_object_get_data(G_OBJECT(iter->data),"advanced_part_widgets");
on_advanced_part_remove_part(part->RemoveButton,widgets);
}
} else if (!yon_char_is_empty(data->device)){
if (!strcmp(data->device,part_name)){
advanced_part_widgets *part = g_object_get_data(G_OBJECT(iter->data),"advanced_part_widgets");
on_advanced_part_remove_device(part->RemoveButton,widgets);
}
}
}
g_list_free(list);
}
void yon_advanced_part_remove_parts_for_device(const char *device_name, main_window *widgets){ void yon_advanced_part_remove_parts_for_device(const char *device_name, main_window *widgets){
GtkTreeIter iter; GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->PartitionsList); GtkTreeModel *model = GTK_TREE_MODEL(widgets->PartitionsList);
@ -412,6 +595,7 @@ void yon_advanced_part_remove_parts_for_device(const char *device_name, main_win
gtk_tree_model_get(model,&iter,0,&name,10,&target,-1); gtk_tree_model_get(model,&iter,0,&name,10,&target,-1);
printf("%s\n",name); printf("%s\n",name);
if (strstr(device_name,target)){ if (strstr(device_name,target)){
yon_advanced_part_remove_for_part(name,widgets);
gtk_list_store_remove(widgets->PartitionsList,&iter); gtk_list_store_remove(widgets->PartitionsList,&iter);
if (!gtk_tree_model_get_iter_first(model,&iter)) break; if (!gtk_tree_model_get_iter_first(model,&iter)) break;
} }
@ -420,9 +604,11 @@ void yon_advanced_part_remove_parts_for_device(const char *device_name, main_win
char *target, *name; char *target, *name;
gtk_tree_model_get(model,&iter,0,&name,10,&target,-1); gtk_tree_model_get(model,&iter,0,&name,10,&target,-1);
if (strstr(device_name,target)){ if (strstr(device_name,target)){
yon_advanced_part_remove_for_part(name,widgets);
gtk_list_store_remove(widgets->PartitionsList,&iter); gtk_list_store_remove(widgets->PartitionsList,&iter);
} }
} }
yon_advanced_part_remove_for_part(device_name,widgets);
} }
void on_advanced_part_create(GtkWidget *, main_window *widgets){ void on_advanced_part_create(GtkWidget *, main_window *widgets){
@ -438,10 +624,16 @@ int yon_advanced_part_select_for_data(advanced_part_data *data, main_window *wid
GtkTreeModel *device_model = GTK_TREE_MODEL(widgets->DevicesList); GtkTreeModel *device_model = GTK_TREE_MODEL(widgets->DevicesList);
for_iter(device_model, &device_iter){ for_iter(device_model, &device_iter){
char *device_name; char *device_name;
gtk_tree_model_get(device_model,&device_iter,0,&device_name,-1); int status;
if (!yon_char_is_empty(data->device)&&!strcmp(device_name,data->device)){ gtk_tree_model_get(device_model,&device_iter,0,&device_name,5,&status,-1);
if ((!yon_char_is_empty(data->device)&&!strcmp(device_name,data->device))||(!yon_char_is_empty(data->partition)&&strstr(data->partition,device_name))){
gtk_list_store_set(widgets->DevicesList,&device_iter, 5,1,-1); gtk_list_store_set(widgets->DevicesList,&device_iter, 5,1,-1);
yon_advanced_part_add_parts_for_device(device_name,widgets); if (!status){
yon_advanced_part_add_parts_for_device(device_name,widgets);
}
if (yon_char_is_empty(data->partition)){ if (yon_char_is_empty(data->partition)){
yon_advanced_part_create_for_device(&device_iter,widgets); yon_advanced_part_create_for_device(&device_iter,widgets);
} }
@ -454,7 +646,8 @@ int yon_advanced_part_select_for_data(advanced_part_data *data, main_window *wid
char *part_name; char *part_name;
gtk_tree_model_get(part_model,&part_iter,0,&part_name,-1); gtk_tree_model_get(part_model,&part_iter,0,&part_name,-1);
if (!strcmp(part_name,data->partition)){ if (!strcmp(part_name,data->partition)){
gtk_list_store_set(GTK_LIST_STORE(widgets->PartitionsList),&part_iter,7,1,-1); char *path = gtk_tree_model_get_string_from_iter(GTK_TREE_MODEL(widgets->PartitionsList),&part_iter);
g_signal_emit_by_name(widgets->AdvancedPartChosenCell,"toggled",path,widgets,NULL);
} }
} }
@ -463,6 +656,13 @@ int yon_advanced_part_select_for_data(advanced_part_data *data, main_window *wid
} }
void yon_advanced_init(main_window *widgets){ void yon_advanced_init(main_window *widgets){
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->AdvancedPartitionAddBox));
GList *iter;
for (iter=list;iter;iter=iter->next){
advanced_part_widgets *part = g_object_get_data(G_OBJECT(iter->data),"advanced_part_widgets");
on_advanced_part_remove_part(part->RemoveButton,widgets);
}
gtk_list_store_clear(widgets->PartitionsList);
yon_devices_setup(widgets); yon_devices_setup(widgets);
g_signal_handlers_block_by_func(G_OBJECT(widgets->AdvancedVirtualDeviceCombo),G_CALLBACK(on_advanced_virtual_device_changed),widgets); g_signal_handlers_block_by_func(G_OBJECT(widgets->AdvancedVirtualDeviceCombo),G_CALLBACK(on_advanced_virtual_device_changed),widgets);
gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->AdvancedVirtualDeviceCombo)); gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->AdvancedVirtualDeviceCombo));
@ -513,15 +713,17 @@ advanced_part_widgets *yon_advanced_part_create(advanced_part_data *part_data){
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(part->SizeCombo),"T",TB_LABEL); gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(part->SizeCombo),"T",TB_LABEL);
gtk_combo_box_set_active(GTK_COMBO_BOX(part->SizeCombo),0); gtk_combo_box_set_active(GTK_COMBO_BOX(part->SizeCombo),0);
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(part->FormatCombo),DEFAULT_LABEL); gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(part->FormatCombo),NULL,DEFAULT_LABEL);
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(part->FormatCombo),DO_NOT_FORMAT_LABEL); gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(part->FormatCombo),"no",DO_NOT_FORMAT_LABEL);
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(part->FormatCombo),FORMAT_LABEL); gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(part->FormatCombo),"yes",FORMAT_LABEL);
gtk_combo_box_set_active(GTK_COMBO_BOX(part->FormatCombo),0); gtk_combo_box_set_active(GTK_COMBO_BOX(part->FormatCombo),0);
g_signal_connect(G_OBJECT(part->EncryptionButton),"clicked",G_CALLBACK(on_advanced_password_clicked),part); g_signal_connect(G_OBJECT(part->EncryptionButton),"clicked",G_CALLBACK(on_advanced_password_clicked),part);
g_signal_connect(G_OBJECT(part->EncryptionCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),part->EncryptionButton); g_signal_connect(G_OBJECT(part->EncryptionCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),part->EncryptionButton);
g_signal_connect(G_OBJECT(part->EncryptionCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),part->EncryptionEntry); g_signal_connect(G_OBJECT(part->EncryptionCombo),"changed",G_CALLBACK(yon_gtk_widget_set_sensitive_from_combo_box),part->EncryptionEntry);
g_signal_connect(G_OBJECT(part->FormatCombo),"changed",G_CALLBACK(on_format_changed),part); g_signal_connect(G_OBJECT(part->FormatCombo),"changed",G_CALLBACK(on_format_changed),part);
g_signal_connect(G_OBJECT(part->SystemSectionToggle),"toggled",G_CALLBACK(on_advanced_part_toggled),NULL);
g_signal_connect(G_OBJECT(part->UserDataSectionToggle),"toggled",G_CALLBACK(on_advanced_part_toggled),NULL);
yon_fs_type_setup(GTK_COMBO_BOX_TEXT(part->FileSystemTypeCombo)); yon_fs_type_setup(GTK_COMBO_BOX_TEXT(part->FileSystemTypeCombo));

@ -281,7 +281,7 @@ int yon_page_save(main_window *widgets, enum YON_PAGES page){
return yon_install_same_partition_save(widgets); return yon_install_same_partition_save(widgets);
break; break;
case YON_PAGE_INSTALL_ADVANCED: case YON_PAGE_INSTALL_ADVANCED:
// return yon_advanced_save(widgets); return yon_advanced_save(widgets);
break; break;
case YON_PAGE_RECOVERY_GRUB_INSTALL: case YON_PAGE_RECOVERY_GRUB_INSTALL:
return yon_grub_install_save(widgets); return yon_grub_install_save(widgets);

@ -1094,7 +1094,7 @@ typedef struct
char *format; char *format;
gulong full_part_size; gulong full_part_size;
unsigned long size; unsigned long size;
// char size_letter; char size_letter;
char *part_label; char *part_label;
char *fs_type; char *fs_type;
char *fs_label; char *fs_label;
@ -1401,7 +1401,7 @@ gboolean yon_spinner_switch_off(GtkSpinner *target);
void yon_fs_type_setup(GtkComboBoxText *target); void yon_fs_type_setup(GtkComboBoxText *target);
// void yon_advanced_set_max_size_from_partition(advanced_part_widgets *part, main_window *widgets); // void yon_advanced_set_max_size_from_partition(advanced_part_widgets *part, main_window *widgets);
// void on_advanced_size_changed(GtkWidget *self, main_window *widgets); // void on_advanced_size_changed(GtkWidget *self, main_window *widgets);
// int yon_advanced_save(main_window *widgets); int yon_advanced_save(main_window *widgets);
// void yon_advanced_part_parameter_changed(GtkWidget *self, advanced_part_widgets *part); // void yon_advanced_part_parameter_changed(GtkWidget *self, advanced_part_widgets *part);
// void yon_advanced_section_update(main_window *widgets); // void yon_advanced_section_update(main_window *widgets);
// void yon_advanced_section_update_section(advanced_part_widgets *part, GtkWidget *cur_toggle, main_window *widgets); // void yon_advanced_section_update_section(advanced_part_widgets *part, GtkWidget *cur_toggle, main_window *widgets);
@ -1551,3 +1551,9 @@ void yon_advanced_part_data_unref(advanced_part_data *data);
void on_advanced_part_content_changed(GtkWidget *, GtkWidget *, main_window *widgets); void on_advanced_part_content_changed(GtkWidget *, GtkWidget *, main_window *widgets);
gboolean on_keyboard_search_func(GtkTreeModel *model, gint ,const char *key, GtkTreeIter *iter, main_window *); gboolean on_keyboard_search_func(GtkTreeModel *model, gint ,const char *key, GtkTreeIter *iter, main_window *);
void yon_update_part_sections(main_window *widgets); void yon_update_part_sections(main_window *widgets);
void on_advanced_part_toggled(GtkWidget *self);
void yon_advanced_part_save(main_window *widgets);
void yon_advanced_part_clean_config();
void yon_advanced_part_to_data(advanced_part_widgets *part, advanced_part_data *data);
void yon_advanced_part_save_part(advanced_part_data *data);
void yon_advanced_part_remove_for_part(const char *part_name, main_window *widgets);
Loading…
Cancel
Save