diff --git a/source/ubl-settings-resourcequota.c b/source/ubl-settings-resourcequota.c index 202051b..c473973 100644 --- a/source/ubl-settings-resourcequota.c +++ b/source/ubl-settings-resourcequota.c @@ -414,7 +414,16 @@ void wrapper_edit_show() { GtkTreeModel *model = GTK_TREE_MODEL(main_config.list); GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->treeViewMain)); if(gtk_tree_selection_get_selected(selection, &model, &iter)) { + char* str_iter = gtk_tree_model_get_string_from_iter(model, &iter); + int index = atoi(str_iter); edit_show(NULL, glade_path); + edit_set_hard(main_config.hard_raw_limit[index]); + edit_set_limit_cpu(main_config.cpu_limit[index]); + edit_set_soft(main_config.soft_raw_limit[index]); + edit_set_write_device(main_config.i_o_limit_write[index]); + edit_set_read_device(main_config.i_o_limit_read[index]); + edit_set_limit_swap(main_config.swap[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); } } @@ -568,7 +577,6 @@ int main(int argc, char *argv[]){ filters_init_flag(); filters_setup_window(glade_path); add_setup_window(glade_path); - edit_setup_window(glade_path); main_localization(widgets); tree_view_select(NULL, widgets); event_all(widgets); diff --git a/source/view_edit.c b/source/view_edit.c index b620c62..4e52d7b 100644 --- a/source/view_edit.c +++ b/source/view_edit.c @@ -37,7 +37,6 @@ edit_window *edit_setup_window(char* glade_path){ edit_widgets->entryEditCmd = yon_gtk_builder_get_widget(builder,"entryEditCmd"); device_fill_disk(edit_widgets->cbtEditDevice); edit_event(edit_widgets); - edit_init_windows(); edit_localization(edit_widgets); } return edit_widgets; @@ -163,25 +162,49 @@ void edit_set_select_device(char* str_value) { } void edit_set_read_device(char* str_value) { - + edit_temp_set(str_value, edit_widgets->chbEditRead, + edit_widgets->spinEditRead, + edit_widgets->cbtEditRead); } void edit_set_write_device(char* str_value) { - + edit_temp_set(str_value, edit_widgets->chbEditWrite, + edit_widgets->spinEditWrite, + edit_widgets->cbtEditWrite); } void edit_set_soft(char* str_value) { - + edit_temp_set(str_value, edit_widgets->chkSoftRestrictionEdit, + edit_widgets->spiSevereRestrictionEdit, + edit_widgets->cmSevereRestrictionEdit); } void edit_set_hard(char* str_value) { - + edit_temp_set(str_value, edit_widgets->chkSevereRestrictionEdit, + edit_widgets->spinSevereRestrictionEdit, + edit_widgets->cmbSevereRestrictionEdit); } void edit_set_limit_cpu(char* str_value) { - char* search = "-"; - if (yon_char_find_count(str_value, search) != 0) { - gtk_spin_button_set_digits(GTK_SPIN_BUTTON(edit_widgets->spinCPULimitEdit), atoi(str_value)); - } + edit_temp_set(str_value, edit_widgets->chkCPULimitEdit, + edit_widgets->spinCPULimitEdit, + edit_widgets->lblCPULimitEdit); } void edit_set_limit_swap(char* str_value) { - + edit_temp_set(str_value, edit_widgets->chkPaddingFLEdit, + edit_widgets->spinPaddingFLEdit, + edit_widgets->cmbPaddingFLEdit); +} +void edit_temp_set(char* str_value, GtkWidget* cheek, GtkWidget* spin, GtkWidget* combo_box_text) { + char* search = "-"; + char* mem_size_pow = yon_char_new(str_value); + if (yon_char_find_count(mem_size_pow, search) == 0) { + int value = atoi(yon_char_divide_search(mem_size_pow, " ", -1)); + gtk_spin_button_set_value(GTK_SPIN_BUTTON(spin), value); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cheek), 1); + if (combo_box_text != NULL) { + // Todo: add code + } + } + else { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cheek), 0); + } } void edit_generate_cmd() { char* str_cmd = ""; diff --git a/source/view_edit.h b/source/view_edit.h index 05a8385..010a6e5 100644 --- a/source/view_edit.h +++ b/source/view_edit.h @@ -72,6 +72,6 @@ void edit_set_soft(char* str_value); void edit_set_hard(char* str_value); void edit_set_limit_cpu(char* str_value); void edit_set_limit_swap(char* str_value); - +void edit_temp_set(char* str_value, GtkWidget* cheek, GtkWidget* spin, GtkWidget* combo_box_text); #endif \ No newline at end of file