Исправил баг с удалением

pull/2/head
Igor Belitskiy 2 years ago
parent 48c4106062
commit 39a03cc26a

@ -438,28 +438,50 @@ void tree_view_del_line() {
if(gtk_tree_selection_get_selected(selection, &model, &iter)) {
char* str_iter = gtk_tree_model_get_string_from_iter(model, &iter);
index = atoi(str_iter);
gtk_list_store_clear(main_config.list);
yon_char_parsed_shrink(main_config.type_quota, &main_config.size_tree_view,index);
printf("%d\n",main_config.size_tree_view);
main_config.type_quota = yon_char_parsed_shrink(main_config.type_quota, &main_config.size_tree_view,index);
main_config.size_tree_view++;
yon_char_parsed_shrink(main_config.quota_volume, &main_config.size_tree_view,index);
printf("%d\n",main_config.size_tree_view);
main_config.quota_volume = yon_char_parsed_shrink(main_config.quota_volume, &main_config.size_tree_view,index);
main_config.size_tree_view++;
yon_char_parsed_shrink(main_config.soft_raw_limit, &main_config.size_tree_view,index);
main_config.soft_raw_limit = yon_char_parsed_shrink(main_config.soft_raw_limit, &main_config.size_tree_view,index);
main_config.size_tree_view++;
yon_char_parsed_shrink(main_config.hard_raw_limit, &main_config.size_tree_view,index);
main_config.hard_raw_limit = yon_char_parsed_shrink(main_config.hard_raw_limit, &main_config.size_tree_view,index);
main_config.size_tree_view++;
yon_char_parsed_shrink(main_config.swap, &main_config.size_tree_view,index);
main_config.swap = yon_char_parsed_shrink(main_config.swap, &main_config.size_tree_view,index);
main_config.size_tree_view++;
yon_char_parsed_shrink(main_config.cpu_limit, &main_config.size_tree_view,index);
main_config.cpu_limit = yon_char_parsed_shrink(main_config.cpu_limit, &main_config.size_tree_view,index);
main_config.size_tree_view++;
yon_char_parsed_shrink(main_config.i_o_limit_read, &main_config.size_tree_view,index);
main_config.i_o_limit_read = yon_char_parsed_shrink(main_config.i_o_limit_read, &main_config.size_tree_view,index);
main_config.size_tree_view++;
yon_char_parsed_shrink(main_config.i_o_limit_write, &main_config.size_tree_view,index);
main_config.i_o_limit_write = yon_char_parsed_shrink(main_config.i_o_limit_write, &main_config.size_tree_view,index);
g_object_ref(main_config.list);
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->treeViewMain), NULL);
gtk_list_store_clear(main_config.list);
main_fill_tree_view_after_remove();
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->treeViewMain), model);
}
else {
}
}
void main_fill_tree_view_after_remove() {
printf("%d\n",main_config.size_tree_view);
for (int index= 0; index < main_config.size_tree_view; index++) {
GtkTreeIter iter;
gtk_list_store_append(main_config.list,&iter);
gtk_list_store_set(main_config.list,&iter,0,main_config.type_quota[index],
1,main_config.quota_volume[index],
2,main_config.soft_raw_limit[index],
3,main_config.hard_raw_limit[index],
4,main_config.swap[index],
5,main_config.cpu_limit[index],
6,main_config.i_o_limit_read[index],
7,main_config.i_o_limit_write[index],-1);
}
}
void main_localization(main_window *widgets) {
/* Localisation | Локализация */
gtk_label_set_text(GTK_LABEL(widgets->HatLabel),TITLE_LABEL);

@ -155,4 +155,5 @@ int tree_view_edit();
void main_add_btn_save();
void wrapper_add_show(GtkWidget *self);
void main_edit_btn_save();
void tree_view_del_line();
void tree_view_del_line();
void main_fill_tree_view_after_remove();

@ -560,16 +560,20 @@ char **yon_char_parse(char *parameters, int *size, char *divider){
char **yon_char_parsed_shrink(char **char_string, int *size, int item_to_delete){
char **new_char_parsed=NULL;
new_char_parsed=malloc(sizeof(char*)*(*size)-2);
int sz=0;
for (int i=0;i<*size-2;i++){
if (i!=item_to_delete){
new_char_parsed=malloc(sizeof(char*)*((*size)-1));
int flag = 0;
for (int i=0;i < (*size);i++){
if (i==item_to_delete) {
flag = 1;
}
if (flag == 0) {
new_char_parsed[i]=yon_char_new(char_string[i]);
sz++;
}
else if (flag == 1 && i!=item_to_delete) {
new_char_parsed[i-1]=yon_char_new(char_string[i]);
}
}
*size=sz;
(*size)=(*size)-1;
return new_char_parsed;
}

Loading…
Cancel
Save