diff --git a/source/ubl-settings-resourcequota.h b/source/ubl-settings-resourcequota.h index 630fd5f..b492141 100755 --- a/source/ubl-settings-resourcequota.h +++ b/source/ubl-settings-resourcequota.h @@ -43,7 +43,7 @@ #define CMD_GET_GROUP "cut -d: -f1 /etc/group" typedef char *string; -string version_application = "1.2-37-g328deff"; +string version_application = "1.2-38-g8643957"; static char *local; diff --git a/source/ubl-utils.c b/source/ubl-utils.c index df891cb..69bb7d6 100644 --- a/source/ubl-utils.c +++ b/source/ubl-utils.c @@ -1586,20 +1586,20 @@ void philos_set_active_widgets_device_io(GtkWidget* combo_to_l2,GtkWidget *check int menu_id = gtk_combo_box_get_active(GTK_COMBO_BOX(combo_to_l2)); if (menu_id != -1) { gboolean active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(check)); - gtk_widget_set_sensitive(spin, active); - gtk_widget_set_sensitive(combo, active); - if (gtk_spin_button_get_digits(GTK_SPIN_BUTTON(spin))>0) { - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check),1); - } - else if (active == 0) { + if (active == 0) { gtk_spin_button_set_digits(GTK_SPIN_BUTTON(spin), 0); } + else if (gtk_spin_button_get_digits(GTK_SPIN_BUTTON(spin))>0) { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check),1); + } + gtk_widget_set_sensitive(spin, active); + gtk_widget_set_sensitive(combo, active); } else { + gtk_spin_button_set_digits(GTK_SPIN_BUTTON(spin), 0); gtk_widget_set_sensitive(spin, 0); gtk_widget_set_sensitive(combo, 0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check), 0); - gtk_spin_button_set_digits(GTK_SPIN_BUTTON(spin), 0); } philos_set_spin_adjustment(check, spin, combo, 12582912); } diff --git a/source/view_add.c b/source/view_add.c index 0e82948..726d7b0 100644 --- a/source/view_add.c +++ b/source/view_add.c @@ -52,11 +52,55 @@ add_window *add_setup_window(char* glade_path) { } return add_widgets; } -void update_device_to_entry(GtkWidget *combo_box, GtkWidget *check_button_read, GtkWidget *check_button_write) { +// flag_check_array = 0 READ +// flag_check_array = 1 WRITE +void update_device_to_entry(GtkWidget *combo_box, GtkWidget *check_button, GtkWidget *spin, int flag_check_array) { int disk_id = gtk_combo_box_get_active(GTK_COMBO_BOX(combo_box)); + char* disk = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbtAddDevice)); + disk = yon_char_divide_search(disk, " ", -1); if (disk_id != -1) { - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button_read), 0); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button_write), 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; + break; + } + } + if (index_find != -1) { + if (flag_check_array==0) { + if (strstr(obj_add_config.i_o_limit_read[index_find],"-")) { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button), 0); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), 0); + } + else { + gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), atoll(obj_add_config.i_o_limit_read[index_find])); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button), 1); + } + } + else if (flag_check_array==1) { + if (strstr(obj_add_config.i_o_limit_write[index_find],"-")) { + gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), 0); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button), 0); + } + else { + gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), atoll(obj_add_config.i_o_limit_write[index_find])); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button), 1); + } + } + else { + gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), 0); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button), 0); + } + } + else { + gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), 0); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button), 0); + } + } + else { + gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), 0); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_button), 0); } } @@ -116,8 +160,9 @@ void add_del_disk() { } if (obj_add_config.disk && obj_add_config.size) { int index_find = -1; + printf("%d\n", obj_add_config.size); for (int index = 0; index < obj_add_config.size; index++) { - char* disk_cfg = yon_char_new(obj_add_config.disk[index]); + char* disk_cfg = obj_add_config.disk[index]; if (strstr(disk_cfg, disk) != NULL) { index_find = index; break; @@ -154,8 +199,6 @@ char* pard_array_add_cmd(char* cmd, char* key, char** array_io, int* array_io_po } } - printf("\n%i\n", array_io_pow_size[index]); - puts(key); if (array_io_pow_size[index] != -1) { cmd = yon_char_unite(cmd, split_simvol, @@ -167,7 +210,6 @@ char* pard_array_add_cmd(char* cmd, char* key, char** array_io, int* array_io_po } } } - puts("================================================"); free(split_simvol); if (flag_format) { return cmd; @@ -195,12 +237,9 @@ void add_disk_all(){ } if (index_find == -1) { // Добавление - - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddRead)) || - gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddWrite))) { - obj_add_config.disk = yon_char_parsed_append(obj_add_config.disk,&obj_add_config.size, disk); - obj_add_config.size--; - } + puts("hhhhhhh1"); + obj_add_config.disk = yon_char_parsed_append(obj_add_config.disk,&obj_add_config.size, disk); + obj_add_config.size--; if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddRead))) { 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--; @@ -208,9 +247,9 @@ void add_disk_all(){ obj_add_config.size--; } else { - obj_add_config.i_o_limit_write_size = philos_int_append(obj_add_config.i_o_limit_write_size,&obj_add_config.size,-1); + obj_add_config.i_o_limit_read_size = philos_int_append(obj_add_config.i_o_limit_read_size,&obj_add_config.size,-1); 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,"-"); + obj_add_config.i_o_limit_read = yon_char_parsed_append(obj_add_config.i_o_limit_read,&obj_add_config.size,"-"); obj_add_config.size--; } if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddWrite))) { @@ -231,6 +270,7 @@ void add_disk_all(){ else { // Редактирование //obj_add_config.disk[index_find] = yon_char_new(disk); + puts("hhhhhhh2"); if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddRead))) { 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_read[index_find] = yon_char_from_int(gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(add_widgets->spinAddRead))); @@ -263,9 +303,9 @@ void add_disk_all(){ obj_add_config.size--; } else { - obj_add_config.i_o_limit_write_size = philos_int_append(obj_add_config.i_o_limit_write_size,&obj_add_config.size,-1); + obj_add_config.i_o_limit_read_size = philos_int_append(obj_add_config.i_o_limit_read_size,&obj_add_config.size,-1); 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,"-"); + obj_add_config.i_o_limit_read = yon_char_parsed_append(obj_add_config.i_o_limit_read,&obj_add_config.size,"-"); obj_add_config.size--; } if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(add_widgets->chbAddWrite))) { @@ -283,7 +323,6 @@ void add_disk_all(){ obj_add_config.size++; } else { - puts("222sdvdfvdvfv\n"); } } } @@ -291,14 +330,14 @@ void add_disk_all(){ void event_check_io_device() { philos_set_active_widgets_device_io(add_widgets->cbtAddDevice,add_widgets->chbAddWrite, add_widgets->spinAddWrite, add_widgets->cbtAddWrite); philos_set_active_widgets_device_io(add_widgets->cbtAddDevice,add_widgets->chbAddRead, add_widgets->spinAddRead, add_widgets->cbtAddRead); - add_del_disk(); add_disk_all(); + add_del_disk(); add_init_windows(); } void combo_box_device() { - update_device_to_entry(add_widgets->cbtAddDevice, add_widgets->chbAddRead, add_widgets->chbAddWrite); - update_device_to_entry(add_widgets->cbtAddDevice, add_widgets->chbAddRead, add_widgets->chbAddWrite); + update_device_to_entry(add_widgets->cbtAddDevice, add_widgets->chbAddRead, add_widgets->spinAddRead, 0); + update_device_to_entry(add_widgets->cbtAddDevice, add_widgets->chbAddWrite, add_widgets->spinAddWrite, 1); } void add_event(add_window *widgets) {