From 4602a0c98a05d39d58cd39d1cd569b95ef697cae Mon Sep 17 00:00:00 2001 From: Igor Belitskiy Date: Fri, 26 May 2023 12:27:53 +0600 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D1=80=D0=B5=D0=B4=D0=B0=D0=BA=D1=82=D0=B8=D1=80=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D0=B5=20treeView?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/ubl-settings-resourcequota.c | 70 +++++++++++++++++++++-------- source/ubl-settings-resourcequota.h | 5 ++- source/view_add.c | 15 ++++++- source/view_add.h | 1 + source/view_edit.c | 29 ++++++++---- source/view_edit.h | 1 + 6 files changed, 90 insertions(+), 31 deletions(-) diff --git a/source/ubl-settings-resourcequota.c b/source/ubl-settings-resourcequota.c index a2d925b..597dd7c 100644 --- a/source/ubl-settings-resourcequota.c +++ b/source/ubl-settings-resourcequota.c @@ -306,9 +306,8 @@ void tree_view_select(GtkWidget *self, main_window *widgets) { void tree_view_add(int index) { main_config.type_quota= yon_char_parsed_append(main_config.type_quota, &main_config.size_tree_view, add_get_quota_object()); - char* text = " "; main_config.size_tree_view--; - main_config.quota_volume = yon_char_parsed_append(main_config.quota_volume, &main_config.size_tree_view, text ); + main_config.quota_volume = yon_char_parsed_append(main_config.quota_volume, &main_config.size_tree_view, add_get_select_device_to_level_2()); main_config.size_tree_view--; main_config.soft_raw_limit = yon_char_parsed_append(main_config.soft_raw_limit, &main_config.size_tree_view, add_get_soft()); main_config.size_tree_view--; @@ -332,22 +331,36 @@ void tree_view_add(int index) { 6,main_config.i_o_limit_read[index], 7,main_config.i_o_limit_write[index],-1); } -void tree_view_edit(int index) { - main_config.soft_raw_limit[index] = edit_get_soft(); - main_config.hard_raw_limit[index] = edit_get_hard(); - main_config.swap[index] = edit_get_limit_swap(); - main_config.cpu_limit[index] = edit_get_limit_cpu(); - main_config.i_o_limit_read[index] = edit_get_read_device(); - main_config.i_o_limit_write[index] = edit_get_write_device(); +int tree_view_edit() { + int index = 0; GtkTreeIter iter; - gtk_list_store_set(main_config.list, &iter, main_config.type_quota[index], - main_config.quota_volume[index], - main_config.soft_raw_limit[index], - main_config.hard_raw_limit[index], - main_config.swap[index], - main_config.cpu_limit[index], - main_config.i_o_limit_read[index], - main_config.i_o_limit_write[index]); + GtkTreeModel *model = GTK_TREE_MODEL(main_config.list); + + GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->treeViewMain)); + if(gtk_tree_selection_get_selected(selection, &model, &iter)) { + char* str_iter = gtk_tree_model_get_string_from_iter(model, &iter); + puts(str_iter); + index = atoi(str_iter); + main_config.soft_raw_limit[index] = edit_get_soft(); + main_config.hard_raw_limit[index] = edit_get_hard(); + main_config.swap[index] = edit_get_limit_swap(); + main_config.cpu_limit[index] = edit_get_limit_cpu(); + main_config.i_o_limit_read[index] = edit_get_read_device(); + main_config.i_o_limit_write[index] = edit_get_write_device(); + 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); + return 0; + } + else { + return 0; + } + } /* void yon_gtk_list_store_fill_with_proprietaries(GtkListStore *list){ @@ -412,7 +425,7 @@ void main_event(main_window *widgets) { g_signal_connect(G_OBJECT(widgets->btnShowFilters),"clicked",G_CALLBACK(wrapper_filters_show), NULL); g_signal_connect(G_OBJECT(widgets->btnAdd),"clicked",G_CALLBACK(wrapper_add_show), glade_path); - g_signal_connect(G_OBJECT(widgets->btnEdit),"clicked",G_CALLBACK(edit_show), glade_path); + g_signal_connect(G_OBJECT(widgets->btnEdit),"clicked",G_CALLBACK(wrapper_edit_show), glade_path); g_signal_connect(G_OBJECT(widgets->btnInfo),"clicked",G_CALLBACK(info_show), glade_path); g_signal_connect(G_OBJECT(widgets->btnUpdateDispatcher),"clicked",G_CALLBACK(main_update_dispatcher), NULL); g_signal_connect(G_OBJECT(widgets->btnMainShowAllEmpty), "toggled", G_CALLBACK(main_update_processes), NULL); @@ -442,8 +455,27 @@ void main_add_btn_save() { void wrapper_filters_show(GtkWidget *self) { filters_show(self, glade_path); g_signal_connect(G_OBJECT(get_widget_filters()->btnFiltersSave),"clicked",G_CALLBACK(main_visible_columns), NULL); - +} + +void wrapper_edit_show() { + GtkTreeIter iter; + GtkTreeModel *model = GTK_TREE_MODEL(main_config.list); + GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->treeViewMain)); + if(gtk_tree_selection_get_selected(selection, &model, &iter)) { + edit_show(NULL, glade_path); + g_signal_connect(G_OBJECT(get_widget_edit()->btnSaveEditSave), "clicked", G_CALLBACK(main_edit_btn_save), NULL); + } +} + +void main_edit_btn_save() { + if (tree_view_edit(main_config.size_tree_view)) { + add_on_destroy_subwindow(get_widget_edit()->Window); + } + else { + + } + } void main_localization(main_window *widgets) { diff --git a/source/ubl-settings-resourcequota.h b/source/ubl-settings-resourcequota.h index 70293ad..d51ec0e 100644 --- a/source/ubl-settings-resourcequota.h +++ b/source/ubl-settings-resourcequota.h @@ -152,6 +152,7 @@ void main_cbx_2_event(); void tree_view_delete(GtkWidget *self, main_window *widgets); void tree_view_select(GtkWidget *self, main_window *widgets); void tree_view_add(int index); -void tree_view_edit(int index); +int tree_view_edit(); void main_add_btn_save(); -void wrapper_add_show(GtkWidget *self); \ No newline at end of file +void wrapper_add_show(GtkWidget *self); +void main_edit_btn_save(); \ No newline at end of file diff --git a/source/view_add.c b/source/view_add.c index 96a3ccb..ea780f5 100644 --- a/source/view_add.c +++ b/source/view_add.c @@ -103,6 +103,19 @@ void add_show(GtkWidget *self, char* glade_path) { } } +char* add_get_select_device_to_level_2() { + char* text = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbxAddQuotaLevel2)); + if (text != NULL) { + return text; + } + else { + char* str = (char*)malloc(sizeof(char*)*2); + str[0] = '-'; + str[1] = '\0'; + return str; + } +} + char* add_get_select_device() { char* text = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbtAddDevice)); if (text != NULL) { @@ -114,8 +127,8 @@ char* add_get_select_device() { str[1] = '\0'; return str; } - } + char* add_get_read_device() { return philos_get_size_bite(add_widgets->chbAddRead, add_widgets->spinAddRead, add_widgets->cbtAddRead); diff --git a/source/view_add.h b/source/view_add.h index 54537de..b295566 100644 --- a/source/view_add.h +++ b/source/view_add.h @@ -66,4 +66,5 @@ char* add_get_hard(); char* add_get_limit_cpu(); char* add_get_limit_swap(); char* add_get_quota_object(); +char* add_get_select_device_to_level_2(); #endif \ No newline at end of file diff --git a/source/view_edit.c b/source/view_edit.c index 6fd659f..7eb530a 100644 --- a/source/view_edit.c +++ b/source/view_edit.c @@ -96,19 +96,30 @@ void edit_set_active_widgets(GtkWidget *self, GtkWidget *entry, GtkWidget *label } char* edit_get_select_device() { - return gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(edit_widgets->cbtEditDevice)); + char* text = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(edit_widgets->cbtEditDevice)); + if (text != NULL) { + return text; + } + else { + char* str = (char*)malloc(sizeof(char*)*2); + str[0] = '-'; + str[1] = '\0'; + return str; + } } + + char* edit_get_read_device() { - return philos_get_size_bite(edit_widgets->chbEditRead, edit_widgets->spiSevereRestrictionEdit, - edit_widgets->cmSevereRestrictionEdit); + return philos_get_size_bite(edit_widgets->chbEditRead, edit_widgets->spinEditRead, + edit_widgets->cbtEditRead); } char* edit_get_write_device() { - return philos_get_size_bite(edit_widgets->chbEditWrite, edit_widgets->spinEditRead, - edit_widgets->cbtEditRead); + return philos_get_size_bite(edit_widgets->chbEditWrite, edit_widgets->spinEditWrite, + edit_widgets->cbtEditWrite); } char* edit_get_soft() { - return philos_get_size_bite(edit_widgets->chkSoftRestrictionEdit, edit_widgets->spinEditWrite, - edit_widgets->cbtEditWrite); + return philos_get_size_bite(edit_widgets->chkSoftRestrictionEdit, edit_widgets->spiSevereRestrictionEdit, + edit_widgets->cmSevereRestrictionEdit); } char* edit_get_hard() { return philos_get_size_bite(edit_widgets->chkSevereRestrictionEdit, edit_widgets->spinSevereRestrictionEdit, @@ -127,6 +138,6 @@ char* edit_get_limit_cpu() { } } char* edit_get_limit_swap() { - return philos_get_size_bite(edit_widgets->spinPaddingFLEdit, edit_widgets->spinPaddingFLEdit, - edit_widgets->spinPaddingFLEdit); + return philos_get_size_bite(edit_widgets->chkPaddingFLEdit, edit_widgets->spinPaddingFLEdit, + edit_widgets->cmbPaddingFLEdit); } \ No newline at end of file diff --git a/source/view_edit.h b/source/view_edit.h index d009304..ec0bfd9 100644 --- a/source/view_edit.h +++ b/source/view_edit.h @@ -61,4 +61,5 @@ char* edit_get_soft(); char* edit_get_hard(); char* edit_get_limit_cpu(); char* edit_get_limit_swap(); +void wrapper_edit_show(); #endif \ No newline at end of file