|
|
@ -120,6 +120,7 @@ main_window *setup_window(){
|
|
|
|
GtkBuilder *builder = gtk_builder_new_from_file(glade_path);
|
|
|
|
GtkBuilder *builder = gtk_builder_new_from_file(glade_path);
|
|
|
|
widgets->Window = yon_gtk_builder_get_widget(builder,"MainWindow");
|
|
|
|
widgets->Window = yon_gtk_builder_get_widget(builder,"MainWindow");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
widgets->btnDelQuotas = yon_gtk_builder_get_widget(builder,"btnDelQuotas");
|
|
|
|
widgets->treeViewMain = yon_gtk_builder_get_widget(builder,"treeViewMain");
|
|
|
|
widgets->treeViewMain = yon_gtk_builder_get_widget(builder,"treeViewMain");
|
|
|
|
widgets->tvc0 = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder,"tvc0"));
|
|
|
|
widgets->tvc0 = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder,"tvc0"));
|
|
|
|
widgets->tvc1 = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder,"tvc1"));
|
|
|
|
widgets->tvc1 = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder,"tvc1"));
|
|
|
@ -223,27 +224,153 @@ void main_update_processes() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void main_update_information() {
|
|
|
|
void main_update_information() {
|
|
|
|
const gchar* menu_id = gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->cbtMainInfo));
|
|
|
|
int menu_id = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->cbtMainInfo));
|
|
|
|
char* cmd_param = gtk_combo_box_get_active_id(GTK_COMBO_BOX_TEXT(widgets->cbtMainInfoLevel2));
|
|
|
|
|
|
|
|
char* cmd = NULL;
|
|
|
|
char* cmd = NULL;
|
|
|
|
if (*menu_id == 0) {
|
|
|
|
config_str fill_cmb_2 = NULL;
|
|
|
|
|
|
|
|
int size = 0;
|
|
|
|
|
|
|
|
if (menu_id == 0) {
|
|
|
|
|
|
|
|
fill_cmb_2 = philos_list_user(&size);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (*menu_id == 1) {
|
|
|
|
else if (menu_id == 1) {
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (*menu_id == 2) {
|
|
|
|
else if (menu_id == 2) {
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (*menu_id == 3) {
|
|
|
|
else if (menu_id == 3) {
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (*menu_id >= 0) {
|
|
|
|
if (menu_id >= 0) {
|
|
|
|
gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->cbtMainInfoLevel2));
|
|
|
|
gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->cbtMainInfoLevel2));
|
|
|
|
yon_terminal_integrated_launch(widgets->vteProcesses, cmd, NULL, NULL);
|
|
|
|
philos_fill_combo_box_text(widgets->cbtMainInfoLevel2, fill_cmb_2, size);
|
|
|
|
|
|
|
|
// yon_terminal_integrated_launch(widgets->vteProcesses, cmd, NULL, NULL);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void main_cbx_2_event() {
|
|
|
|
|
|
|
|
int menu_id = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->cbtMainInfo));
|
|
|
|
|
|
|
|
char* cmd_text_param = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(widgets->cbtMainInfo));
|
|
|
|
|
|
|
|
if (menu_id == 0) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if (menu_id == 1) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if (menu_id == 2) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else if (menu_id == 3) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if (menu_id >= 0) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//char *cmd = yon_char_get_augumented("systemd-cgtop -d ", str_second);
|
|
|
|
|
|
|
|
//yon_terminal_integrated_launch(widgets->vteDispatcher, cmd, NULL, NULL);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void tree_view_delete(GtkWidget *self, main_window *widgets) {
|
|
|
|
|
|
|
|
yon_ubl_status_box_render(STR_DEL_TABLE ,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
|
|
|
char *name;
|
|
|
|
|
|
|
|
GtkTreeModel *list_s = 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,&list_s,&iter)){
|
|
|
|
|
|
|
|
gtk_tree_model_get(list_s, &iter, 1, &name, -1);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
yon_ubl_status_box_render(STR_DEL_TABLE, BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void tree_view_select(GtkWidget *self, main_window *widgets) {
|
|
|
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
|
|
|
char *name;
|
|
|
|
|
|
|
|
GtkTreeModel *list_s=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, &list_s, &iter)){
|
|
|
|
|
|
|
|
int installed=0;
|
|
|
|
|
|
|
|
gtk_tree_model_get(gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->treeViewMain)),&iter,0,&installed,-1);
|
|
|
|
|
|
|
|
if (installed==1){
|
|
|
|
|
|
|
|
gtk_widget_set_sensitive(widgets->btnAdd,0);
|
|
|
|
|
|
|
|
gtk_widget_set_sensitive(widgets->btnDelQuotas,1);
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
gtk_widget_set_sensitive(widgets->btnAdd,1);
|
|
|
|
|
|
|
|
gtk_widget_set_sensitive(widgets->btnDelQuotas,0);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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) {
|
|
|
|
|
|
|
|
yon_char_parsed_append(main_config.type_quota, &main_config.size_tree_view, add_get_quota_object());
|
|
|
|
|
|
|
|
char* text = " ";
|
|
|
|
|
|
|
|
yon_char_parsed_append(main_config.quota_volume, &main_config.size_tree_view, text );
|
|
|
|
|
|
|
|
yon_char_parsed_append(main_config.soft_raw_limit, &main_config.size_tree_view, add_get_soft());
|
|
|
|
|
|
|
|
yon_char_parsed_append(main_config.hard_raw_limit, &main_config.size_tree_view, add_get_hard());
|
|
|
|
|
|
|
|
yon_char_parsed_append(main_config.swap, &main_config.size_tree_view, add_get_limit_swap());
|
|
|
|
|
|
|
|
yon_char_parsed_append(main_config.cpu_limit, &main_config.size_tree_view, add_get_limit_cpu());
|
|
|
|
|
|
|
|
yon_char_parsed_append(main_config.i_o_limit_read, &main_config.size_tree_view, add_get_read_device());
|
|
|
|
|
|
|
|
yon_char_parsed_append(main_config.i_o_limit_write, &main_config.size_tree_view, add_get_write_device());
|
|
|
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
|
|
|
gtk_list_store_append(main_config.list,&iter);
|
|
|
|
|
|
|
|
gtk_list_store_set(main_config.list,&iter,main_config.type_quota[index],
|
|
|
|
|
|
|
|
main_config.quota_volume[index],
|
|
|
|
|
|
|
|
main_config.soft_raw_limit[index],
|
|
|
|
|
|
|
|
main_config.hard_raw_limit[index],
|
|
|
|
|
|
|
|
main_config.swap[index],
|
|
|
|
|
|
|
|
main_config.cpu_limit[index],
|
|
|
|
|
|
|
|
main_config.i_o_limit_read[index],
|
|
|
|
|
|
|
|
main_config.i_o_limit_write[index]);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void config_data_append(int index) {
|
|
|
|
|
|
|
|
if (index == -1) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
|
|
|
void yon_gtk_list_store_fill_with_proprietaries(GtkListStore *list){
|
|
|
|
|
|
|
|
if(videoconfig.proprietary){
|
|
|
|
|
|
|
|
dictionary *dict=NULL;
|
|
|
|
|
|
|
|
gtk_list_store_clear(videoconfig.list);
|
|
|
|
|
|
|
|
gtk_list_store_clear(videoconfig.list2);
|
|
|
|
|
|
|
|
int inssize=0;
|
|
|
|
|
|
|
|
config_str installed=yon_config_load(get_proprietary_installed_command,&inssize);
|
|
|
|
|
|
|
|
for (int i=0;i<inssize;i++)
|
|
|
|
|
|
|
|
installed[i]=yon_char_divide_search(installed[i],"\n",-1);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for_dictionaries(dict,videoconfig.proprietary){
|
|
|
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
|
|
|
int size=0;
|
|
|
|
|
|
|
|
config_str str = yon_char_parse((char*)dict->data,&size,";");
|
|
|
|
|
|
|
|
if (strcmp(str[0],"")!=0&&str[0]){
|
|
|
|
|
|
|
|
gtk_list_store_append(videoconfig.list,&iter);
|
|
|
|
|
|
|
|
gtk_list_store_set(videoconfig.list,&iter,1,str[0],2,str[1],3,str[2],4,_(str[3]),5,_(str[4]),-1);
|
|
|
|
|
|
|
|
if (yon_char_parsed_check_exist(installed,inssize,str[0])!=-1)
|
|
|
|
|
|
|
|
gtk_list_store_set(videoconfig.list,&iter,0,1,-1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else{
|
|
|
|
|
|
|
|
gtk_list_store_append(videoconfig.list2,&iter);
|
|
|
|
|
|
|
|
gtk_list_store_set(videoconfig.list2,&iter,1,str[0],2,str[1],3,str[2],4,_(str[3]),5,_(str[4]),-1);
|
|
|
|
|
|
|
|
if (yon_char_parsed_check_exist(installed,inssize,str[1])!=-1){
|
|
|
|
|
|
|
|
gtk_list_store_set(videoconfig.list2,&iter,0,1,-1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void main_visible_columns(GtkWidget *self) {
|
|
|
|
void main_visible_columns(GtkWidget *self) {
|
|
|
|
gboolean *flags_filters = filters_get_flag();
|
|
|
|
gboolean *flags_filters = filters_get_flag();
|
|
|
@ -273,13 +400,16 @@ 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(add_show), glade_path);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->btnAdd),"clicked",G_CALLBACK(wrapper_tree_view_add), widgets);
|
|
|
|
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);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->btnMainShowAllEmpty), "toggled", G_CALLBACK(main_update_processes), NULL);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->btnMainShowAllEmpty), "toggled", G_CALLBACK(main_update_processes), NULL);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->btnMainShowCoreStream), "toggled", G_CALLBACK(main_update_processes), NULL);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->btnMainShowCoreStream), "toggled", G_CALLBACK(main_update_processes), NULL);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->cbtMainInfo),"changed",G_CALLBACK(main_update_information), NULL);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->cbtMainInfo),"changed",G_CALLBACK(main_update_information), NULL);
|
|
|
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->cbtMainInfoLevel2),"changed",G_CALLBACK(main_cbx_2_event), NULL);
|
|
|
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->btnDelQuotas), "clicked", G_CALLBACK(tree_view_delete), widgets);
|
|
|
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->treeViewMain), "cursor-changed", G_CALLBACK(tree_view_select), widgets);
|
|
|
|
/*
|
|
|
|
/*
|
|
|
|
g_signal_connect(G_OBJECT(widgets->LoadGlobalMenuItem),"activate",G_CALLBACK(),NULL);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->LoadGlobalMenuItem),"activate",G_CALLBACK(),NULL);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->LoadLocalMenuItem),"activate",G_CALLBACK(),NULL);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->LoadLocalMenuItem),"activate",G_CALLBACK(),NULL);
|
|
|
@ -384,6 +514,7 @@ int main(int argc, char *argv[]){
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
main_window *widgets = setup_window();
|
|
|
|
main_window *widgets = setup_window();
|
|
|
|
|
|
|
|
main_update_information();
|
|
|
|
filters_init_flag();
|
|
|
|
filters_init_flag();
|
|
|
|
filters_setup_window(glade_path);
|
|
|
|
filters_setup_window(glade_path);
|
|
|
|
add_setup_window(glade_path);
|
|
|
|
add_setup_window(glade_path);
|
|
|
|