Исправлен баг с выбором блочных устройств при добавление

pull/4/head
Igor Belitskiy 2 years ago
parent fe494e3321
commit a9ac7370c6

@ -836,12 +836,11 @@ void wrapper_edit_show() {
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_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_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_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());
g_signal_connect(G_OBJECT(get_widget_edit()->btnSaveTempSave), "clicked", G_CALLBACK(main_edit_btn_save), NULL); g_signal_connect(G_OBJECT(get_widget_edit()->btnSaveTempSave), "clicked", G_CALLBACK(main_edit_btn_save), NULL);
@ -1017,7 +1016,6 @@ char* add_io_str_format_ubconfig(char* cmd_io, char* key, int** i_o_limit, int
else if (i==0 && strlen(cmd_io) > 3) { else if (i==0 && strlen(cmd_io) > 3) {
cmd_io = yon_char_unite(cmd_io, ",", key, "=", NULL); cmd_io = yon_char_unite(cmd_io, ",", key, "=", NULL);
} }
puts(cmd_io);
int read_limit = i_o_limit[index][i]; int read_limit = i_o_limit[index][i];
char* read_disk = disk[index][i]; char* read_disk = disk[index][i];
int read_limit_size = i_o_limit_size[index][i]; int read_limit_size = i_o_limit_size[index][i];
@ -1078,7 +1076,7 @@ char* template_format_str_set_save(dictionary* load_cfg, char* source_set_cmd) {
key = yon_char_new(save_format_key(index)); key = yon_char_new(save_format_key(index));
value = yon_char_new(save_format_value(index)); value = yon_char_new(save_format_value(index));
if (key != NULL && value != NULL) { if (key != NULL && value != NULL) {
cmd = yon_char_unite(cmd, " " , key, "=\"" , value, "\"\n", NULL); cmd = yon_char_unite(cmd, " " , key, "=\"" , value, "\" ", NULL);
puts(cmd); puts(cmd);
flag_save = 1; flag_save = 1;
} }
@ -1091,6 +1089,7 @@ char* template_format_str_set_save(dictionary* load_cfg, char* source_set_cmd) {
} }
if (flag_save && check_save(load_cfg)== 0) { if (flag_save && check_save(load_cfg)== 0) {
cmd = yon_char_unite(cmd, "\"", NULL);
return cmd; return cmd;
} }
free(cmd); free(cmd);

@ -43,7 +43,7 @@
#define CMD_GET_GROUP "cut -d: -f1 /etc/group" #define CMD_GET_GROUP "cut -d: -f1 /etc/group"
typedef char *string; typedef char *string;
string version_application = "1.2-45-g1c055b0"; string version_application = "1.2-46-gfe494e3";
static char *local; static char *local;

@ -1299,7 +1299,7 @@ void philos_temp_generate_cmd(temp_set_window *widgets, temp_config* _config) {
} }
puts(str_cmd);
gtk_entry_set_text(GTK_ENTRY(widgets->entryTempCmd), str_cmd); gtk_entry_set_text(GTK_ENTRY(widgets->entryTempCmd), str_cmd);
free(split_simvol); free(split_simvol);
} }
@ -1364,10 +1364,7 @@ void philos_update_device_to_entry(temp_set_window *widgets, temp_config* _confi
break; break;
} }
} }
printf("%d\n", index_find);
if (index_find != -1) { if (index_find != -1) {
printf("%d\n", _config->i_o_limit_read[index_find]);
if (flag_check_array==0) { if (flag_check_array==0) {
if (_config->i_o_limit_read[index_find]==-2 || _config->i_o_limit_read[index_find]==-1) { if (_config->i_o_limit_read[index_find]==-2 || _config->i_o_limit_read[index_find]==-1) {
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->chbTempRead), 0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->chbTempRead), 0);
@ -1486,6 +1483,7 @@ void philos_temp_add_disk(temp_set_window *widgets, temp_config* _config){
_config->i_o_limit_write_size[index_find] = -1; _config->i_o_limit_write_size[index_find] = -1;
_config->i_o_limit_write[index_find] = -1; _config->i_o_limit_write[index_find] = -1;
} }
} }
} }
else { else {

@ -79,8 +79,22 @@ void event_check_io_device() {
} }
void combo_box_device() { void combo_box_device() {
g_signal_handlers_block_by_func(G_OBJECT(add_widgets->cbtTempDevice), G_CALLBACK(combo_box_device), NULL);
g_signal_handlers_block_by_func(G_OBJECT(add_widgets->cbtTempRead), G_CALLBACK(event_check_io_device), NULL);
g_signal_handlers_block_by_func(G_OBJECT(add_widgets->cbtTempWrite), G_CALLBACK(event_check_io_device), NULL);
g_signal_handlers_block_by_func(G_OBJECT(add_widgets->spinTempRead), G_CALLBACK(event_check_io_device), NULL);
g_signal_handlers_block_by_func(G_OBJECT(add_widgets->spinTempWrite), G_CALLBACK(event_check_io_device), NULL);
g_signal_handlers_block_by_func(G_OBJECT(add_widgets->chbTempRead), G_CALLBACK(event_check_io_device), NULL);
g_signal_handlers_block_by_func(G_OBJECT(add_widgets->chbTempWrite), G_CALLBACK(event_check_io_device), NULL);
philos_update_device_to_entry(add_widgets, &obj_add_config, 0); philos_update_device_to_entry(add_widgets, &obj_add_config, 0);
philos_update_device_to_entry(add_widgets, &obj_add_config, 1); philos_update_device_to_entry(add_widgets, &obj_add_config, 1);
g_signal_handlers_unblock_by_func(G_OBJECT(add_widgets->cbtTempDevice), G_CALLBACK(combo_box_device), NULL);
g_signal_handlers_unblock_by_func(G_OBJECT(add_widgets->cbtTempRead), G_CALLBACK(event_check_io_device), NULL);
g_signal_handlers_unblock_by_func(G_OBJECT(add_widgets->cbtTempWrite), G_CALLBACK(event_check_io_device), NULL);
g_signal_handlers_unblock_by_func(G_OBJECT(add_widgets->spinTempRead), G_CALLBACK(event_check_io_device), NULL);
g_signal_handlers_unblock_by_func(G_OBJECT(add_widgets->spinTempWrite), G_CALLBACK(event_check_io_device), NULL);
g_signal_handlers_unblock_by_func(G_OBJECT(add_widgets->chbTempRead), G_CALLBACK(event_check_io_device), NULL);
g_signal_handlers_unblock_by_func(G_OBJECT(add_widgets->chbTempWrite), G_CALLBACK(event_check_io_device), NULL);
} }
void add_event(temp_set_window *widgets) { void add_event(temp_set_window *widgets) {
@ -155,7 +169,8 @@ void add_show(GtkWidget *self, char* glade_path) {
char* add_get_select_device_to_level_2() { char* add_get_select_device_to_level_2() {
char* text = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbxTempQuotaLevel2)); char* text = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbxTempQuotaLevel2));
if (text != NULL) { int disk_id = gtk_combo_box_get_active(GTK_COMBO_BOX(add_widgets->cbxTempQuotaLevel2));
if (disk_id != -1) {
return text; return text;
} }
else { else {
@ -187,8 +202,11 @@ int** add_get_write_device_size_pow() {
return &obj_add_config.i_o_limit_write_size; return &obj_add_config.i_o_limit_write_size;
} }
char*** add_get_select_device() { char*** add_get_select_device() {
if (obj_add_config.size == 0) {
obj_add_config.disk = yon_char_parsed_append(obj_add_config.disk,&obj_add_config.size, "-");
}
obj_add_config.disk = yon_char_parsed_append(obj_add_config.disk,&obj_add_config.size, NULL); obj_add_config.disk = yon_char_parsed_append(obj_add_config.disk,&obj_add_config.size, NULL);
obj_add_config.size--; obj_add_config.size-=2;
return &obj_add_config.disk; return &obj_add_config.disk;
} }

@ -119,6 +119,7 @@ void wrapper_edit_init_windows_size_memory(GtkWidget *spin) {
} }
philos_set_active_widgets_device_io(edit_widgets->cbtTempDevice,edit_widgets->chbTempWrite, edit_widgets->spinTempWrite, edit_widgets->cbtTempWrite); philos_set_active_widgets_device_io(edit_widgets->cbtTempDevice,edit_widgets->chbTempWrite, edit_widgets->spinTempWrite, edit_widgets->cbtTempWrite);
philos_set_active_widgets_device_io(edit_widgets->cbtTempDevice,edit_widgets->chbTempRead, edit_widgets->spinTempRead, edit_widgets->cbtTempRead); philos_set_active_widgets_device_io(edit_widgets->cbtTempDevice,edit_widgets->chbTempRead, edit_widgets->spinTempRead, edit_widgets->cbtTempRead);
philos_temp_add_disk(edit_widgets, &obj_edit_config); philos_temp_add_disk(edit_widgets, &obj_edit_config);
philos_temp_del_disk(edit_widgets, &obj_edit_config); philos_temp_del_disk(edit_widgets, &obj_edit_config);
edit_init_windows(); edit_init_windows();
@ -135,8 +136,22 @@ void edit_init_windows() {
} }
void combo_box_device_edit() { void combo_box_device_edit() {
g_signal_handlers_block_by_func(G_OBJECT(edit_widgets->cbtTempDevice), G_CALLBACK(combo_box_device_edit), NULL);
g_signal_handlers_block_by_func(G_OBJECT(edit_widgets->cbtTempRead), G_CALLBACK(wrapper_edit_init_windows_size_memory), NULL);
g_signal_handlers_block_by_func(G_OBJECT(edit_widgets->cbtTempWrite), G_CALLBACK(wrapper_edit_init_windows_size_memory), NULL);
g_signal_handlers_block_by_func(G_OBJECT(edit_widgets->spinTempRead), G_CALLBACK(wrapper_edit_init_windows_size_memory), NULL);
g_signal_handlers_block_by_func(G_OBJECT(edit_widgets->spinTempWrite), G_CALLBACK(wrapper_edit_init_windows_size_memory), NULL);
g_signal_handlers_block_by_func(G_OBJECT(edit_widgets->chbTempRead), G_CALLBACK(wrapper_edit_init_windows_size_memory), NULL);
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, 0);
philos_update_device_to_entry(edit_widgets, &obj_edit_config, 1); philos_update_device_to_entry(edit_widgets, &obj_edit_config, 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);
g_signal_handlers_unblock_by_func(G_OBJECT(edit_widgets->spinTempRead), G_CALLBACK(wrapper_edit_init_windows_size_memory), NULL);
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);
} }
int edit_get_soft_size() { int edit_get_soft_size() {
@ -285,10 +300,10 @@ void edit_set_limit_swap(int value, int pow_mem) {
edit_widgets->cmbPaddingFLTemp); edit_widgets->cmbPaddingFLTemp);
} }
void edit_temp_set(int value, int pow_mem, GtkWidget* cheek, GtkWidget* spin, GtkWidget* combo_box_text) { void edit_temp_set(int value, int pow_mem, GtkWidget* cheek, GtkWidget* spin, GtkWidget* combo_box_text) {
if (pow_mem!=-3 && pow_mem>=-1 && value>=1) { if (pow_mem!=-3 && pow_mem>=-1 && value>=0) {
gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), value); gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), value);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cheek), 1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cheek), 1);
if (combo_box_text != NULL) { if (combo_box_text) {
gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box_text), pow_mem); gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box_text), pow_mem);
} }
} }

@ -1936,6 +1936,7 @@
<child> <child>
<object class="GtkComboBoxText" id="cbtEditDevice"> <object class="GtkComboBoxText" id="cbtEditDevice">
<property name="visible">True</property> <property name="visible">True</property>
<property name="app-paintable">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-left">5</property> <property name="margin-left">5</property>
<property name="margin-right">5</property> <property name="margin-right">5</property>

Loading…
Cancel
Save