|
|
|
@ -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,
|
|
|
|
@ -438,10 +600,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);
|
|
|
|
|
|
|
|
if (!status){
|
|
|
|
yon_advanced_part_add_parts_for_device(device_name,widgets);
|
|
|
|
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 +622,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 +632,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 +689,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));
|
|
|
|
|
|
|
|
|
|
|
|
|