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

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)) { if(gtk_tree_selection_get_selected(selection, &model, &iter)) {
char* str_iter = gtk_tree_model_get_string_from_iter(model, &iter); char* str_iter = gtk_tree_model_get_string_from_iter(model, &iter);
index = atoi(str_iter); index = atoi(str_iter);
gtk_list_store_clear(main_config.list); printf("%d\n",main_config.size_tree_view);
yon_char_parsed_shrink(main_config.type_quota, &main_config.size_tree_view,index); main_config.type_quota = yon_char_parsed_shrink(main_config.type_quota, &main_config.size_tree_view,index);
main_config.size_tree_view++; 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++; 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++; 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++; 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++; 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++; 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++; 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 { 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) { void main_localization(main_window *widgets) {
/* Localisation | Локализация */ /* Localisation | Локализация */
gtk_label_set_text(GTK_LABEL(widgets->HatLabel),TITLE_LABEL); gtk_label_set_text(GTK_LABEL(widgets->HatLabel),TITLE_LABEL);

@ -156,3 +156,4 @@ void main_add_btn_save();
void wrapper_add_show(GtkWidget *self); void wrapper_add_show(GtkWidget *self);
void main_edit_btn_save(); 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 **yon_char_parsed_shrink(char **char_string, int *size, int item_to_delete){
char **new_char_parsed=NULL; char **new_char_parsed=NULL;
new_char_parsed=malloc(sizeof(char*)*(*size)-2); new_char_parsed=malloc(sizeof(char*)*((*size)-1));
int sz=0; int flag = 0;
for (int i=0;i<*size-2;i++){ for (int i=0;i < (*size);i++){
if (i!=item_to_delete){ if (i==item_to_delete) {
flag = 1;
}
if (flag == 0) {
new_char_parsed[i]=yon_char_new(char_string[i]); 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; return new_char_parsed;
} }

Loading…
Cancel
Save