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
+
+
+
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