From 39a03cc26a88b3b1095d372cc3e3eb14269ded73 Mon Sep 17 00:00:00 2001 From: Igor Belitskiy Date: Fri, 26 May 2023 16:02:20 +0600 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=B1=D0=B0=D0=B3=20=D1=81=20=D1=83=D0=B4=D0=B0=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/ubl-settings-resourcequota.c | 40 ++++++++++++++++++++++------- source/ubl-settings-resourcequota.h | 3 ++- source/ubl-utils.c | 18 ++++++++----- 3 files changed, 44 insertions(+), 17 deletions(-) diff --git a/source/ubl-settings-resourcequota.c b/source/ubl-settings-resourcequota.c index f3d67e7..dcea2da 100644 --- a/source/ubl-settings-resourcequota.c +++ b/source/ubl-settings-resourcequota.c @@ -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); diff --git a/source/ubl-settings-resourcequota.h b/source/ubl-settings-resourcequota.h index d4dd33d..524f388 100644 --- a/source/ubl-settings-resourcequota.h +++ b/source/ubl-settings-resourcequota.h @@ -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(); \ No newline at end of file +void tree_view_del_line(); +void main_fill_tree_view_after_remove(); \ No newline at end of file diff --git a/source/ubl-utils.c b/source/ubl-utils.c index 54851cd..6aa2d5a 100644 --- a/source/ubl-utils.c +++ b/source/ubl-utils.c @@ -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; }