Исправил загрузку данных в окно "редактирования"

pull/4/head
Igor Belitskiy 2 years ago
parent 79bae2385b
commit 22a5defbcd

@ -281,8 +281,7 @@ void clear_array() {
philos_free_string_array(&main_config.cpu_limit, main_config.size_tree_view); philos_free_string_array(&main_config.cpu_limit, main_config.size_tree_view);
philos_free_string_array_n3(&main_config.i_o_limit_read, main_config.size_tree_view); philos_free_string_array_n3(&main_config.i_o_limit_read, main_config.size_tree_view);
philos_free_string_array_n3(&main_config.i_o_limit_write, main_config.size_tree_view); philos_free_string_array_n3(&main_config.i_o_limit_write, main_config.size_tree_view);
philos_free_string_array_n3(&main_config.disk_read, main_config.size_tree_view); philos_free_string_array_n3(&main_config.disk, main_config.size_tree_view);
philos_free_string_array_n3(&main_config.disk_write, main_config.size_tree_view);
philos_free_string_array(&main_config.array_del_line, main_config.size_array_del_line); philos_free_string_array(&main_config.array_del_line, main_config.size_array_del_line);
main_config.size_array_del_line = 0; main_config.size_array_del_line = 0;
@ -300,8 +299,7 @@ void clear_array() {
main_config.i_o_limit_read_size = NULL; main_config.i_o_limit_read_size = NULL;
main_config.i_o_limit_write = NULL; main_config.i_o_limit_write = NULL;
main_config.i_o_limit_write_size = NULL; main_config.i_o_limit_write_size = NULL;
main_config.disk_read = NULL; main_config.disk = NULL;
main_config.disk_write = NULL;
main_config.size_tree_view = 0; main_config.size_tree_view = 0;
} }
@ -505,18 +503,18 @@ void get_param_io_limit(char** arr_values, int index_start, int size, int index_
if (strstr(key_find, "IOReadBandwidthMax")!=NULL) { if (strstr(key_find, "IOReadBandwidthMax")!=NULL) {
main_config.i_o_limit_read = yon_remalloc(main_config.i_o_limit_read, (index_n1 + 1) * sizeof(char**)); main_config.i_o_limit_read = yon_remalloc(main_config.i_o_limit_read, (index_n1 + 1) * sizeof(char**));
main_config.i_o_limit_read_size = yon_remalloc(main_config.i_o_limit_read_size, (index_n1 + 1) * sizeof(int*)); main_config.i_o_limit_read_size = yon_remalloc(main_config.i_o_limit_read_size, (index_n1 + 1) * sizeof(int*));
main_config.disk_read = yon_remalloc(main_config.disk_read, (index_n1 + 1) * sizeof(char**)); main_config.disk = yon_remalloc(main_config.disk, (index_n1 + 1) * sizeof(char**));
yon_char_parsed_copy(&main_config.i_o_limit_read[index_n1], &array_limit); yon_char_parsed_copy(&main_config.i_o_limit_read[index_n1], &array_limit);
philos_array_int_copy(&main_config.i_o_limit_read_size[index_n1], &array_limit_size); philos_array_int_copy(&main_config.i_o_limit_read_size[index_n1], &array_limit_size);
yon_char_parsed_copy(&main_config.disk_read[index_n1], &array_disk); yon_char_parsed_copy(&main_config.disk[index_n1], &array_disk);
} }
else { else {
main_config.i_o_limit_write = yon_remalloc(main_config.i_o_limit_write, (index_n1 + 1) * sizeof(char**)); main_config.i_o_limit_write = yon_remalloc(main_config.i_o_limit_write, (index_n1 + 1) * sizeof(char**));
main_config.i_o_limit_write_size = yon_remalloc(main_config.i_o_limit_write_size, (index_n1 + 1) * sizeof(int*)); main_config.i_o_limit_write_size = yon_remalloc(main_config.i_o_limit_write_size, (index_n1 + 1) * sizeof(int*));
main_config.disk_write = yon_remalloc(main_config.disk_write, (index_n1 + 1) * sizeof(char**)); main_config.disk = yon_remalloc(main_config.disk, (index_n1 + 1) * sizeof(char**));
yon_char_parsed_copy(&main_config.i_o_limit_write[index_n1], &array_limit); yon_char_parsed_copy(&main_config.i_o_limit_write[index_n1], &array_limit);
philos_array_int_copy(&main_config.i_o_limit_write_size[index_n1], &array_limit_size); philos_array_int_copy(&main_config.i_o_limit_write_size[index_n1], &array_limit_size);
yon_char_parsed_copy(&main_config.disk_write[index_n1], &array_disk); yon_char_parsed_copy(&main_config.disk[index_n1], &array_disk);
} }
philos_free_string_array(&array_limit, index_n2); philos_free_string_array(&array_limit, index_n2);
philos_free_string_array(&array_disk, index_n2); philos_free_string_array(&array_disk, index_n2);
@ -670,8 +668,8 @@ void fill_tree_view(int start, int size, int flag_gui_add) {
for (int index = start; index < size; index++) { for (int index = start; index < size; index++) {
GtkTreeIter iter; GtkTreeIter iter;
gtk_list_store_append(main_config.list,&iter); gtk_list_store_append(main_config.list,&iter);
char* str_io_read = format_io_limit_in_tree_view(main_config.disk_read, main_config.i_o_limit_read, main_config.i_o_limit_read_size, index); char* str_io_read = format_io_limit_in_tree_view(main_config.disk, main_config.i_o_limit_read, main_config.i_o_limit_read_size, index);
char* str_io_write = format_io_limit_in_tree_view(main_config.disk_write, main_config.i_o_limit_write, main_config.i_o_limit_write_size, index); char* str_io_write = format_io_limit_in_tree_view(main_config.disk, main_config.i_o_limit_write, main_config.i_o_limit_write_size, index);
gtk_list_store_set(main_config.list,&iter,0,main_config.type_quota[index], gtk_list_store_set(main_config.list,&iter,0,main_config.type_quota[index],
1,main_config.quota_volume[index], 1,main_config.quota_volume[index],
2,main_config.soft_raw_limit[index], 2,main_config.soft_raw_limit[index],
@ -845,17 +843,17 @@ void wrapper_edit_show() {
char* str_iter = gtk_tree_model_get_string_from_iter(model, &iter); char* str_iter = gtk_tree_model_get_string_from_iter(model, &iter);
int index = atoi(str_iter); int index = atoi(str_iter);
edit_show(NULL, glade_path); edit_show(NULL, glade_path);
//edit_set_select_device(main_config.disk[index]); edit_set_select_device(&main_config.disk[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_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_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_soft(main_config.soft_raw_limit[index], main_config.soft_raw_limit_size[index]);
//edit_set_write_device(main_config.i_o_limit_write[index], main_config.i_o_limit_write_size[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_init_windows(); edit_init_windows();
edit_set_limit_swap(main_config.swap[index], main_config.swap_size[index]); edit_set_limit_swap(main_config.swap[index], main_config.swap_size[index]);
edit_event(get_widget_edit()); edit_event(get_widget_edit());
// edit_set_select_device(main_config.cpu_limit[index]);
g_signal_connect(G_OBJECT(get_widget_edit()->btnSaveEditSave), "clicked", G_CALLBACK(main_edit_btn_save), NULL); g_signal_connect(G_OBJECT(get_widget_edit()->btnSaveEditSave), "clicked", G_CALLBACK(main_edit_btn_save), NULL);
edit_init_windows();
} }
} }
@ -992,8 +990,8 @@ char* save_format_value(int index) {
split_simvol[0] = ','; split_simvol[0] = ',';
split_simvol[1] = '\0'; split_simvol[1] = '\0';
} }
value = add_io_str_format_ubconfig(value, "IOReadBandwidthMax", main_config.i_o_limit_read, main_config.disk_read, index); value = add_io_str_format_ubconfig(value, "IOReadBandwidthMax", main_config.i_o_limit_read, main_config.disk, index);
value = add_io_str_format_ubconfig(value, "IOWriteBandwidthMax", main_config.i_o_limit_write, main_config.disk_write, index); value = add_io_str_format_ubconfig(value, "IOWriteBandwidthMax", main_config.i_o_limit_write, main_config.disk, index);
//if (strstr(main_config.i_o_limit_read[index], "-") == NULL) { //if (strstr(main_config.i_o_limit_read[index], "-") == NULL) {
//value = yon_char_unite(value ,split_simvol, philos_format_cfg_str_size_memory("IOReadBandwidthMax", main_config.i_o_limit_read[index],main_config.i_o_limit_read_size[index]), NULL); //value = yon_char_unite(value ,split_simvol, philos_format_cfg_str_size_memory("IOReadBandwidthMax", main_config.i_o_limit_read[index],main_config.i_o_limit_read_size[index]), NULL);
// split_simvol[0] = ','; // split_simvol[0] = ',';
@ -1004,7 +1002,7 @@ char* save_format_value(int index) {
//} //}
return value; return value;
} }
char* add_io_str_format_ubconfig(char* cmd_io, char* key, char*** i_o_limit, char*** disk_read, int index) { char* add_io_str_format_ubconfig(char* cmd_io, char* key, char*** i_o_limit, char*** disk, int index) {
char split_simvol[2] = {0}; char split_simvol[2] = {0};
if (i_o_limit != NULL) { if (i_o_limit != NULL) {
if (i_o_limit[index] != NULL) { if (i_o_limit[index] != NULL) {
@ -1014,7 +1012,7 @@ char* add_io_str_format_ubconfig(char* cmd_io, char* key, char*** i_o_limit, ch
cmd_io = yon_char_unite(cmd_io, ",", key, "="); cmd_io = yon_char_unite(cmd_io, ",", key, "=");
} }
char* read_limit = i_o_limit[index][i]; char* read_limit = i_o_limit[index][i];
char* read_limit_disk = disk_read[index][i]; char* read_limit_disk = disk[index][i];
cmd_io = yon_char_unite(cmd_io, split_simvol, read_limit_disk, " ", read_limit); cmd_io = yon_char_unite(cmd_io, split_simvol, read_limit_disk, " ", read_limit);
split_simvol[0] = ','; split_simvol[0] = ',';
split_simvol[1] = '\0'; split_simvol[1] = '\0';

@ -81,8 +81,7 @@ typedef struct
config_str cpu_limit; config_str cpu_limit;
config_str* i_o_limit_read; config_str* i_o_limit_read;
config_str* i_o_limit_write; config_str* i_o_limit_write;
config_str* disk_read; config_str* disk;
config_str* disk_write;
config_str array_del_line; config_str array_del_line;
int size_array_del_line; int size_array_del_line;

@ -1271,6 +1271,7 @@ int yon_gtk_combo_box_text_find(GtkWidget *combo_box, char *text_to_find){
for (int i=0;strcmp(str,"")!=0;i++){ for (int i=0;strcmp(str,"")!=0;i++){
gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box),i); gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box),i);
str=gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(combo_box)); str=gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(combo_box));
puts(str);
if (!str) return -1; if (!str) return -1;
if (strstr(str,text_to_find)) return i; if (strstr(str,text_to_find)) return i;
} }
@ -1508,7 +1509,10 @@ void philos_set_active_widgets(GtkWidget *check, GtkWidget *spin, GtkWidget *com
gboolean active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(check)); gboolean active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(check));
gtk_widget_set_sensitive(spin, active); gtk_widget_set_sensitive(spin, active);
gtk_widget_set_sensitive(combo, active); gtk_widget_set_sensitive(combo, active);
if (active == 0) { 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) {
gtk_spin_button_set_digits(GTK_SPIN_BUTTON(spin), 0); gtk_spin_button_set_digits(GTK_SPIN_BUTTON(spin), 0);
} }
if (flag_cpu == 0) { if (flag_cpu == 0) {
@ -1547,7 +1551,10 @@ void philos_set_active_widgets_device_io(GtkWidget* combo_to_l2,GtkWidget *check
gboolean active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(check)); gboolean active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(check));
gtk_widget_set_sensitive(spin, active); gtk_widget_set_sensitive(spin, active);
gtk_widget_set_sensitive(combo, active); gtk_widget_set_sensitive(combo, active);
if (active == 0) { 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) {
gtk_spin_button_set_digits(GTK_SPIN_BUTTON(spin), 0); gtk_spin_button_set_digits(GTK_SPIN_BUTTON(spin), 0);
} }
} }

