Сделал добавление квот в treeView

pull/2/head
Igor Belitskiy 2 years ago
parent c292423033
commit 2c9c5cc172

@ -112,6 +112,7 @@ void config_init(){
main_config.lock_load_global=0; main_config.lock_load_global=0;
main_config.lock_save_global=0; main_config.lock_save_global=0;
main_config.lock_save_local=0; main_config.lock_save_local=0;
main_config.size_tree_view = 0;
} }
main_window *setup_window(){ main_window *setup_window(){
@ -134,6 +135,7 @@ main_window *setup_window(){
widgets->btnMainShowAllEmpty = yon_gtk_builder_get_widget(builder,"btnMainShowAllEmpty"); widgets->btnMainShowAllEmpty = yon_gtk_builder_get_widget(builder,"btnMainShowAllEmpty");
widgets->btnMainShowCoreStream = yon_gtk_builder_get_widget(builder,"btnMainShowCoreStream"); widgets->btnMainShowCoreStream = yon_gtk_builder_get_widget(builder,"btnMainShowCoreStream");
main_config.list = GTK_LIST_STORE(gtk_builder_get_object(builder, "liststore"));
widgets->vteInformation = yon_gtk_builder_get_widget(builder,"vteInformation"); widgets->vteInformation = yon_gtk_builder_get_widget(builder,"vteInformation");
widgets->vteDispatcher = yon_gtk_builder_get_widget(builder,"vteDispatcher"); widgets->vteDispatcher = yon_gtk_builder_get_widget(builder,"vteDispatcher");
widgets->vteProcesses = yon_gtk_builder_get_widget(builder,"vteProcesses"); widgets->vteProcesses = yon_gtk_builder_get_widget(builder,"vteProcesses");
@ -302,36 +304,35 @@ void tree_view_select(GtkWidget *self, main_window *widgets) {
} }
} }
void wrapper_tree_view_add(GtkWidget *self, main_window *widgets){
yon_ubl_status_box_render(STR_QUOTAS_ADD, BACKGROUND_IMAGE_FAIL_TYPE);
add_show(NULL, glade_path);
}
void tree_view_add(int index) { void tree_view_add(int index) {
yon_char_parsed_append(main_config.type_quota, &main_config.size_tree_view, add_get_quota_object()); main_config.type_quota= yon_char_parsed_append(main_config.type_quota, &main_config.size_tree_view, add_get_quota_object());
char* text = " "; char* text = " ";
yon_char_parsed_append(main_config.quota_volume, &main_config.size_tree_view, text ); main_config.size_tree_view--;
yon_char_parsed_append(main_config.soft_raw_limit, &main_config.size_tree_view, add_get_soft()); main_config.quota_volume = yon_char_parsed_append(main_config.quota_volume, &main_config.size_tree_view, text );
yon_char_parsed_append(main_config.hard_raw_limit, &main_config.size_tree_view, add_get_hard()); main_config.size_tree_view--;
yon_char_parsed_append(main_config.swap, &main_config.size_tree_view, add_get_limit_swap()); main_config.soft_raw_limit = yon_char_parsed_append(main_config.soft_raw_limit, &main_config.size_tree_view, add_get_soft());
yon_char_parsed_append(main_config.cpu_limit, &main_config.size_tree_view, add_get_limit_cpu()); main_config.size_tree_view--;
yon_char_parsed_append(main_config.i_o_limit_read, &main_config.size_tree_view, add_get_read_device()); main_config.hard_raw_limit = yon_char_parsed_append(main_config.hard_raw_limit, &main_config.size_tree_view, add_get_hard());
yon_char_parsed_append(main_config.i_o_limit_write, &main_config.size_tree_view, add_get_write_device()); main_config.size_tree_view--;
main_config.swap = yon_char_parsed_append(main_config.swap, &main_config.size_tree_view, add_get_limit_swap());
main_config.size_tree_view--;
main_config.cpu_limit = yon_char_parsed_append(main_config.cpu_limit, &main_config.size_tree_view, add_get_limit_cpu());
main_config.size_tree_view--;
main_config.i_o_limit_read = yon_char_parsed_append(main_config.i_o_limit_read, &main_config.size_tree_view, add_get_read_device());
main_config.size_tree_view--;
main_config.i_o_limit_write = yon_char_parsed_append(main_config.i_o_limit_write, &main_config.size_tree_view, add_get_write_device());
GtkTreeIter iter; GtkTreeIter iter;
gtk_list_store_append(main_config.list,&iter); gtk_list_store_append(main_config.list,&iter);
gtk_list_store_set(main_config.list,&iter,main_config.type_quota[index], gtk_list_store_set(main_config.list,&iter,0,main_config.type_quota[index],
main_config.quota_volume[index], 1,main_config.quota_volume[index],
main_config.soft_raw_limit[index], 2,main_config.soft_raw_limit[index],
main_config.hard_raw_limit[index], 3,main_config.hard_raw_limit[index],
main_config.swap[index], 4,main_config.swap[index],
main_config.cpu_limit[index], 5,main_config.cpu_limit[index],
main_config.i_o_limit_read[index], 6,main_config.i_o_limit_read[index],
main_config.i_o_limit_write[index]); 7,main_config.i_o_limit_write[index],-1);
} }
void tree_view_edit(int index) { void tree_view_edit(int index) {
char* text = " ";
main_config.type_quota[index] = edit_get_quota_object();
main_config.quota_volume[index] = text;
main_config.soft_raw_limit[index] = edit_get_soft(); main_config.soft_raw_limit[index] = edit_get_soft();
main_config.hard_raw_limit[index] = edit_get_hard(); main_config.hard_raw_limit[index] = edit_get_hard();
main_config.swap[index] = edit_get_limit_swap(); main_config.swap[index] = edit_get_limit_swap();
@ -410,7 +411,7 @@ void main_event(main_window *widgets) {
g_signal_connect(G_OBJECT(widgets->AboutMenuItem),"activate",G_CALLBACK(on_about),NULL); g_signal_connect(G_OBJECT(widgets->AboutMenuItem),"activate",G_CALLBACK(on_about),NULL);
g_signal_connect(G_OBJECT(widgets->btnShowFilters),"clicked",G_CALLBACK(wrapper_filters_show), NULL); g_signal_connect(G_OBJECT(widgets->btnShowFilters),"clicked",G_CALLBACK(wrapper_filters_show), NULL);
g_signal_connect(G_OBJECT(widgets->btnAdd),"clicked",G_CALLBACK(wrapper_tree_view_add), widgets); g_signal_connect(G_OBJECT(widgets->btnAdd),"clicked",G_CALLBACK(wrapper_add_show), glade_path);
g_signal_connect(G_OBJECT(widgets->btnEdit),"clicked",G_CALLBACK(edit_show), glade_path); g_signal_connect(G_OBJECT(widgets->btnEdit),"clicked",G_CALLBACK(edit_show), glade_path);
g_signal_connect(G_OBJECT(widgets->btnInfo),"clicked",G_CALLBACK(info_show), glade_path); g_signal_connect(G_OBJECT(widgets->btnInfo),"clicked",G_CALLBACK(info_show), glade_path);
g_signal_connect(G_OBJECT(widgets->btnUpdateDispatcher),"clicked",G_CALLBACK(main_update_dispatcher), NULL); g_signal_connect(G_OBJECT(widgets->btnUpdateDispatcher),"clicked",G_CALLBACK(main_update_dispatcher), NULL);
@ -429,6 +430,15 @@ void main_event(main_window *widgets) {
g_signal_connect(G_OBJECT(widgets->SaveLocalMenuItem),"activate",G_CALLBACK(),NULL); g_signal_connect(G_OBJECT(widgets->SaveLocalMenuItem),"activate",G_CALLBACK(),NULL);
*/ */
} }
void wrapper_add_show(GtkWidget *self) {
add_show(NULL, glade_path);
g_signal_connect(G_OBJECT(get_widget_add()->btnSaveAddSave), "clicked", G_CALLBACK(main_add_btn_save), NULL);
}
void main_add_btn_save() {
tree_view_add(main_config.size_tree_view);
add_on_destroy_subwindow(get_widget_add()->Window);
}
void wrapper_filters_show(GtkWidget *self) { void wrapper_filters_show(GtkWidget *self) {
filters_show(self, glade_path); filters_show(self, glade_path);
g_signal_connect(G_OBJECT(get_widget_filters()->btnFiltersSave),"clicked",G_CALLBACK(main_visible_columns), NULL); g_signal_connect(G_OBJECT(get_widget_filters()->btnFiltersSave),"clicked",G_CALLBACK(main_visible_columns), NULL);

@ -53,7 +53,6 @@ typedef struct {
int lock_load_global; int lock_load_global;
GtkListStore *list; GtkListStore *list;
GtkListStore *list2;
render_data status_render; render_data status_render;
config_str type_quota; config_str type_quota;
config_str quota_volume; config_str quota_volume;
@ -153,5 +152,6 @@ void main_cbx_2_event();
void tree_view_delete(GtkWidget *self, main_window *widgets); void tree_view_delete(GtkWidget *self, main_window *widgets);
void tree_view_select(GtkWidget *self, main_window *widgets); void tree_view_select(GtkWidget *self, main_window *widgets);
void tree_view_add(int index); void tree_view_add(int index);
void wrapper_tree_view_add(GtkWidget *self, main_window *widgets);
void tree_view_edit(int index); void tree_view_edit(int index);
void main_add_btn_save();
void wrapper_add_show(GtkWidget *self);

@ -964,8 +964,7 @@ char* philos_get_size_bite(GtkWidget* chk_button, GtkWidget* spin, GtkWidget* co
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(chk_button))) { if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(chk_button))) {
char* size_prifics = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(combo_box_text)); char* size_prifics = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(combo_box_text));
int size_bite = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spin)); int size_bite = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spin));
char* str_size_bite = yon_char_from_int(size_bite); char* str_size_bute = yon_char_unite(yon_char_from_int(size_bite), " ", size_prifics, NULL);
char* str_size_bute = yon_char_unite(str_size_bite, " ", str_size_bite, NULL);
return str_size_bute; return str_size_bute;
} }
else { else {

@ -55,7 +55,7 @@ void add_init_windows() {
} }
void add_event(add_window *widgets) { void add_event(add_window *widgets) {
g_signal_connect(G_OBJECT(widgets->btnAddCancel),"clicked",G_CALLBACK(add_on_hide_subwindow),NULL); g_signal_connect(G_OBJECT(widgets->btnAddCancel),"clicked",G_CALLBACK(add_on_destroy_subwindow),NULL);
g_signal_connect(G_OBJECT(widgets->Window), "destroy", G_CALLBACK(add_destroy), NULL); g_signal_connect(G_OBJECT(widgets->Window), "destroy", G_CALLBACK(add_destroy), NULL);
g_signal_connect(G_OBJECT(widgets->chkSoftRestrictionAdd), "toggled", G_CALLBACK(add_init_windows), NULL); g_signal_connect(G_OBJECT(widgets->chkSoftRestrictionAdd), "toggled", G_CALLBACK(add_init_windows), NULL);
g_signal_connect(G_OBJECT(widgets->chkSevereRestrictionAdd), "toggled", G_CALLBACK(add_init_windows), NULL); g_signal_connect(G_OBJECT(widgets->chkSevereRestrictionAdd), "toggled", G_CALLBACK(add_init_windows), NULL);
@ -80,7 +80,7 @@ void add_localization(add_window *widgets) {
} }
void add_on_hide_subwindow(GtkWidget *self) { void add_on_destroy_subwindow(GtkWidget *self) {
gtk_widget_destroy(gtk_widget_get_toplevel(self)); gtk_widget_destroy(gtk_widget_get_toplevel(self));
add_widgets = NULL; add_widgets = NULL;
@ -91,30 +91,42 @@ add_window *get_widget_add() {
} }
void add_show(GtkWidget *self, char* glade_path) { void add_show(GtkWidget *self, char* glade_path) {
add_update_combo_box();
if (add_widgets != NULL) { if (add_widgets != NULL) {
add_update_combo_box();
gtk_widget_show_all(add_widgets->Window); gtk_widget_show_all(add_widgets->Window);
} }
else { else {
add_setup_window(glade_path); add_setup_window(glade_path);
add_update_combo_box();
gtk_widget_show_all(add_widgets->Window); gtk_widget_show_all(add_widgets->Window);
} }
} }
char* add_get_select_device() { char* add_get_select_device() {
return gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbtAddDevice)); char* text = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbtAddDevice));
if (text != NULL) {
return text;
}
else {
char* str = (char*)malloc(sizeof(char*)*2);
str[0] = '-';
str[1] = '\0';
return str;
}
} }
char* add_get_read_device() { char* add_get_read_device() {
return philos_get_size_bite(add_widgets->chbAddRead, add_widgets->spiSevereRestrictionAdd, return philos_get_size_bite(add_widgets->chbAddRead, add_widgets->spinAddRead,
add_widgets->cmSevereRestrictionAdd); add_widgets->cbtAddRead);
} }
char* add_get_write_device() { char* add_get_write_device() {
return philos_get_size_bite(add_widgets->chbAddWrite, add_widgets->spinAddRead, return philos_get_size_bite(add_widgets->chbAddWrite, add_widgets->spinAddWrite,
add_widgets->cbtAddRead); add_widgets->cbtAddWrite);
} }
char* add_get_soft() { char* add_get_soft() {
return philos_get_size_bite(add_widgets->chkSoftRestrictionAdd, add_widgets->spinAddWrite, return philos_get_size_bite(add_widgets->chkSoftRestrictionAdd, add_widgets->spiSevereRestrictionAdd,
add_widgets->cbtAddWrite); add_widgets->cmSevereRestrictionAdd);
} }
char* add_get_hard() { char* add_get_hard() {
return philos_get_size_bite(add_widgets->chkSevereRestrictionAdd, add_widgets->spinSevereRestrictionAdd, return philos_get_size_bite(add_widgets->chkSevereRestrictionAdd, add_widgets->spinSevereRestrictionAdd,
@ -133,8 +145,8 @@ char* add_get_limit_cpu() {
} }
} }
char* add_get_limit_swap() { char* add_get_limit_swap() {
return philos_get_size_bite(add_widgets->spinPaddingFLAdd, add_widgets->spinPaddingFLAdd, return philos_get_size_bite(add_widgets->chkPaddingFLAdd, add_widgets->spinPaddingFLAdd,
add_widgets->spinPaddingFLAdd); add_widgets->cmbPaddingFLAdd);
} }
char* add_get_quota_object() { char* add_get_quota_object() {
return gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbxAddQuotaObj)); return gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(add_widgets->cbxAddQuotaObj));

