@ -31,9 +31,9 @@ void on_save_done(main_window *, config_str output, int size){
void yon_load_proceed ( YON_CONFIG_TYPE type ) {
if ( type ! = YON_CONFIG_CUSTOM ) {
yon_config_clean ( ) ;
}
if ( ! yon_char_is_empty ( config_get_default_command ) )
yon_config_load_config ( YON_CONFIG_DEFAULT , config_get_default_command , NULL ) ;
}
if ( type = = YON_CONFIG_GLOBAL ) {
yon_config_load_config ( type , config_get_global_command , NULL ) ;
} else if ( type = = YON_CONFIG_LOCAL ) {
@ -57,6 +57,8 @@ void yon_load_proceed(YON_CONFIG_TYPE type){
path = file ;
}
yon_config_clean ( ) ;
if ( ! yon_char_is_empty ( config_get_default_command ) )
yon_config_load_config ( YON_CONFIG_DEFAULT , config_get_default_command , NULL ) ;
char * command = yon_config_get_custom_command ( path ) ;
yon_config_load_config ( type , command , NULL ) ;
gtk_widget_destroy ( dialog ) ;
@ -72,7 +74,7 @@ void on_config_local_load(GtkWidget *,main_window *widgets){
yon_load_proceed ( YON_CONFIG_LOCAL ) ;
yon_ubl_status_box_render ( LIST_LOAD_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
g_thread_new ( " update " , ( GThreadFunc ) yon_interface_update , widgets ) ;
main_config . load_mode = 1 ;
main_config . load_mode = YON_CONFIG_LOCAL ;
}
}
@ -82,7 +84,7 @@ void on_config_global_load(GtkWidget *,main_window *widgets){
yon_load_proceed ( YON_CONFIG_GLOBAL ) ;
yon_ubl_status_box_render ( LIST_LOAD_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
g_thread_new ( " update " , ( GThreadFunc ) yon_interface_update , widgets ) ;
main_config . load_mode = 0 ;
main_config . load_mode = YON_CONFIG_GLOBAL ;
}
}
@ -92,7 +94,7 @@ void on_config_custom_load(GtkWidget *,main_window *widgets){
textdomain ( template_ui_LocaleName ) ;
yon_ubl_status_box_render ( GLOBAL_LOAD_SUCCESS_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
textdomain ( LocaleName ) ;
main_config . load_mode = 3 ;
main_config . load_mode = YON_CONFIG_CUSTOM ;
g_thread_new ( " update " , ( GThreadFunc ) yon_interface_update , widgets ) ;
}
@ -184,14 +186,17 @@ void on_config_autostart_clicked(GtkCellRenderer *, char *path, main_window *wid
{
gtk_tree_model_sort_convert_iter_to_child_iter ( GTK_TREE_MODEL_SORT ( sort ) , & itor , & filter_iter ) ;
gtk_tree_model_filter_convert_iter_to_child_iter ( GTK_TREE_MODEL_FILTER ( filter ) , & iter , & itor ) ;
gboolean status = 0 ;
gboolean status = 0 ,autoblock = 0 ;
char * name ;
gtk_tree_model_get ( model , & iter , 0 , & status , 5, & name , - 1 ) ;
gtk_tree_model_get ( model , & iter , 0 , & status , 1, & autoblock , 5, & name , - 1 ) ;
char * unit = yon_char_new ( name ) ;
char * parsed_name = yon_char_divide ( unit , yon_char_find_last ( name , ' . ' ) ) ;
free ( unit ) ;
unit = parsed_name ;
gtk_list_store_set ( GTK_LIST_STORE ( model ) , & iter , 0 , ! status , - 1 ) ;
if ( ! status & & autoblock ) {
on_config_autostop_clicked ( NULL , path , widgets ) ;
}
char * config_sting = yon_config_get_by_key ( " SERVICES_ENABLE " ) ;
int size ;
config_str parsed = yon_char_parse ( config_sting , & size , " , " ) ;
@ -246,14 +251,17 @@ void on_config_autostop_clicked(GtkCellRenderer *, char *path, main_window *widg
{
gtk_tree_model_sort_convert_iter_to_child_iter ( GTK_TREE_MODEL_SORT ( sort ) , & itor , & filter_iter ) ;
gtk_tree_model_filter_convert_iter_to_child_iter ( GTK_TREE_MODEL_FILTER ( filter ) , & iter , & itor ) ;
gboolean status = 0 ;
gboolean status = 0 ,autostart = 0 ;
char * name ;
gtk_tree_model_get ( model , & iter , 1, & status , 5 , & name , - 1 ) ;
gtk_tree_model_get ( model , & iter , 0, & autostart , 1, & status , 5 , & name , - 1 ) ;
char * unit = yon_char_new ( name ) ;
char * parsed_name = yon_char_divide ( unit , yon_char_find_last ( name , ' . ' ) ) ;
free ( unit ) ;
unit = parsed_name ;
gtk_list_store_set ( GTK_LIST_STORE ( model ) , & iter , 1 , ! status , - 1 ) ;
if ( ! status & & autostart ) {
on_config_autostart_clicked ( NULL , path , widgets ) ;
}
char * config_sting = yon_config_get_by_key ( " SERVICES_DISABLE " ) ;
int size ;
config_str parsed = yon_char_parse ( config_sting , & size , " , " ) ;
@ -1149,6 +1157,16 @@ gboolean yon_interface_list_models_disconnect(main_window *widgets){
gtk_list_store_clear ( widgets - > UserList ) ;
gtk_list_store_clear ( widgets - > ConfigList ) ;
gtk_list_store_clear ( widgets - > TimersList ) ;
gtk_spinner_start ( GTK_SPINNER ( widgets - > SystemLoadingSpinner ) ) ;
gtk_spinner_start ( GTK_SPINNER ( widgets - > UserLoadingSpinner ) ) ;
gtk_spinner_start ( GTK_SPINNER ( widgets - > ConfigLoadingSpinner ) ) ;
gtk_spinner_start ( GTK_SPINNER ( widgets - > SessionsLoadingSpinner ) ) ;
gtk_spinner_start ( GTK_SPINNER ( widgets - > TimersLoadingSpinner ) ) ;
gtk_widget_show ( widgets - > SystemLoadingSpinner ) ;
gtk_widget_show ( widgets - > UserLoadingSpinner ) ;
gtk_widget_show ( widgets - > ConfigLoadingSpinner ) ;
gtk_widget_show ( widgets - > SessionsLoadingSpinner ) ;
gtk_widget_show ( widgets - > TimersLoadingSpinner ) ;
g_signal_handlers_block_by_func ( G_OBJECT ( widgets - > UserFiltersCombo ) , G_CALLBACK ( on_filter_changed ) , widgets ) ;
g_signal_handlers_block_by_func ( G_OBJECT ( widgets - > UserSearchEntry ) , G_CALLBACK ( on_filter_changed ) , widgets ) ;
@ -1170,6 +1188,16 @@ gboolean yon_interface_list_models_connect(main_window *widgets){
gtk_tree_view_set_model ( GTK_TREE_VIEW ( widgets - > UserUnitsTree ) , GTK_TREE_MODEL ( widgets - > UserSort ) ) ;
gtk_tree_view_set_model ( GTK_TREE_VIEW ( widgets - > ConfigMainTree ) , GTK_TREE_MODEL ( widgets - > ConfigList ) ) ;
gtk_tree_view_set_model ( GTK_TREE_VIEW ( widgets - > TimersMainTree ) , GTK_TREE_MODEL ( widgets - > TimersList ) ) ;
gtk_spinner_stop ( GTK_SPINNER ( widgets - > SystemLoadingSpinner ) ) ;
gtk_spinner_stop ( GTK_SPINNER ( widgets - > UserLoadingSpinner ) ) ;
gtk_spinner_stop ( GTK_SPINNER ( widgets - > ConfigLoadingSpinner ) ) ;
gtk_spinner_stop ( GTK_SPINNER ( widgets - > SessionsLoadingSpinner ) ) ;
gtk_spinner_stop ( GTK_SPINNER ( widgets - > TimersLoadingSpinner ) ) ;
gtk_widget_hide ( widgets - > SystemLoadingSpinner ) ;
gtk_widget_hide ( widgets - > UserLoadingSpinner ) ;
gtk_widget_hide ( widgets - > ConfigLoadingSpinner ) ;
gtk_widget_hide ( widgets - > SessionsLoadingSpinner ) ;
gtk_widget_hide ( widgets - > TimersLoadingSpinner ) ;
g_signal_handlers_unblock_by_func ( G_OBJECT ( widgets - > UserFiltersCombo ) , G_CALLBACK ( on_filter_changed ) , widgets ) ;
g_signal_handlers_unblock_by_func ( G_OBJECT ( widgets - > UserSearchEntry ) , G_CALLBACK ( on_filter_changed ) , widgets ) ;
@ -1336,12 +1364,68 @@ gboolean yon_interface_update_finish(main_window *widgets){
}
}
main_config . update_thread_active = 0 ;
char * final = yon_char_unite ( yon_char_get_localised_from_lib ( SUCCESS_LABEL ) , " . " , main_config . load_mode = = 0 ? yon_char_get_localised_from_lib ( GLOBAL_LOAD_SUCCESS_LABEL ) : yon_char_get_localised_from_lib ( LOCAL_LOAD_SUCCESS_LABEL ) , NULL ) ;
char * final = yon_char_unite ( yon_char_get_localised_from_lib ( SUCCESS_LABEL ) , " . " , main_config . load_mode = = YON_CONFIG_GLOBAL ? yon_char_get_localised_from_lib ( GLOBAL_LOAD_SUCCESS_LABEL ) : yon_char_get_localised_from_lib ( LOCAL_LOAD_SUCCESS_LABEL ) , NULL ) ;
yon_ubl_status_box_render ( final , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
free ( final ) ;
return G_SOURCE_REMOVE ;
}
void yon_service_update ( main_window * widgets ) {
int active_page = gtk_notebook_get_current_page ( GTK_NOTEBOOK ( widgets - > MainNotebook ) ) ;
switch ( active_page )
{
case 0 : {
GtkTreeModel * model ;
GtkTreeIter iter ;
gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > SystemUnitsTree ) ) , & model , & iter ) ;
char * target ;
gtk_tree_model_get ( model , & iter , 5 , & target , - 1 ) ;
int size ;
config_str new_info = yon_config_load ( load_system_service_single ( target ) , & size ) ;
int parsed_size ;
config_str parsed = yon_char_parse ( new_info [ 0 ] , & parsed_size , " ; " ) ;
char * name_temp = yon_char_replace ( parsed [ 0 ] , " \\ " , " \1 8 " ) ;
if ( name_temp ! = parsed [ 0 ] ) free ( parsed [ 0 ] ) ;
parsed [ 0 ] = yon_char_replace ( name_temp , " \1 8 " , " \\ \\ " ) ;
if ( name_temp ! = parsed [ 0 ] ) free ( name_temp ) ;
if ( parsed ) {
int enabled = ! strcmp ( parsed [ 5 ] , " enabled " ) ;
int loaded = ! strcmp ( parsed [ 1 ] , " loaded " ) ;
int active = ! strcmp ( parsed [ 2 ] , " active " ) ;
enum YON_UNIT_TYPE type = yon_get_unit_type ( parsed [ 0 ] ) ;
gtk_list_store_append ( widgets - > SystemList , & iter ) ;
gtk_list_store_set ( widgets - > SystemList , & iter , 3 , enabled , 4 , active , 5 , parsed [ 0 ] , 6 , parsed [ 4 ] , 7 , type , 8 , active , 9 , loaded , 11 , _ ( parsed [ 3 ] ) , 13 , parsed [ 3 ] , - 1 ) ;
}
} break ;
case 1 : {
GtkTreeModel * model ;
GtkTreeIter iter ;
gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > UserUnitsTree ) ) , & model , & iter ) ;
char * target ;
gtk_tree_model_get ( model , & iter , 5 , & target , - 1 ) ;
int size ;
config_str new_info = yon_config_load ( load_user_service_single ( target ) , & size ) ;
int parsed_size ;
config_str parsed = yon_char_parse ( new_info [ 0 ] , & parsed_size , " ; " ) ;
char * name_temp = yon_char_replace ( parsed [ 0 ] , " \\ " , " \1 8 " ) ;
if ( name_temp ! = parsed [ 0 ] ) free ( parsed [ 0 ] ) ;
parsed [ 0 ] = yon_char_replace ( name_temp , " \1 8 " , " \\ \\ " ) ;
if ( name_temp ! = parsed [ 0 ] ) free ( name_temp ) ;
if ( parsed ) {
int enabled = ! strcmp ( parsed [ 5 ] , " enabled " ) ;
int loaded = ! strcmp ( parsed [ 1 ] , " loaded " ) ;
int active = ! strcmp ( parsed [ 2 ] , " active " ) ;
enum YON_UNIT_TYPE type = yon_get_unit_type ( parsed [ 0 ] ) ;
gtk_list_store_append ( widgets - > SystemList , & iter ) ;
gtk_list_store_set ( widgets - > SystemList , & iter , 3 , enabled , 4 , active , 5 , parsed [ 0 ] , 6 , parsed [ 4 ] , 7 , type , 8 , active , 9 , loaded , 11 , _ ( parsed [ 3 ] ) , 13 , parsed [ 3 ] , - 1 ) ;
}
} break ;
default :
break ;
}
}
void * yon_interface_update ( main_window * widgets ) {
// dictionary *dict = yon_systemd_get_list();
// if (dict){}
@ -1349,22 +1433,22 @@ void* yon_interface_update(main_window *widgets){
g_idle_add ( ( GSourceFunc ) yon_interface_list_models_disconnect , widgets ) ;
int system_size ;
config_str system_services = yon_config_load ( load_services_command , & system_size ) ;
int system_units_size ;
config_str system_units = yon_config_load ( load_system_units_command , & system_units_size ) ;
// int system_units_size;
// config_str system_units = yon_config_load(load_system_units_command,&system_units_size);
int user_size ;
config_str user_services = yon_config_load ( load_user_ service s_command, & user_size ) ;
int user_units_size ;
config_str user_units = yon_config_load ( load_user_units_command , & user_units_size ) ;
config_str user_services = yon_config_load ( load_user_ unit s_command, & user_size ) ;
// int user_units_size;
// config_str user_units = yon_config_load(load_user_units_command,&user_units_size);
int config_size ;
config_str config_files = yon_config_load ( get_config_files_command , & config_size ) ;
int timers_size ;
config_str timers = yon_config_load ( get_timers_command , & timers_size ) ;
struct json_object * jsobject = json_tokener_parse ( timers [ 0 ] ) ;
int launched_size ;
config_str launched = yon_config_load ( load_launched_command , & launched_size ) ;
for ( int i = 0 ; i < launched_size ; i + + ) {
yon_char_remove_last_symbol ( launched [ i ] , ' \n ' ) ;
}
// int launched_size;
// config_str launched = yon_config_load(load_launched_command,&launched_size);
// for (int i=0;i<launched_size;i++){
// yon_char_remove_last_symbol(launched[i],'\n');
// }
// dictionary *dact = NULL;
// for_dictionaries(dact,dict){
@ -1394,24 +1478,42 @@ void* yon_interface_update(main_window *widgets){
parsed [ 0 ] = yon_char_replace ( name_temp , " \1 8 " , " \\ \\ " ) ;
if ( name_temp ! = parsed [ 0 ] ) free ( name_temp ) ;
if ( parsed ) {
int names_size ;
config_str names_parsed = yon_char_parse ( parsed [ 0 ] , & names_size , " " ) ;
for ( int j = 0 ; j < names_size ; j + + ) {
int found = 0 ;
for_iter ( widgets - > SystemList , & iter ) {
char * target ;
gtk_tree_model_get ( GTK_TREE_MODEL ( widgets - > SystemList ) , & iter , 5 , & target , - 1 ) ;
if ( ! strcmp ( target , names_parsed [ j ] ) ) {
found = 1 ;
break ;
}
}
if ( ! found ) {
int enabled = ! strcmp ( parsed [ 5 ] , " enabled " ) ;
int loaded = ! strcmp ( parsed [ 1 ] , " loaded " ) ;
int active = ! strcmp ( parsed [ 2 ] , " active " ) ;
enum YON_UNIT_TYPE type = yon_get_unit_type ( parsed [ 0 ] ) ;
enum YON_UNIT_TYPE type = yon_get_unit_type ( names_parsed[ j ] ) ;
gtk_list_store_append ( widgets - > SystemList , & iter ) ;
gtk_list_store_set ( widgets - > SystemList , & iter , 3 , loaded , 4 , active , 5 , parsed [ 0 ] , 6 , parsed [ 4 ] , 7 , type , 8 , active , 9 , 1 , 11 , _ ( parsed [ 3 ] ) , 13 , parsed [ 3 ] , - 1 ) ;
gtk_list_store_set ( widgets - > SystemList , & iter , 3 , enab led, 4 , active , 5 , names_parsed[ j ] , 6 , parsed [ 4 ] , 7 , type , 8 , active , 9 , loaded , 11 , _ ( parsed [ 3 ] ) , 13 , parsed [ 3 ] , - 1 ) ;
}
}
for ( int i = 0 ; i < system_units_size ; i + + ) {
yon_char_remove_last_symbol ( system_units [ i ] , ' \n ' ) ;
if ( ! yon_char_parsed_check_exist_begins_with ( system_services , system_size , system_units [ i ] ) ) {
GtkTreeIter iter ;
gtk_list_store_append ( widgets - > SystemList , & iter ) ;
enum YON_UNIT_TYPE type = yon_get_unit_type ( system_units [ i ] ) ;
gtk_list_store_set ( widgets - > SystemList , & iter , 0 , 0 , 1 , 0 , 2 , 0 , 3 , 0 , 4 , 0 , 5 , system_units [ i ] , 6 , " " , 7 , type , 8 , 0 , 9 , 0 , 10 , 0 , 11 , _ ( " disabled " ) , 13 , " disabled " , - 1 ) ;
yon_char_parsed_free ( names_parsed , names_size ) ;
}
}
yon_char_parsed_free ( system_services , system_size ) ;
// for (int i=0;i<system_units_size;i++){
// yon_char_remove_last_symbol(system_units[i],'\n');
// if (!yon_char_parsed_check_exist_begins_with(system_services,system_size,system_units[i])){
// GtkTreeIter iter;
// gtk_list_store_append(widgets->SystemList,&iter);
// enum YON_UNIT_TYPE type = yon_get_unit_type(system_units[i]);
// gtk_list_store_set(widgets->SystemList,&iter,0,0,1,0,2,0,3,0,4,0,5,system_units[i],6,"",7,type,8,0,9,0,10,0,11,_("disabled"),13,"disabled",-1);
// }
// }
// for (int i=0; i<user_size;i++){
// if (user_services[i][strlen(user_services[i])-1]=='\n') user_services[i][strlen(user_services[i])-1] = '\0';
@ -1444,24 +1546,42 @@ void* yon_interface_update(main_window *widgets){
int size ;
config_str parsed = yon_char_parse ( user_services [ i ] , & size , " ; " ) ;
if ( parsed ) {
int names_size ;
config_str names_parsed = yon_char_parse ( parsed [ 0 ] , & names_size , " " ) ;
for ( int j = 0 ; j < names_size ; j + + ) {
int found = 0 ;
for_iter ( widgets - > UserList , & iter ) {
char * target ;
gtk_tree_model_get ( GTK_TREE_MODEL ( widgets - > UserList ) , & iter , 5 , & target , - 1 ) ;
if ( ! strcmp ( target , names_parsed [ j ] ) ) {
found = 1 ;
break ;
}
}
if ( found ) {
int enabled = ! strcmp ( parsed [ 5 ] , " enabled " ) ;
int loaded = ! strcmp ( parsed [ 1 ] , " loaded " ) ;
int active = ! strcmp ( parsed [ 2 ] , " active " ) ;
enum YON_UNIT_TYPE type = yon_get_unit_type ( parsed [ 0 ] ) ;
enum YON_UNIT_TYPE type = yon_get_unit_type ( names_parsed[ j ] ) ;
gtk_list_store_append ( widgets - > UserList , & iter ) ;
gtk_list_store_set ( widgets - > UserList , & iter , 3 , loaded , 4 , active , 5 , parsed [ 0 ] , 6 , parsed [ 4 ] , 7 , type , 8 , active , 9 , 1 , 11 , _ ( parsed [ 3 ] ) , 13 , parsed [ 3 ] , - 1 ) ;
gtk_list_store_set ( widgets - > UserList , & iter , 3 , enab led, 4 , active , 5 , names_parsed[ j ] , 6 , parsed [ 4 ] , 7 , type , 8 , active , 9 , loaded , 11 , _ ( parsed [ 3 ] ) , 13 , parsed [ 3 ] , - 1 ) ;
}
}
for ( int i = 0 ; i < user_units_size ; i + + ) {
yon_char_remove_last_symbol ( user_units [ i ] , ' \n ' ) ;
if ( ! yon_char_parsed_check_exist_begins_with ( user_services , user_size , user_units [ i ] ) ) {
GtkTreeIter iter ;
gtk_list_store_append ( widgets - > UserList , & iter ) ;
enum YON_UNIT_TYPE type = yon_get_unit_type ( user_units [ i ] ) ;
gtk_list_store_set ( widgets - > UserList , & iter , 0 , 0 , 1 , 0 , 2 , 0 , 3 , 0 , 4 , 0 , 5 , user_units [ i ] , 6 , " " , 7 , type , 8 , 0 , 9 , 0 , 10 , 0 , 11 , _ ( " disabled " ) , 13 , " disabled " , - 1 ) ;
yon_char_parsed_free ( names_parsed , names_size ) ;
}
}
yon_char_parsed_free ( user_services , user_size ) ;
// for (int i=0;i<user_units_size;i++){
// yon_char_remove_last_symbol(user_units[i],'\n');
// if (!yon_char_parsed_check_exist_begins_with(user_services,user_size,user_units[i])){
// GtkTreeIter iter;
// gtk_list_store_append(widgets->UserList,&iter);
// enum YON_UNIT_TYPE type = yon_get_unit_type(user_units[i]);
// gtk_list_store_set(widgets->UserList,&iter,0,0,1,0,2,0,3,0,4,0,5,user_units[i],6,"",7,type,8,0,9,0,10,0,11,_("disabled"),13,"disabled",-1);
// }
// }
int descr_size ;
config_str config_descr = yon_resource_open_file ( systemd_config_path , & descr_size ) ;
@ -1504,6 +1624,7 @@ void* yon_interface_update(main_window *widgets){
}
}
g_idle_add ( ( GSourceFunc ) yon_sessions_update , widgets ) ;
yon_char_parsed_free ( config_files , config_size ) ;
for ( size_t i = 0 ; i < json_object_array_length ( jsobject ) ; i + + ) {
struct json_object * item_obj = json_object_array_get_idx ( jsobject , i ) ;
@ -1599,6 +1720,7 @@ void on_interface_update(GtkWidget *, main_window *widgets){
if ( ! main_config . update_thread_active ) {
gtk_tree_selection_unselect_all ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > SystemUnitsTree ) ) ) ;
gtk_tree_selection_unselect_all ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > UserUnitsTree ) ) ) ;
yon_ubl_status_box_render ( LIST_LOAD_LABEL , BACKGROUND_IMAGE_INFO_TYPE ) ;
main_config . update_thread_active = 1 ;
g_thread_new ( " update " , ( GThreadFunc ) yon_interface_update , widgets ) ;
}
@ -1636,7 +1758,7 @@ void config_init(){
main_config . lock_load_global = 0 ;
main_config . lock_save_global = 0 ;
main_config . lock_save_local = 0 ;
main_config . load_mode = 1 ;
main_config . load_mode = YON_CONFIG_LOCAL ;
main_config . update_thread_active = 0 ;
main_config . launch_arguments = NULL ;
main_config . launch_size = 0 ;
@ -1822,6 +1944,17 @@ void yon_main_window_complete(main_window *widgets){
widgets - > SystemUnitsTree = yon_gtk_builder_get_widget ( builder , " SystemUnitsTree " ) ;
widgets - > MainNotebook = yon_gtk_builder_get_widget ( builder , " MainNotebook " ) ;
widgets - > SystemLoadingOverlay = yon_gtk_builder_get_widget ( builder , " SystemLoadingOverlay " ) ;
widgets - > SystemLoadingSpinner = yon_gtk_builder_get_widget ( builder , " SystemLoadingSpinner " ) ;
widgets - > UserLoadingOverlay = yon_gtk_builder_get_widget ( builder , " UserLoadingOverlay " ) ;
widgets - > UserLoadingSpinner = yon_gtk_builder_get_widget ( builder , " UserLoadingSpinner " ) ;
widgets - > ConfigLoadingOverlay = yon_gtk_builder_get_widget ( builder , " ConfigLoadingOverlay " ) ;
widgets - > ConfigLoadingSpinner = yon_gtk_builder_get_widget ( builder , " ConfigLoadingSpinner " ) ;
widgets - > SessionsLoadingOverlay = yon_gtk_builder_get_widget ( builder , " SessionsLoadingOverlay " ) ;
widgets - > SessionsLoadingSpinner = yon_gtk_builder_get_widget ( builder , " SessionsLoadingSpinner " ) ;
widgets - > TimersLoadingOverlay = yon_gtk_builder_get_widget ( builder , " TimersLoadingOverlay " ) ;
widgets - > TimersLoadingSpinner = yon_gtk_builder_get_widget ( builder , " TimersLoadingSpinner " ) ;
widgets - > TooltipBox = yon_gtk_builder_get_widget ( builder , " TooltipBox " ) ;
widgets - > NameLabel = yon_gtk_builder_get_widget ( builder , " NameLabel " ) ;
widgets - > DescriptionLabel = yon_gtk_builder_get_widget ( builder , " DescriptionLabel " ) ;
@ -2020,6 +2153,11 @@ void yon_main_window_complete(main_window *widgets){
gtk_widget_set_sensitive ( widgets - > SystemUpdateButton , 0 ) ;
gtk_widget_set_sensitive ( widgets - > SystemPrevButton , 0 ) ;
}
gtk_overlay_add_overlay ( GTK_OVERLAY ( widgets - > SystemLoadingOverlay ) , widgets - > SystemLoadingSpinner ) ;
gtk_overlay_add_overlay ( GTK_OVERLAY ( widgets - > UserLoadingOverlay ) , widgets - > UserLoadingSpinner ) ;
gtk_overlay_add_overlay ( GTK_OVERLAY ( widgets - > ConfigLoadingOverlay ) , widgets - > ConfigLoadingSpinner ) ;
gtk_overlay_add_overlay ( GTK_OVERLAY ( widgets - > SessionsLoadingOverlay ) , widgets - > SessionsLoadingSpinner ) ;
gtk_overlay_add_overlay ( GTK_OVERLAY ( widgets - > TimersLoadingOverlay ) , widgets - > TimersLoadingSpinner ) ;
yon_gtk_tree_view_minimal_fixed_size_set_full ( GTK_TREE_VIEW ( widgets - > UserUnitsTree ) ) ;
yon_gtk_tree_view_minimal_fixed_size_set_full ( GTK_TREE_VIEW ( widgets - > SystemUnitsTree ) ) ;
yon_gtk_tree_view_minimal_fixed_size_set_full ( GTK_TREE_VIEW ( widgets - > ConfigMainTree ) ) ;
@ -2077,9 +2215,12 @@ void yon_main_window_complete(main_window *widgets){
gtk_tree_model_filter_set_visible_func ( widgets - > SystemFilter , ( GtkTreeModelFilterVisibleFunc ) yon_filter , widgets , NULL ) ;
for ( int i = 0 ; i < 5 ; i + + ) {
gtk_tree_sortable_set_sort_func ( GTK_TREE_SORTABLE ( widgets - > SystemSort ) , i , ( GtkTreeIterCompareFunc ) sort_bool , GINT_TO_POINTER ( i ) , NULL ) ;
gtk_tree_sortable_set_sort_func ( GTK_TREE_SORTABLE ( widgets - > UserSort ) , i , ( GtkTreeIterCompareFunc ) sort_bool , GINT_TO_POINTER ( i ) , NULL ) ;
}
gtk_tree_sortable_set_sort_func ( GTK_TREE_SORTABLE ( widgets - > SystemSort ) , 5 , ( GtkTreeIterCompareFunc ) sort_string , GINT_TO_POINTER ( 13 ) , NULL ) ;
gtk_tree_sortable_set_sort_func ( GTK_TREE_SORTABLE ( widgets - > SystemSort ) , 6 , ( GtkTreeIterCompareFunc ) sort_string , GINT_TO_POINTER ( 6 ) , NULL ) ;
gtk_tree_sortable_set_sort_func ( GTK_TREE_SORTABLE ( widgets - > SystemSort ) , 6 , ( GtkTreeIterCompareFunc ) sort_string , GINT_TO_POINTER ( 5 ) , NULL ) ;
gtk_tree_sortable_set_sort_func ( GTK_TREE_SORTABLE ( widgets - > UserSort ) , 5 , ( GtkTreeIterCompareFunc ) sort_string , GINT_TO_POINTER ( 13 ) , NULL ) ;
gtk_tree_sortable_set_sort_func ( GTK_TREE_SORTABLE ( widgets - > UserSort ) , 6 , ( GtkTreeIterCompareFunc ) sort_string , GINT_TO_POINTER ( 5 ) , NULL ) ;
gtk_tree_view_set_search_column ( GTK_TREE_VIEW ( widgets - > UserUnitsTree ) , 5 ) ;
yon_load_proceed ( YON_CONFIG_LOCAL ) ;
yon_ubl_status_box_render ( LIST_LOAD_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;