@ -39,10 +39,10 @@ edit_window *edit_setup_window(char* glade_path){
edit_widgets->chbEditWrite = yon_gtk_builder_get_widget(builder,"chbEditWrite"); edit_widgets->chbEditWrite = yon_gtk_builder_get_widget(builder,"chbEditWrite");
edit_widgets->cbtEditWrite = yon_gtk_builder_get_widget(builder,"cbtEditWrite"); edit_widgets->cbtEditWrite = yon_gtk_builder_get_widget(builder,"cbtEditWrite");
edit_widgets->entryEditCmd = yon_gtk_builder_get_widget(builder,"entryEditCmd"); edit_widgets->entryEditCmd = yon_gtk_builder_get_widget(builder,"entryEditCmd");
edit_config_init();
device_fill_disk(edit_widgets->cbtEditDevice); device_fill_disk(edit_widgets->cbtEditDevice);
// edit_event(edit_widgets); // edit_event(edit_widgets);
edit_localization(edit_widgets); edit_localization(edit_widgets);
edit_config_init();
} }
return edit_widgets; return edit_widgets;
} }
@ -194,20 +194,45 @@ char* edit_get_limit_swap() {
} }
// ================================================================= // =================================================================
void edit_set_select_device(char** str_value) { void edit_set_select_device(char*** str_value) {
if ((*str_value) == NULL) {
return;
}
if ((*str_value)[0] == NULL) {
return;
}
int index = yon_gtk_combo_box_text_find(edit_widgets->cbtEditDevice, (*str_value)[0]);
gtk_combo_box_set_active(GTK_COMBO_BOX(edit_widgets->cbtEditDevice), index);
//int index = yon_gtk_combo_box_text_find(edit_widgets->cbtEditDevice,str_value);
//gtk_combo_box_set_active(GTK_COMBO_BOX(edit_widgets->cbtEditDevice), index); }
} void edit_set_read_device(char*** str_value, int** pow_mem) {
void edit_set_read_device(char** str_value, int* pow_mem) { if ((*str_value) == NULL || (*pow_mem) == NULL) {
//edit_temp_set(str_value,pow_mem, edit_widgets->chbEditRead, return;
// edit_widgets->spinEditRead, }
// edit_widgets->cbtEditRead); if ((*str_value)[0] == NULL || (*pow_mem)[0] == -2) {
} return;
void edit_set_write_device(char** str_value, int* pow_mem) { }
// edit_temp_set(str_value,pow_mem, edit_widgets->chbEditWrite, edit_temp_set((*str_value)[0],(*pow_mem)[0], edit_widgets->chbEditRead,
// edit_widgets->spinEditWrite, edit_widgets->spinEditRead,
// edit_widgets->cbtEditWrite); edit_widgets->cbtEditRead);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(edit_widgets->chbEditRead), 1);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(edit_widgets->chbEditWrite), 1);
}
void edit_set_write_device(char*** str_value, int** pow_mem) {
if ((*str_value) == NULL || (*pow_mem) == NULL) {
return;
}
if ((*str_value)[0] == NULL || (*pow_mem)[0] == -2) {
return;
}
else {
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(edit_widgets->chbEditWrite), 1);
}
edit_temp_set((*str_value)[0],(*pow_mem)[0], edit_widgets->chbEditWrite,
edit_widgets->spinEditWrite,
edit_widgets->cbtEditWrite);
} }
void edit_set_soft(char* str_value, int pow_mem) { void edit_set_soft(char* str_value, int pow_mem) {
edit_temp_set(str_value,pow_mem, edit_widgets->chkSoftRestrictionEdit, edit_temp_set(str_value,pow_mem, edit_widgets->chkSoftRestrictionEdit,

@ -77,9 +77,9 @@ char* edit_get_limit_cpu();
char* edit_get_limit_swap(); char* edit_get_limit_swap();
void edit_generate_cmd(); void edit_generate_cmd();
void wrapper_edit_show(); void wrapper_edit_show();
void edit_set_select_device(char** str_value); void edit_set_select_device(char*** str_value);
void edit_set_read_device(char** str_value, int* pow_mem); void edit_set_read_device(char*** str_value, int** pow_mem);
void edit_set_write_device(char** str_value, int* pow_mem); void edit_set_write_device(char*** str_value, int** pow_mem);
void edit_set_soft(char* str_value, int pow_mem); void edit_set_soft(char* str_value, int pow_mem);
void edit_set_hard(char* str_value, int pow_mem); void edit_set_hard(char* str_value, int pow_mem);
void edit_set_limit_cpu(char* str_value, int pow_mem); void edit_set_limit_cpu(char* str_value, int pow_mem);

Loading…
Cancel
Save