diff --git a/source/ubinstall-gtk-advanced.c b/source/ubinstall-gtk-advanced.c index 3d3f274..a563377 100644 --- a/source/ubinstall-gtk-advanced.c +++ b/source/ubinstall-gtk-advanced.c @@ -35,12 +35,7 @@ void on_advanced_part_remove_device(GtkWidget *self, main_window *widgets){ } void on_advanced_part_remove_virtual(GtkWidget *, main_window *widgets){ - // advanced_part_widgets *part = g_object_get_data(G_OBJECT(self),"advanced_part_widgets"); - // g_signal_handlers_block_by_func(G_OBJECT(widgets->AdvancedVirtualDeviceCombo),G_CALLBACK(on_advanced_virtual_device_changed),widgets); gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->AdvancedVirtualDeviceCombo),0); - // gtk_widget_destroy(part->MainBox); - // g_signal_handlers_unblock_by_func(G_OBJECT(widgets->AdvancedVirtualDeviceCombo),G_CALLBACK(on_advanced_virtual_device_changed),widgets); - // free(part); } void on_format_changed(GtkWidget *self, advanced_part_widgets *part){ @@ -183,6 +178,7 @@ void on_advanced_virtual_device_changed(GtkWidget *, main_window *widgets){ free(data->device); data->device = yon_char_new(device); yon_advanced_part_update_from_data(part, data); + yon_update_part_sections(widgets); } else { if (yon_advanced_part_check_count(widgets)){ advanced_part_data *data = yon_advanced_part_data_new(); @@ -192,6 +188,7 @@ void on_advanced_virtual_device_changed(GtkWidget *, main_window *widgets){ 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); yon_advanced_part_update_from_data(part, data); + yon_update_part_sections(widgets); } else { gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->AdvancedVirtualDeviceCombo),0); @@ -211,6 +208,27 @@ void on_advanced_virtual_device_changed(GtkWidget *, main_window *widgets){ // yon_advanced_update(widgets); } +void yon_update_part_sections(main_window *widgets){ + GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->AdvancedPartitionAddBox)); + int parts_size = g_list_length(list); + if (list){ + 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); + 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){ + 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); + + } + g_list_free(list); + } +} + int yon_advanced_part_get_size(advanced_part_widgets *part, main_window *widgets){ GList *list = NULL; if (widgets){ @@ -298,20 +316,6 @@ void yon_advanced_part_update_from_data(advanced_part_widgets *part, advanced_pa gtk_label_set_text(GTK_LABEL(part->SectionLabel),source_string); //toggle buttons - int pos = yon_advanced_part_get_pos(part,NULL); - int size = yon_advanced_part_get_size(part,NULL); - if (size == 1){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(part->SystemSectionToggle),1); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(part->UserDataSectionToggle),1); - } else if (pos == 0){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(part->SystemSectionToggle),1); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(part->UserDataSectionToggle),0); - } else if (pos == 1){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(part->SystemSectionToggle),0); - 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); - } // format int format = 0; @@ -351,6 +355,7 @@ void yon_advanced_part_create_for_device(GtkTreeIter *iter, main_window *widgets g_signal_connect(G_OBJECT(part->RemoveButton),"clicked",G_CALLBACK(on_advanced_part_remove_device),widgets); gtk_box_pack_start(GTK_BOX(widgets->AdvancedPartitionAddBox),part->MainBox,0,0,0); yon_advanced_part_update_from_data(part,data); + yon_update_part_sections(widgets); } } @@ -364,6 +369,7 @@ void yon_advanced_part_create_for_part(GtkTreeIter *iter, main_window *widgets){ g_signal_connect(G_OBJECT(part->RemoveButton),"clicked",G_CALLBACK(on_advanced_part_remove_part),widgets); gtk_box_pack_start(GTK_BOX(widgets->AdvancedPartitionAddBox),part->MainBox,0,0,0); yon_advanced_part_update_from_data(part,data); + yon_update_part_sections(widgets); } } @@ -392,8 +398,6 @@ void yon_advanced_part_add_parts_for_device(const char *device_name, main_window 6,free_space, 8,1, 9,yon_char_return_if_exist(parsed[7],""), 10,yon_char_return_if_exist(parsed[0],""), 11,yon_char_return_if_exist(parsed[10],""),-1); - // } else { - // gtk_list_store_set(widgets->PartitionsList,&iter, ); } } diff --git a/source/ubinstall-gtk.h b/source/ubinstall-gtk.h index 0bff66e..2a9757d 100755 --- a/source/ubinstall-gtk.h +++ b/source/ubinstall-gtk.h @@ -264,9 +264,9 @@ layout && /description:/ {\ #define get_localisation_command "ubconfig -ea --source global get [autoinstall] AUTOINSTALL[installer_locale] -- get [autoinstall] AUTOINSTALL['ubconfig set [locale] LANG'] -- get [locale] LANG" -#define save_config_command(parameters) yon_char_unite("ubconfig --target system set [autoinstall] AUTOINSTALL[log]=yes ", parameters, "; nice ubinstall --debug autoinstall", NULL) +#define save_config_command(parameters) yon_char_unite("ubconfig --target system set [autoinstall] AUTOINSTALL[log]=yes ", parameters, "; nice ubinstall autoinstall --noautoconfig --noinstall_extra", NULL) -#define set_user_config_command(parameters) yon_char_unite("ubconfig --target system set [autoinstall] ", parameters, ";nice ubinstall autoconfig", NULL) +#define set_user_config_command(parameters) yon_char_unite("ubconfig --target system set [autoinstall] ", parameters, ";nice ubinstall autoconfig install_extra", NULL) #define save_additional_config_command(parameters) yon_char_unite("ubconfig --target system set [autoinstall] ", parameters, NULL) #define get_default_password_command "ubconfig --raw --conarg --source default get [users] NOSECUREROOTPASSWD" @@ -1549,4 +1549,5 @@ int yon_advanced_part_get_size(advanced_part_widgets *part, main_window *widgets void yon_advanced_part_update_from_data(advanced_part_widgets *part, advanced_part_data *data); void yon_advanced_part_data_unref(advanced_part_data *data); 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 *); \ No newline at end of file +gboolean on_keyboard_search_func(GtkTreeModel *model, gint ,const char *key, GtkTreeIter *iter, main_window *); +void yon_update_part_sections(main_window *widgets); \ No newline at end of file