@ -51,7 +51,7 @@ typedef struct {
add_window *add_setup_window(char* glade_path); add_window *add_setup_window(char* glade_path);
void add_event(add_window *widgets); void add_event(add_window *widgets);
void add_localization(add_window *widgets); void add_localization(add_window *widgets);
void add_on_hide_subwindow(GtkWidget *self); void add_on_destroy_subwindow(GtkWidget *self);
add_window *get_widget_add(); add_window *get_widget_add();
void add_show(GtkWidget *self, char* glade_path); void add_show(GtkWidget *self, char* glade_path);
void add_destroy(GtkWidget *self); void add_destroy(GtkWidget *self);

File diff suppressed because it is too large Load Diff

@ -165,7 +165,7 @@ msgid "Swap file\nlimit\n(volume)"
msgstr "Лимит файлов\nподкачки\n(объём)" msgstr "Лимит файлов\nподкачки\n(объём)"
msgid "CPU limit\n(%)" msgid "CPU limit\n(%)"
msgstr "Лимит ЦПУ (%)" msgstr "Лимит ЦПУ\n(%)"
msgid "I/O\nlimit\n(read)" msgid "I/O\nlimit\n(read)"
msgstr "Лимит\nI/O\n(чтение)" msgstr "Лимит\nI/O\n(чтение)"
@ -304,6 +304,9 @@ msgstr "Квоты настроек - Редактирование"
msgid "Quota object" msgid "Quota object"
msgstr "Объект квоты" msgstr "Объект квоты"
msgid "Quota\nobject"
msgstr "Объект\nквоты"
msgid "RAM limit" msgid "RAM limit"
msgstr "Лимит ОЗУ" msgstr "Лимит ОЗУ"

Binary file not shown.
Loading…
Cancel
Save