Fixed added partitions removing with device toggling

pull/273/head
parent ba6924d91a
commit 63e3bcc6bd

@ -566,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);
@ -574,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;
} }
@ -582,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){

@ -1555,4 +1555,5 @@ void on_advanced_part_toggled(GtkWidget *self);
void yon_advanced_part_save(main_window *widgets); void yon_advanced_part_save(main_window *widgets);
void yon_advanced_part_clean_config(); void yon_advanced_part_clean_config();
void yon_advanced_part_to_data(advanced_part_widgets *part, advanced_part_data *data); 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_save_part(advanced_part_data *data);
void yon_advanced_part_remove_for_part(const char *part_name, main_window *widgets);
Loading…
Cancel
Save