diff --git a/source/philos_utils.c b/source/philos_utils.c index fbebec0..16686f9 100644 --- a/source/philos_utils.c +++ b/source/philos_utils.c @@ -585,7 +585,7 @@ void philos_update_device_to_entry(temp_set_window *widgets, temp_config* _confi for (int index = 0; index < _config->size_disk; index++) { char* disk_cfg = _config->disk_read[index]; if (disk_cfg) { - if (strstr(disk_cfg, disk) != NULL) { + if (strstr(disk_cfg, disk)) { index_find = index; break; } @@ -598,7 +598,7 @@ void philos_update_device_to_entry(temp_set_window *widgets, temp_config* _confi for (int index = 0; index < _config->size_disk; index++) { char* disk_cfg = _config->disk_write[index]; if (disk_cfg) { - if (strstr(disk_cfg, disk) != NULL) { + if (strstr(disk_cfg, disk)) { index_find = index; break; } @@ -606,8 +606,6 @@ void philos_update_device_to_entry(temp_set_window *widgets, temp_config* _confi } } } - - if (index_find != -1) { if (flag_check_array==0) { if (_config->i_o_limit_read[index_find]<0 || _config->i_o_limit_read_size[index_find]<0) { @@ -635,35 +633,50 @@ void philos_update_device_to_entry(temp_set_window *widgets, temp_config* _confi } } else { - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->chbTempWrite), 0); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinTempWrite), 0); - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->cbtTempWrite), 0); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->chbTempRead), 0); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinTempRead), 0); - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->cbtTempRead), 0); + if (flag_check_array==0) { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->chbTempRead), 0); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinTempRead), 0); + gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->cbtTempRead), 0); + } + else if (flag_check_array==1) { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->chbTempWrite), 0); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinTempWrite), 0); + gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->cbtTempWrite), 0); + } } } else { - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->chbTempWrite), 0); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinTempWrite), 0); - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->cbtTempWrite), 0); + if (flag_check_array==0) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->chbTempRead), 0); gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinTempRead), 0); gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->cbtTempRead), 0); + } + else if (flag_check_array==1) { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->chbTempWrite), 0); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinTempWrite), 0); + gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->cbtTempWrite), 0); + } } } else { - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->chbTempWrite), 0); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinTempWrite), 0); - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->cbtTempWrite), 0); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->chbTempRead), 0); - gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinTempRead), 0); - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->cbtTempRead), 0); + if (flag_check_array==0) { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->chbTempRead), 0); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinTempRead), 0); + gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->cbtTempRead), 0); + } + else if (flag_check_array==1) { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->chbTempWrite), 0); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->spinTempWrite), 0); + gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->cbtTempWrite), 0); + } } } // flag_check_array = 0 READ // flag_check_array = 1 WRITE void philos_temp_add_disk(temp_set_window *widgets, temp_config* _config, int flag_check_array) { + if (_config->block_table == 1) { + return; + } char* disk = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(widgets->cbtTempDevice)); disk = yon_char_divide_search(disk, " ", -1); int disk_id = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->cbtTempDevice)); @@ -700,57 +713,49 @@ void philos_temp_add_disk(temp_set_window *widgets, temp_config* _config, int fl // Редактирование if (flag_check_array == 0) { if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->chbTempRead))) { + ptr_disk[index_find] = yon_char_new(disk); _config->i_o_limit_read_size[index_find] = (int)gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->cbtTempRead)); _config->i_o_limit_read[index_find] = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widgets->spinTempRead)); } else { + ptr_disk[index_find] = yon_char_new("-"); _config->i_o_limit_read_size[index_find] = -3; _config->i_o_limit_read[index_find] = -3; } } if (flag_check_array == 1) { if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->chbTempWrite))) { + ptr_disk[index_find] = yon_char_new(disk); _config->i_o_limit_write_size[index_find] = (int)gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->cbtTempWrite)); _config->i_o_limit_write[index_find] = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widgets->spinTempWrite)); } else { _config->i_o_limit_write_size[index_find] = -3; _config->i_o_limit_write[index_find] = -3; + ptr_disk[index_find] = yon_char_new("-"); } } } } else { if (bool_read == 1 || bool_write == 1) { - ptr_disk = yon_char_parsed_append(ptr_disk,&size, disk); int index_find = find_null_array(_config); if (flag_check_array == 0) { if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->chbTempRead))) { + ptr_disk[index_find] = yon_char_new(disk); _config->i_o_limit_read_size[index_find] = (int)gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->cbtTempRead)); _config->i_o_limit_read[index_find] = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widgets->spinTempRead)); } - else { - _config->i_o_limit_read_size[index_find] = -3; - _config->i_o_limit_read[index_find] = -3; - - } } if (flag_check_array == 1) { if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->chbTempWrite))) { + ptr_disk[index_find] = yon_char_new(disk); _config->i_o_limit_write_size[index_find] = (int)gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->cbtTempWrite)); _config->i_o_limit_write[index_find] = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widgets->spinTempWrite)); - - } - else { - _config->i_o_limit_write_size[index_find] = -3; - _config->i_o_limit_write[index_find] = -3; - } } } - else { - } } if (flag_check_array == 0) { if (ptr_disk) { diff --git a/source/philos_utils.h b/source/philos_utils.h index 8ec5af6..6ca960e 100644 --- a/source/philos_utils.h +++ b/source/philos_utils.h @@ -29,6 +29,7 @@ typedef struct { int* i_o_limit_write_size; int size; int size_disk; + int block_table; } temp_config; typedef struct { diff --git a/source/ubl-settings-resourcequota.c b/source/ubl-settings-resourcequota.c index 101ab99..e4c31e1 100644 --- a/source/ubl-settings-resourcequota.c +++ b/source/ubl-settings-resourcequota.c @@ -889,14 +889,14 @@ void wrapper_edit_show() { edit_show(NULL, glade_path); edit_set_size_arrays((get_device_cfg()->size_disk*2)+1); edit_set_select_read_device(&main_config.disk_read[index]); + edit_set_read_device(main_config.i_o_limit_read[index], main_config.i_o_limit_read_size[index]); edit_set_select_write_device(&main_config.disk_write[index]); edit_set_write_device(main_config.i_o_limit_write[index], main_config.i_o_limit_write_size[index]); - edit_set_read_device(main_config.i_o_limit_read[index], main_config.i_o_limit_read_size[index]); edit_set_hard(main_config.hard_raw_limit[index], main_config.hard_raw_limit_size[index]); edit_set_limit_cpu(main_config.cpu_limit[index], main_config.cpu_limit_size[index]); edit_set_soft(main_config.soft_raw_limit[index], main_config.soft_raw_limit_size[index]); edit_set_limit_swap(main_config.swap[index], main_config.swap_size[index]); - + set_gui_device(); edit_event(get_widget_edit()); g_signal_connect(G_OBJECT(get_widget_edit()->btnSaveTempSave), "clicked", G_CALLBACK(main_edit_btn_save), NULL); edit_init_windows(); diff --git a/source/view_add.c b/source/view_add.c index cd26198..ddb72d3 100644 --- a/source/view_add.c +++ b/source/view_add.c @@ -75,8 +75,8 @@ void event_check_io_device() { add_init_windows(); philos_temp_add_disk(add_widgets, &obj_add_config, 0); philos_temp_add_disk(add_widgets, &obj_add_config, 1); - philos_temp_del_disk(add_widgets, &obj_add_config, 0); - philos_temp_del_disk(add_widgets, &obj_add_config, 1); + //philos_temp_del_disk(add_widgets, &obj_add_config, 0); + //philos_temp_del_disk(add_widgets, &obj_add_config, 1); philos_temp_generate_cmd(add_widgets, &obj_add_config); } diff --git a/source/view_edit.c b/source/view_edit.c index 4379e08..d7c43b3 100644 --- a/source/view_edit.c +++ b/source/view_edit.c @@ -100,10 +100,9 @@ void edit_show(GtkWidget *self, char* glade_path) { void wrapper_edit_init_windows_size_memory() { philos_temp_add_disk(edit_widgets, &obj_edit_config, 0); philos_temp_add_disk(edit_widgets, &obj_edit_config, 1); - philos_temp_del_disk(edit_widgets, &obj_edit_config, 0); - philos_temp_del_disk(edit_widgets, &obj_edit_config, 1); + //philos_temp_del_disk(edit_widgets, &obj_edit_config, 0); + //philos_temp_del_disk(edit_widgets, &obj_edit_config, 1); edit_init_windows(); - philos_temp_generate_cmd(edit_widgets, &obj_edit_config); } void edit_init_windows() { @@ -126,6 +125,7 @@ void combo_box_device_edit() { g_signal_handlers_block_by_func(G_OBJECT(edit_widgets->chbTempWrite), G_CALLBACK(wrapper_edit_init_windows_size_memory), NULL); philos_update_device_to_entry(edit_widgets, &obj_edit_config, 0); philos_update_device_to_entry(edit_widgets, &obj_edit_config, 1); + obj_edit_config.block_table = 1; g_signal_handlers_unblock_by_func(G_OBJECT(edit_widgets->cbtTempDevice), G_CALLBACK(combo_box_device_edit), NULL); g_signal_handlers_unblock_by_func(G_OBJECT(edit_widgets->cbtTempRead), G_CALLBACK(wrapper_edit_init_windows_size_memory), NULL); g_signal_handlers_unblock_by_func(G_OBJECT(edit_widgets->cbtTempWrite), G_CALLBACK(wrapper_edit_init_windows_size_memory), NULL); @@ -133,6 +133,7 @@ void combo_box_device_edit() { g_signal_handlers_unblock_by_func(G_OBJECT(edit_widgets->spinTempWrite), G_CALLBACK(wrapper_edit_init_windows_size_memory), NULL); g_signal_handlers_unblock_by_func(G_OBJECT(edit_widgets->chbTempRead), G_CALLBACK(wrapper_edit_init_windows_size_memory), NULL); g_signal_handlers_unblock_by_func(G_OBJECT(edit_widgets->chbTempWrite), G_CALLBACK(wrapper_edit_init_windows_size_memory), NULL); + obj_edit_config.block_table = 0; } int edit_get_soft_size() { @@ -212,10 +213,6 @@ void edit_set_select_read_device(char*** str_value) { if (str_value) { if ((*str_value)) { yon_char_parsed_copy(&obj_edit_config.disk_read, str_value); - if ((*str_value)[0] != NULL && strstr((*str_value)[0], "-") == NULL) { - int index = yon_gtk_combo_box_text_find(edit_widgets->cbtTempDevice, (*str_value)[0]); - gtk_combo_box_set_active(GTK_COMBO_BOX(edit_widgets->cbtTempDevice), index); - } } } } @@ -223,34 +220,54 @@ void edit_set_select_write_device(char*** str_value) { if (str_value) { if ((*str_value)) { yon_char_parsed_copy(&obj_edit_config.disk_write, str_value); - if ((*str_value)[0] != NULL && strstr((*str_value)[0], "-") == NULL) { - int index = yon_gtk_combo_box_text_find(edit_widgets->cbtTempDevice, (*str_value)[0]); - gtk_combo_box_set_active(GTK_COMBO_BOX(edit_widgets->cbtTempDevice), index); - } } } } -void edit_set_read_device(int* str_value, int* pow_mem) { - if (str_value && pow_mem) { - if (str_value[0] >=0 && pow_mem[0] >=0) { - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(edit_widgets->chbTempRead), 1); - edit_temp_set(str_value[0],pow_mem[0], edit_widgets->chbTempRead, +int set_template_gui_device(int flag_check_array) { + int index = -1; + if (flag_check_array==0) { + index = yon_gtk_combo_box_text_find(edit_widgets->cbtTempDevice, obj_edit_config.disk_read[0]); + gtk_combo_box_set_active(GTK_COMBO_BOX(edit_widgets->cbtTempDevice), index); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(edit_widgets->chbTempRead), 1); + edit_temp_set(obj_edit_config.i_o_limit_read[0], + obj_edit_config.i_o_limit_read_size[0], edit_widgets->chbTempRead, edit_widgets->spinTempRead, edit_widgets->cbtTempRead); + } + else if (flag_check_array==1) { + index = yon_gtk_combo_box_text_find(edit_widgets->cbtTempDevice, obj_edit_config.disk_write[0]); + gtk_combo_box_set_active(GTK_COMBO_BOX(edit_widgets->cbtTempDevice), index); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(edit_widgets->chbTempWrite), 1); + edit_temp_set(obj_edit_config.i_o_limit_write[0], + obj_edit_config.i_o_limit_write_size[0], + edit_widgets->chbTempWrite, + edit_widgets->spinTempWrite, + edit_widgets->cbtTempWrite); + } + return index; +} +void set_gui_device() { + int flag = -1; + if (obj_edit_config.disk_read && flag == -1) { + if (obj_edit_config.disk_read[0] != NULL && strstr(obj_edit_config.disk_read[0], "-") == NULL) { + flag = set_template_gui_device(0); + } + } + if (obj_edit_config.disk_write && flag == -1) { + if (obj_edit_config.disk_write[0] != NULL && strstr(obj_edit_config.disk_write[0], "-") == NULL) { + flag = set_template_gui_device(1); } + + } +} +void edit_set_read_device(int* str_value, int* pow_mem) { + if (str_value && pow_mem) { philos_array_int_copy(&obj_edit_config.i_o_limit_read, &str_value); philos_array_int_copy(&obj_edit_config.i_o_limit_read_size, &pow_mem); } } void edit_set_write_device(int* str_value, int* pow_mem) { if (str_value && pow_mem) { - if (str_value[0] >=0 && pow_mem[0] >=0) { - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(edit_widgets->chbTempWrite), 1); - edit_temp_set(str_value[0],pow_mem[0], edit_widgets->chbTempWrite, - edit_widgets->spinTempWrite, - edit_widgets->cbtTempWrite); - - } philos_array_int_copy(&obj_edit_config.i_o_limit_write, &str_value); philos_array_int_copy(&obj_edit_config.i_o_limit_write_size, &pow_mem); } diff --git a/source/view_edit.h b/source/view_edit.h index df51f00..e8bf8da 100644 --- a/source/view_edit.h +++ b/source/view_edit.h @@ -57,6 +57,7 @@ int edit_get_hard_size(); int edit_get_limit_cpu_size(); int edit_get_limit_swap_size(); void edit_config_init(); +void set_gui_device(); temp_config* get_edit_config(); void edit_set_active_widgets_device_io(GtkWidget *check, GtkWidget *spin, GtkWidget *combo); void edit_set_spin_adjustment(GtkWidget *check, GtkWidget *spin, GtkWidget *combo, size_t value); diff --git a/ubl-settings-resourcequota.glade b/ubl-settings-resourcequota.glade index 687a4f0..8a29fb4 100644 --- a/ubl-settings-resourcequota.glade +++ b/ubl-settings-resourcequota.glade @@ -2382,6 +2382,21 @@ 1 10 + + 100 + 1 + 10 + + + 100 + 1 + 10 + + + 100 + 1 + 10 + True False @@ -3365,6 +3380,7 @@ limit False True natural + adjustment1 natural UTF-8 True @@ -3381,6 +3397,7 @@ limit True False vertical + adjustment1 False @@ -3477,6 +3494,7 @@ limit False True natural + adjustment2 natural UTF-8 1024 @@ -3494,6 +3512,7 @@ limit True False vertical + adjustment2 False @@ -3609,6 +3628,7 @@ limit False True natural + adjustment3 natural UTF-8 True @@ -3625,6 +3645,7 @@ limit True False vertical + adjustment3 False