diff --git a/source/ubl-settings-resourcequota.c b/source/ubl-settings-resourcequota.c index 5032915..f4f5b53 100644 --- a/source/ubl-settings-resourcequota.c +++ b/source/ubl-settings-resourcequota.c @@ -277,6 +277,7 @@ void clear_array() { philos_free_string_array(&main_config.i_o_limit_read , main_config.size_tree_view); philos_free_string_array(&main_config.i_o_limit_write , main_config.size_tree_view); philos_free_string_array(&main_config.disk, main_config.size_tree_view); + philos_free_string_array(&main_config.array_del_line, main_config.size_array_del_line); main_config.size_array_del_line = 0; @@ -425,6 +426,7 @@ void str_split_value(char* values, int index) { void set_pow_size(char* str_find, int** array_size, char*** array_data , int index) { char* disk = NULL; + if (strstr(str_find,"\"") != NULL) { yon_char_divide(str_find, 0); size_t length = strlen(str_find); @@ -456,8 +458,11 @@ void set_pow_size(char* str_find, int** array_size, char*** array_data , int ind index--; } else if (strstr(str_find,"T") != NULL) { + puts(str_find); *array_size = philos_int_append(*array_size, &index, 3); + printf("%d\n\n", (*array_size)[index-1]); str_find = yon_char_divide(str_find, length-1); + str_find = yon_char_unite(str_find," ", STR_TB, NULL); index--; } @@ -710,6 +715,7 @@ void wrapper_edit_show() { 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_event(get_widget_edit()); + edit_init_windows(); edit_set_limit_swap(main_config.swap[index], main_config.swap_size[index]); // 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); @@ -737,7 +743,7 @@ void tree_view_del_line() { g_object_ref(main_config.list); gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->treeViewMain), NULL); gtk_list_store_clear(main_config.list); - char* key_del = save_format_key(main_config.size_tree_view-1); + char* key_del = save_format_key(index); if (key_del != NULL) { main_config.array_del_line = yon_char_parsed_append(main_config.array_del_line, &main_config.size_array_del_line, yon_char_new(key_del)); free(key_del); @@ -776,6 +782,7 @@ void tree_view_del_line() { main_config.i_o_limit_write_size = remove_element_int_array(main_config.i_o_limit_write_size, &main_config.size_tree_view,index); main_fill_tree_view_after_remove(); gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->treeViewMain), model); + free(str_iter); } } void wrapper_all_save() { @@ -873,7 +880,7 @@ int check_save(dictionary* load_cfg) { size_t size_cfg_gui = yon_dict_len(main_config.save_cfg_gui); size_t size_cfg_load = yon_dict_len(load_cfg); if (size_cfg_gui!=size_cfg_load) { - return 1; + return 0; } for_dictionaries(ptr_dict_gui, main_config.save_cfg_gui) { for_dictionaries(ptr_dict_load, load_cfg) { @@ -893,13 +900,13 @@ int check_save(dictionary* load_cfg) { } } if (flag_check_key == 0 || flag_check_value == 0) { - return 1; + return 0; } } return 0; } int template_format_str_save(dictionary* load_cfg, char* source_set_cmd, char* source_remove_cmd) { - char* cmd_remove = template_format_str_remove_save(source_remove_cmd); + char* cmd_remove = template_format_str_remove_save(load_cfg, source_remove_cmd); char* cmd_set = template_format_str_set_save(load_cfg, source_set_cmd); if (cmd_set != NULL && cmd_remove != NULL) { yon_config_save(yon_char_unite(cmd_set, "; " , cmd_remove, NULL)); @@ -926,30 +933,26 @@ char* template_format_str_set_save(dictionary* load_cfg, char* source_set_cmd) { yon_dictionary_free_all(main_config.save_cfg_gui, NULL); char* cmd = yon_char_new(source_set_cmd); main_config.save_cfg_gui = yon_dictionary_create_empty(); - if (check_save(load_cfg)) { - return NULL; - } int flag_save = 0; for (size_t index = 0; index < main_config.size_tree_view; index++) { char* key = NULL; char* value = NULL; - key = save_format_key(index); - value = save_format_value(index); + key = yon_char_new(save_format_key(index)); + value = yon_char_new(save_format_value(index)); main_config.save_cfg_gui = yon_dictionary_create_with_data_connected(main_config.save_cfg_gui, key, yon_char_new(value)); if (key != NULL && value != NULL) { - if (check_save(load_cfg) == 1) { - cmd = yon_char_unite(cmd, " " , key, "=" , value, " ", NULL); - flag_save = 1; - } + cmd = yon_char_unite(cmd, " " , key, "=" , value, NULL); + flag_save = 1; } if (key != NULL) { free(key); } - if (value != NULL) { + else if (value != NULL) { free(value); } } - if (flag_save) { + + if (flag_save && check_save(load_cfg)== 0) { return cmd; } free(cmd); @@ -957,7 +960,7 @@ char* template_format_str_set_save(dictionary* load_cfg, char* source_set_cmd) { } -char* template_format_str_remove_save(char* source_remove_cmd) { +char* template_format_str_remove_save(dictionary* load_cfg, char* source_remove_cmd) { char* cmd = yon_char_new(source_remove_cmd); int flag_save = 0; if (main_config.size_array_del_line == 0) { @@ -966,13 +969,13 @@ char* template_format_str_remove_save(char* source_remove_cmd) { for (size_t index = 0; index < main_config.size_array_del_line; index++) { char* key = main_config.array_del_line[index]; if (key != NULL) { - puts(key); cmd = yon_char_unite(cmd, " " , key, " ", NULL); flag_save = 1; - free(key); } } if (flag_save) { + philos_free_string_array(&main_config.array_del_line, main_config.size_array_del_line); + main_config.size_array_del_line = 0; return cmd; } free(cmd); diff --git a/source/ubl-settings-resourcequota.h b/source/ubl-settings-resourcequota.h index 3fecee3..4cb3ddc 100755 --- a/source/ubl-settings-resourcequota.h +++ b/source/ubl-settings-resourcequota.h @@ -209,6 +209,6 @@ void wrapper_system_save(); void wrapper_global_save(); void wrapper_all_save(); int template_format_str_save(dictionary *load_cfg, char *source_cmd, char* source_remove_cmd); -char* template_format_str_remove_save(char* source_remove_cmd); +char* template_format_str_remove_save(dictionary* load_cfg, char* source_remove_cmd); char* template_format_str_set_save(dictionary* load_cfg, char* source_set_cmd); char* save_format_key(int index); \ No newline at end of file diff --git a/source/ubl-utils.c b/source/ubl-utils.c index dc48c14..040c58c 100644 --- a/source/ubl-utils.c +++ b/source/ubl-utils.c @@ -631,7 +631,7 @@ char* philos_format_cfg_str_size_memory(char* str_key, char* str_source_value, i return yon_char_unite(str_key, "=" , str_value, "%" ,NULL); } else { - return yon_char_unite(str_key, "=" , str_value, "error" ,NULL); + return yon_char_unite(str_key, "=" , str_value, "-" ,NULL); } } @@ -1045,7 +1045,7 @@ int* philos_int_append(int* array, int* size, int value) { int* remove_element_int_array(int* array, int* size, int item_to_delete) { int *new_int_parsed=NULL; - new_int_parsed=malloc(sizeof(int*)*((*size)-1)); + new_int_parsed=malloc(sizeof(int)*((*size)-1)); int flag = 0; for (int i=0;i < (*size);i++){ if (i==item_to_delete) { @@ -1055,7 +1055,7 @@ int* remove_element_int_array(int* array, int* size, int item_to_delete) { memcpy(&(new_int_parsed[i]),&(array[i]),sizeof(int)); } else if (flag == 1 && i!=item_to_delete) { - memcpy(&(new_int_parsed[i]),&(array[i-1]),sizeof(int)); + memcpy(&(new_int_parsed[i-1]),&(array[i]),sizeof(int)); } } (*size)=(*size)-1; diff --git a/source/view_add.c b/source/view_add.c index ed2dbbb..41c9f69 100644 --- a/source/view_add.c +++ b/source/view_add.c @@ -108,11 +108,15 @@ void add_set_active_widgets_device_io(GtkWidget *self, GtkWidget *entry, GtkWidg gboolean active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self)); gtk_widget_set_sensitive(entry, active); gtk_widget_set_sensitive(label, active); + if (active == 0) { + gtk_spin_button_set_digits(GTK_SPIN_BUTTON(entry), 0); + } } else { gtk_widget_set_sensitive(entry, 0); gtk_widget_set_sensitive(label, 0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self), 0); + gtk_spin_button_set_digits(GTK_SPIN_BUTTON(entry), 0); } } @@ -120,6 +124,9 @@ void add_set_active_widgets(GtkWidget *self, GtkWidget *entry, GtkWidget *label) gboolean active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self)); gtk_widget_set_sensitive(entry, active); gtk_widget_set_sensitive(label, active); + if (active == 0) { + gtk_spin_button_set_digits(GTK_SPIN_BUTTON(entry), 0); + } } void add_localization(add_window *widgets) { diff --git a/source/view_edit.c b/source/view_edit.c index adf23d1..6b0a57f 100644 --- a/source/view_edit.c +++ b/source/view_edit.c @@ -38,7 +38,6 @@ edit_window *edit_setup_window(char* glade_path){ device_fill_disk(edit_widgets->cbtEditDevice); // edit_event(edit_widgets); edit_localization(edit_widgets); - edit_init_windows(); } return edit_widgets; } @@ -109,6 +108,9 @@ void edit_set_active_widgets(GtkWidget *self, GtkWidget *entry, GtkWidget *label gboolean active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self)); gtk_widget_set_sensitive(entry, active); gtk_widget_set_sensitive(label, active); + if (active == 0) { + gtk_spin_button_set_digits(GTK_SPIN_BUTTON(entry), 0); + } } void edit_set_active_widgets_device_io(GtkWidget *self, GtkWidget *entry, GtkWidget *label) { @@ -117,13 +119,18 @@ void edit_set_active_widgets_device_io(GtkWidget *self, GtkWidget *entry, GtkWid gboolean active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self)); gtk_widget_set_sensitive(entry, active); gtk_widget_set_sensitive(label, active); + if (active == 0) { + gtk_spin_button_set_digits(GTK_SPIN_BUTTON(entry), 0); + } } else { gtk_widget_set_sensitive(entry, 0); gtk_widget_set_sensitive(label, 0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self), 0); + gtk_spin_button_set_digits(GTK_SPIN_BUTTON(entry), 0); } + } char* edit_get_select_device() { char* text = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(edit_widgets->cbtEditDevice)); diff --git a/ubl-settings-resourcequota.pot b/ubl-settings-resourcequota.pot index d6d9317..16f7dde 100644 --- a/ubl-settings-resourcequota.pot +++ b/ubl-settings-resourcequota.pot @@ -17,6 +17,9 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +msgid "Remove" +msgstr "" + msgid "User" msgstr "" diff --git a/ubl-settings-resourcequota_ru.po b/ubl-settings-resourcequota_ru.po index 8f1180f..2c9df12 100644 --- a/ubl-settings-resourcequota_ru.po +++ b/ubl-settings-resourcequota_ru.po @@ -250,6 +250,9 @@ msgstr "Сохранить глобальную конфигурацию" msgid "Global configuration write error" msgstr "Сохранить глобальную конфигурацию" +msgid "Remove" +msgstr "Удалить" + msgid "Nothing to save!" msgstr "Нечего сохранять!"