|
|
|
@ -17,7 +17,7 @@ void on_config_local_load(GtkWidget *self,main_window *widgets){
|
|
|
|
if (self){};
|
|
|
|
if (self){};
|
|
|
|
yon_load_proceed(YON_CONFIG_LOCAL);
|
|
|
|
yon_load_proceed(YON_CONFIG_LOCAL);
|
|
|
|
yon_ubl_status_box_render(LIST_LOAD_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
yon_ubl_status_box_render(LIST_LOAD_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
g_thread_new("",(GThreadFunc)yon_interface_update,widgets);
|
|
|
|
gdk_threads_add_idle((GSourceFunc)((gboolean*)(void*)yon_interface_update),widgets);
|
|
|
|
main_config.load_mode=1;
|
|
|
|
main_config.load_mode=1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -28,7 +28,7 @@ void on_config_global_load(GtkWidget *self,main_window *widgets){
|
|
|
|
if (self){};
|
|
|
|
if (self){};
|
|
|
|
yon_load_proceed(YON_CONFIG_GLOBAL);
|
|
|
|
yon_load_proceed(YON_CONFIG_GLOBAL);
|
|
|
|
yon_ubl_status_box_render(LIST_LOAD_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
yon_ubl_status_box_render(LIST_LOAD_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
g_thread_new("",(GThreadFunc)yon_interface_update,widgets);
|
|
|
|
gdk_threads_add_idle((GSourceFunc)((gboolean*)(void*)yon_interface_update),widgets);
|
|
|
|
main_config.load_mode=0;
|
|
|
|
main_config.load_mode=0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -243,12 +243,6 @@ gboolean yon_service_source_check(GtkTreeModel *model, GtkTreeIter *iter,void *d
|
|
|
|
return 1;
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void on_source_changed(GtkWidget *self, main_window *widgets){
|
|
|
|
|
|
|
|
if (self){};
|
|
|
|
|
|
|
|
GtkTreePath *path = gtk_tree_path_new();
|
|
|
|
|
|
|
|
GtkTreeModel *model = gtk_tree_model_filter_new(GTK_TREE_MODEL(widgets->liststore2),path);
|
|
|
|
|
|
|
|
gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(model),(GtkTreeModelFilterVisibleFunc)yon_service_source_check,NULL,NULL);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gboolean on_service_filter(GtkTreeModel *model, GtkTreeIter *iter,void *data){
|
|
|
|
gboolean on_service_filter(GtkTreeModel *model, GtkTreeIter *iter,void *data){
|
|
|
|
if (data){};
|
|
|
|
if (data){};
|
|
|
|
@ -295,6 +289,26 @@ gboolean on_blocked_filter(GtkTreeModel *model, GtkTreeIter *iter,void *data){
|
|
|
|
return 0;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gboolean on_source_user_filter(GtkTreeModel *model, GtkTreeIter *iter,void *data){
|
|
|
|
|
|
|
|
if (data){};
|
|
|
|
|
|
|
|
gboolean type;
|
|
|
|
|
|
|
|
gtk_tree_model_get(model,iter,8,&type,-1);
|
|
|
|
|
|
|
|
if (type)
|
|
|
|
|
|
|
|
return 1;
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gboolean on_source_system_filter(GtkTreeModel *model, GtkTreeIter *iter,void *data){
|
|
|
|
|
|
|
|
if (data){};
|
|
|
|
|
|
|
|
gboolean type;
|
|
|
|
|
|
|
|
gtk_tree_model_get(model,iter,8,&type,-1);
|
|
|
|
|
|
|
|
if (!type)
|
|
|
|
|
|
|
|
return 1;
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void on_type_changed(GtkWidget *self, main_window *widgets){
|
|
|
|
void on_type_changed(GtkWidget *self, main_window *widgets){
|
|
|
|
if (self){};
|
|
|
|
if (self){};
|
|
|
|
switch (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->ServiceTypeCombo))){
|
|
|
|
switch (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->ServiceTypeCombo))){
|
|
|
|
@ -322,6 +336,21 @@ void on_type_changed(GtkWidget *self, main_window *widgets){
|
|
|
|
gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(main_config.BlockedFilter));
|
|
|
|
gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(main_config.BlockedFilter));
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (main_config.SourceFilter){
|
|
|
|
|
|
|
|
g_object_unref(main_config.SourceFilter);
|
|
|
|
|
|
|
|
main_config.SourceFilter=NULL;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
main_config.SourceFilter = gtk_tree_model_filter_new(gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->MainTree)),NULL);
|
|
|
|
|
|
|
|
int active = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->ServiceSourceCombo));
|
|
|
|
|
|
|
|
if (active==1){
|
|
|
|
|
|
|
|
gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(main_config.SourceFilter),(GtkTreeModelFilterVisibleFunc)on_source_system_filter,NULL,NULL);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->MainTree),main_config.SourceFilter);
|
|
|
|
|
|
|
|
} else if (active==2){
|
|
|
|
|
|
|
|
gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(main_config.SourceFilter),(GtkTreeModelFilterVisibleFunc)on_source_user_filter,NULL,NULL);
|
|
|
|
|
|
|
|
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->MainTree),main_config.SourceFilter);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(main_config.SourceFilter));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void on_service_update(GtkWidget *self, terminal_window* window){
|
|
|
|
void on_service_update(GtkWidget *self, terminal_window* window){
|
|
|
|
@ -389,7 +418,6 @@ void on_update(GtkWidget *self,main_window *widgets){
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void *update_delay(main_window *widgets){
|
|
|
|
void *update_delay(main_window *widgets){
|
|
|
|
sleep(1);
|
|
|
|
|
|
|
|
main_config.update_thread_active=0;
|
|
|
|
main_config.update_thread_active=0;
|
|
|
|
switch (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->ServiceTypeCombo))){
|
|
|
|
switch (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->ServiceTypeCombo))){
|
|
|
|
case 0: gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->MainTree),GTK_TREE_MODEL(widgets->liststore2));
|
|
|
|
case 0: gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->MainTree),GTK_TREE_MODEL(widgets->liststore2));
|
|
|
|
@ -410,6 +438,17 @@ void *update_delay(main_window *widgets){
|
|
|
|
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->MainTree),main_config.BlockedFilter);
|
|
|
|
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->MainTree),main_config.BlockedFilter);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (main_config.SourceFilter){
|
|
|
|
|
|
|
|
g_object_unref(main_config.SourceFilter);
|
|
|
|
|
|
|
|
main_config.SourceFilter=NULL;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
main_config.SourceFilter = gtk_tree_model_filter_new(gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->MainTree)),NULL);
|
|
|
|
|
|
|
|
int source_mode = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->ServiceSourceCombo));
|
|
|
|
|
|
|
|
if (source_mode==1){
|
|
|
|
|
|
|
|
gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(main_config.ServiceFilter),(GtkTreeModelFilterVisibleFunc)on_source_system_filter,NULL,NULL);
|
|
|
|
|
|
|
|
} else if (source_mode==2){
|
|
|
|
|
|
|
|
gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(main_config.ServiceFilter),(GtkTreeModelFilterVisibleFunc)on_source_user_filter,NULL,NULL);
|
|
|
|
|
|
|
|
}
|
|
|
|
textdomain(template_ui_LocaleName);
|
|
|
|
textdomain(template_ui_LocaleName);
|
|
|
|
if (main_config.load_mode){
|
|
|
|
if (main_config.load_mode){
|
|
|
|
yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
@ -420,12 +459,16 @@ void *update_delay(main_window *widgets){
|
|
|
|
return NULL;
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void *yon_interface_update(main_window *widgets){
|
|
|
|
gboolean yon_interface_update(main_window *widgets){
|
|
|
|
|
|
|
|
gtk_widget_set_sensitive(widgets->UpdateButton,0);
|
|
|
|
int size;
|
|
|
|
int size;
|
|
|
|
|
|
|
|
int size_users;
|
|
|
|
GtkTreeIter iter;
|
|
|
|
GtkTreeIter iter;
|
|
|
|
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->MainTree),NULL);
|
|
|
|
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->MainTree),NULL);
|
|
|
|
config_str services = yon_config_load(load_services_command,&size);
|
|
|
|
config_str services = yon_config_load(load_services_command,&size);
|
|
|
|
|
|
|
|
config_str users_services = yon_config_load(load_user_services_command,&size_users);
|
|
|
|
for (int i=0;i<size;i++){
|
|
|
|
for (int i=0;i<size;i++){
|
|
|
|
|
|
|
|
while(gtk_events_pending()) gtk_main_iteration();
|
|
|
|
int parsed_size;
|
|
|
|
int parsed_size;
|
|
|
|
if (services[i][strlen(services[i])-1]=='\n') services[i][strlen(services[i])-1]='\0';
|
|
|
|
if (services[i][strlen(services[i])-1]=='\n') services[i][strlen(services[i])-1]='\0';
|
|
|
|
config_str parsed = yon_char_parse(services[i],&parsed_size,";");
|
|
|
|
config_str parsed = yon_char_parse(services[i],&parsed_size,";");
|
|
|
|
@ -435,7 +478,11 @@ void *yon_interface_update(main_window *widgets){
|
|
|
|
if (strstr(parsed[0],".socket"))
|
|
|
|
if (strstr(parsed[0],".socket"))
|
|
|
|
type = 2;
|
|
|
|
type = 2;
|
|
|
|
else type = 1;
|
|
|
|
else type = 1;
|
|
|
|
gtk_list_store_set(widgets->liststore2,&iter,5,parsed[0],6,description,7,type,-1);
|
|
|
|
int user_service=0;
|
|
|
|
|
|
|
|
if (yon_char_parsed_check_exist(users_services,size_users,parsed[0])!=-1){
|
|
|
|
|
|
|
|
user_service=1;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
gtk_list_store_set(widgets->liststore2,&iter,5,parsed[0],6,description,7,type,8,user_service,-1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
int launched_size;
|
|
|
|
int launched_size;
|
|
|
|
config_str launched_parsed = yon_config_load(load_launched_command,&launched_size);
|
|
|
|
config_str launched_parsed = yon_config_load(load_launched_command,&launched_size);
|
|
|
|
@ -490,15 +537,11 @@ void *yon_interface_update(main_window *widgets){
|
|
|
|
gtk_list_store_set(widgets->liststore2,&iter,3,0,-1);
|
|
|
|
gtk_list_store_set(widgets->liststore2,&iter,3,0,-1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
free(name_parsed);
|
|
|
|
free(name_parsed);
|
|
|
|
|
|
|
|
while(gtk_events_pending()) gtk_main_iteration();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
g_thread_new("",(GThreadFunc)update_delay,widgets);
|
|
|
|
update_delay(widgets);
|
|
|
|
// int type_active=0;
|
|
|
|
gtk_widget_set_sensitive(widgets->UpdateButton,1);
|
|
|
|
// if (!(type_active=gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->ServiceTypeCombo)))){
|
|
|
|
return 0;
|
|
|
|
// gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ServiceTypeCombo),type_active);
|
|
|
|
|
|
|
|
// } if (!(type_active=gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->ServiceTypeCombo)))){
|
|
|
|
|
|
|
|
// gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ServiceTypeCombo),type_active);
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
return NULL;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void on_column_resize(GtkTreeViewColumn *self,GParamSpec *pspec,main_window *widgets){
|
|
|
|
void on_column_resize(GtkTreeViewColumn *self,GParamSpec *pspec,main_window *widgets){
|
|
|
|
@ -694,6 +737,7 @@ void yon_main_window_complete(main_window *widgets){
|
|
|
|
g_signal_connect(G_OBJECT(g_list_nth_data(list,4)),"notify::width",G_CALLBACK(on_column_resize),widgets);
|
|
|
|
g_signal_connect(G_OBJECT(g_list_nth_data(list,4)),"notify::width",G_CALLBACK(on_column_resize),widgets);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->MainTree),"cursor-changed",G_CALLBACK(on_activate),widgets);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->MainTree),"cursor-changed",G_CALLBACK(on_activate),widgets);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->ServiceTypeCombo),"changed",G_CALLBACK(on_type_changed),widgets);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->ServiceTypeCombo),"changed",G_CALLBACK(on_type_changed),widgets);
|
|
|
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->ServiceSourceCombo),"changed",G_CALLBACK(on_type_changed),widgets);
|
|
|
|
|
|
|
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->LoadLocalMenuItem),"activate",G_CALLBACK(on_config_local_load),widgets);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->LoadLocalMenuItem),"activate",G_CALLBACK(on_config_local_load),widgets);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->LoadGlobalMenuItem),"activate",G_CALLBACK(on_config_global_load),widgets);
|
|
|
|
g_signal_connect(G_OBJECT(widgets->LoadGlobalMenuItem),"activate",G_CALLBACK(on_config_global_load),widgets);
|
|
|
|
@ -718,7 +762,7 @@ void yon_main_window_complete(main_window *widgets){
|
|
|
|
yon_ubl_status_box_render(LIST_LOAD_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
yon_ubl_status_box_render(LIST_LOAD_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
|
|
if (!main_config.update_thread_active){
|
|
|
|
if (!main_config.update_thread_active){
|
|
|
|
main_config.update_thread_active=1;
|
|
|
|
main_config.update_thread_active=1;
|
|
|
|
g_thread_new("",(GThreadFunc)yon_interface_update,widgets);
|
|
|
|
gdk_threads_add_idle((GSourceFunc)((gboolean*)(void*)yon_interface_update),widgets);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|