From 126f61dd269813823b1a3cdb9f06962b8c91ae23 Mon Sep 17 00:00:00 2001 From: Igor Belitskiy Date: Mon, 19 Jun 2023 11:03:33 +0600 Subject: [PATCH] fix --- source/view_add.c | 43 ++++++++++++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 13 deletions(-) diff --git a/source/view_add.c b/source/view_add.c index 1163a8a..489e698 100644 --- a/source/view_add.c +++ b/source/view_add.c @@ -49,7 +49,6 @@ add_window *add_setup_window(char* glade_path) { add_localization(add_widgets); add_config_init(); } - return add_widgets; } @@ -106,15 +105,18 @@ void add_del_disk() { return; } if (obj_add_config.disk && obj_add_config.size) { - int index_find = 0; + int index_find = -1; for (int index = 0; index < obj_add_config.size; index++) { char* disk_cfg = yon_char_new(obj_add_config.disk[index]); if (strstr(disk_cfg, disk) != NULL) { index_find = index; + printf("%d\n", index_find); + puts(disk_cfg); + puts(disk); break; } } - if ((bool_read == 0 && bool_write == 0 && index_find != 0)) { + if ((bool_read == 0 && bool_write == 0 && index_find != -1)) { obj_add_config.disk = yon_char_parsed_shrink(obj_add_config.disk,&obj_add_config.size, index_find); obj_add_config.size++; obj_add_config.i_o_limit_read_size = remove_element_int_array(obj_add_config.i_o_limit_read_size,&obj_add_config.size, index_find); @@ -147,7 +149,6 @@ char* pard_array_edit_cmd(char* cmd, char* key, char** array_io, int* array_io_p split_simvol[0] = ','; split_simvol[1] = '\0'; } - } } free(split_simvol); @@ -161,7 +162,7 @@ void add_disk_all(){ int bool_read = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddRead)); int bool_write = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddWrite)); if (disk_id >= 0 && obj_add_config.size !=0) { - int index_find = 0; + int index_find = -1; for (int index = 0; index < obj_add_config.size; index++) { char* disk_cfg = yon_char_new(obj_add_config.disk[index]); if (strstr(disk_cfg, disk) != NULL) { @@ -169,16 +170,26 @@ void add_disk_all(){ break; } } - if (index_find == 0) { + if (index_find == -1) { + // Добавление obj_add_config.disk = yon_char_parsed_append(obj_add_config.disk,&obj_add_config.size, disk); obj_add_config.size--; obj_add_config.i_o_limit_read_size = philos_int_append(obj_add_config.i_o_limit_read_size,&obj_add_config.size,(int)gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddRead))); obj_add_config.size--; obj_add_config.i_o_limit_write_size = philos_int_append(obj_add_config.i_o_limit_write_size,&obj_add_config.size,(int)gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddWrite))); obj_add_config.size--; - obj_add_config.i_o_limit_read = yon_char_parsed_append(obj_add_config.i_o_limit_read,&obj_add_config.size,gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbtAddRead))); + obj_add_config.i_o_limit_read = yon_char_parsed_append(obj_add_config.i_o_limit_read,&obj_add_config.size,yon_char_from_int(gtk_spin_button_get_digits(GTK_SPIN_BUTTON(add_widgets->spinAddRead)))); obj_add_config.size--; - obj_add_config.i_o_limit_write = yon_char_parsed_append(obj_add_config.i_o_limit_write,&obj_add_config.size,gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbtAddWrite))); + obj_add_config.i_o_limit_write = yon_char_parsed_append(obj_add_config.i_o_limit_write,&obj_add_config.size,yon_char_from_int(gtk_spin_button_get_digits(GTK_SPIN_BUTTON(add_widgets->spinAddWrite)))); + } + else { + // Редактирование + obj_add_config.disk[index_find] = yon_char_new(disk); + obj_add_config.i_o_limit_read_size[index_find] =(int)gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddRead)); + obj_add_config.i_o_limit_write_size[index_find] = (int)gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddWrite)); + obj_add_config.i_o_limit_read[index_find] = yon_char_from_int(gtk_spin_button_get_digits(GTK_SPIN_BUTTON(add_widgets->spinAddRead))); + obj_add_config.i_o_limit_write[index_find] = yon_char_from_int(gtk_spin_button_get_digits(GTK_SPIN_BUTTON(add_widgets->spinAddWrite))); + } } else { @@ -187,13 +198,13 @@ void add_disk_all(){ obj_add_config.size--; obj_add_config.i_o_limit_read_size = philos_int_append(obj_add_config.i_o_limit_read_size,&obj_add_config.size,(int)gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddRead))); obj_add_config.size--; - obj_add_config.i_o_limit_read = yon_char_parsed_append(obj_add_config.i_o_limit_read,&obj_add_config.size,gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbtAddRead))); + obj_add_config.i_o_limit_read = yon_char_parsed_append(obj_add_config.i_o_limit_read,&obj_add_config.size,yon_char_from_int(gtk_spin_button_get_digits(GTK_SPIN_BUTTON(add_widgets->spinAddRead)))); obj_add_config.size--; obj_add_config.disk = yon_char_parsed_append(obj_add_config.disk,&obj_add_config.size, disk); obj_add_config.size--; obj_add_config.i_o_limit_write_size = philos_int_append(obj_add_config.i_o_limit_write_size,&obj_add_config.size,(int)gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddWrite))); obj_add_config.size--; - obj_add_config.i_o_limit_write = yon_char_parsed_append(obj_add_config.i_o_limit_write,&obj_add_config.size,gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbtAddWrite))); + obj_add_config.i_o_limit_write = yon_char_parsed_append(obj_add_config.i_o_limit_write,&obj_add_config.size,yon_char_from_int(gtk_spin_button_get_digits(GTK_SPIN_BUTTON(add_widgets->spinAddWrite)))); } } } @@ -435,9 +446,15 @@ void add_generate_cmd() { split_simvol[0] = ','; split_simvol[1] = '\0'; } - str_cmd = pard_array_edit_cmd(str_cmd, "IOReadBandwidthMax=", obj_add_config.i_o_limit_read, obj_add_config.i_o_limit_read_size); - - str_cmd = pard_array_edit_cmd(str_cmd, "IOWriteBandwidthMax=", obj_add_config.i_o_limit_write, obj_add_config.i_o_limit_write_size); + if (gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbtAddDevice))!=-1) { + if (obj_add_config.size!=0) { + str_cmd = pard_array_edit_cmd(str_cmd, "IOReadBandwidthMax=", obj_add_config.i_o_limit_read, obj_add_config.i_o_limit_read_size); + str_cmd = pard_array_edit_cmd(str_cmd, "IOWriteBandwidthMax=", obj_add_config.i_o_limit_write, obj_add_config.i_o_limit_write_size); + } + + } + + gtk_entry_set_text(GTK_ENTRY(add_widgets->entryAddCmd), str_cmd); free(split_simvol); }