@ -166,20 +166,24 @@ void on_activate(GtkTreeView *self, main_window *widgets){
void on_config_autostart_clicked ( GtkCellRenderer * , char * path , main_window * widgets ) {
GtkTreeIter filter_iter ;
GtkTreeIter iter ;
GtkTreeIter iter ,itor ;
GtkTreeModel * model ;
GtkTreeModel * filter ;
GtkTreeModel * sort ;
if ( gtk_notebook_get_current_page ( GTK_NOTEBOOK ( widgets - > MainNotebook ) ) = = 0 ) {
model = GTK_TREE_MODEL ( widgets - > SystemList ) ;
filter = GTK_TREE_MODEL ( widgets - > SystemFilter ) ;
sort = GTK_TREE_MODEL ( widgets - > SystemSort ) ;
} else {
model = GTK_TREE_MODEL ( widgets - > UserList ) ;
filter = GTK_TREE_MODEL ( widgets - > UserFilter ) ;
sort = GTK_TREE_MODEL ( widgets - > UserSort ) ;
}
GtkTreePath * path_converted = gtk_tree_path_new_from_string ( path ) ;
gtk_tree_model_get_iter ( filter , & filter_iter , path_converted ) ;
gtk_tree_model_get_iter ( sort , & filter_iter , path_converted ) ;
{
gtk_tree_model_filter_convert_iter_to_child_iter ( GTK_TREE_MODEL_FILTER ( filter ) , & iter , & filter_iter ) ;
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 ;
char * name ;
gtk_tree_model_get ( model , & iter , 0 , & status , 5 , & name , - 1 ) ;
@ -224,20 +228,24 @@ void on_config_autostart_clicked(GtkCellRenderer *, char *path, main_window *wid
void on_config_autostop_clicked ( GtkCellRenderer * , char * path , main_window * widgets ) {
GtkTreeIter filter_iter ;
GtkTreeIter iter ;
GtkTreeIter iter ,itor ;
GtkTreeModel * model ;
GtkTreeModel * filter ;
GtkTreeModel * sort ;
if ( gtk_notebook_get_current_page ( GTK_NOTEBOOK ( widgets - > MainNotebook ) ) = = 0 ) {
model = GTK_TREE_MODEL ( widgets - > SystemList ) ;
filter = GTK_TREE_MODEL ( widgets - > SystemFilter ) ;
sort = GTK_TREE_MODEL ( widgets - > SystemSort ) ;
} else {
model = GTK_TREE_MODEL ( widgets - > UserList ) ;
filter = GTK_TREE_MODEL ( widgets - > UserFilter ) ;
sort = GTK_TREE_MODEL ( widgets - > UserSort ) ;
}
GtkTreePath * path_converted = gtk_tree_path_new_from_string ( path ) ;
gtk_tree_model_get_iter ( filter , & filter_iter , path_converted ) ;
gtk_tree_model_get_iter ( sort , & filter_iter , path_converted ) ;
{
gtk_tree_model_filter_convert_iter_to_child_iter ( GTK_TREE_MODEL_FILTER ( filter ) , & iter , & filter_iter ) ;
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 ;
char * name ;
gtk_tree_model_get ( model , & iter , 1 , & status , 5 , & name , - 1 ) ;
@ -283,20 +291,24 @@ void on_config_autostop_clicked(GtkCellRenderer *, char *path, main_window *widg
void on_config_block_clicked ( GtkCellRenderer * , char * path , main_window * widgets ) {
GtkTreeIter filter_iter ;
GtkTreeIter iter ;
GtkTreeIter iter ,itor ;
GtkTreeModel * model ;
GtkTreeModel * filter ;
GtkTreeModel * sort ;
if ( gtk_notebook_get_current_page ( GTK_NOTEBOOK ( widgets - > MainNotebook ) ) = = 0 ) {
model = GTK_TREE_MODEL ( widgets - > SystemList ) ;
filter = GTK_TREE_MODEL ( widgets - > SystemFilter ) ;
sort = GTK_TREE_MODEL ( widgets - > SystemSort ) ;
} else {
model = GTK_TREE_MODEL ( widgets - > UserList ) ;
filter = GTK_TREE_MODEL ( widgets - > UserFilter ) ;
sort = GTK_TREE_MODEL ( widgets - > UserSort ) ;
}
GtkTreePath * path_converted = gtk_tree_path_new_from_string ( path ) ;
gtk_tree_model_get_iter ( filter , & filter_iter , path_converted ) ;
gtk_tree_model_get_iter ( sort , & filter_iter , path_converted ) ;
{
gtk_tree_model_filter_convert_iter_to_child_iter ( GTK_TREE_MODEL_FILTER ( filter ) , & iter , & filter_iter ) ;
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 ;
char * name ;
gtk_tree_model_get ( model , & iter , 2 , & status , 5 , & name , - 1 ) ;
@ -346,28 +358,33 @@ void on_system_autostart_confirmed(GtkWidget *,char *service_command){
void on_system_autostart_clicked ( GtkCellRenderer * , char * path , main_window * widgets ) {
GtkTreeIter filter_iter ;
GtkTreeIter iter ;
GtkTreeIter iter ,itor ;
GtkTreeModel * model ;
GtkTreeModel * filter ;
GtkTreeModel * sort ;
if ( gtk_notebook_get_current_page ( GTK_NOTEBOOK ( widgets - > MainNotebook ) ) = = 0 ) {
model = GTK_TREE_MODEL ( widgets - > SystemList ) ;
filter = GTK_TREE_MODEL ( widgets - > SystemFilter ) ;
sort = GTK_TREE_MODEL ( widgets - > SystemSort ) ;
} else {
model = GTK_TREE_MODEL ( widgets - > UserList ) ;
filter = GTK_TREE_MODEL ( widgets - > UserFilter ) ;
sort = GTK_TREE_MODEL ( widgets - > UserSort ) ;
}
GtkTreePath * path_converted = gtk_tree_path_new_from_string ( path ) ;
gtk_tree_model_get_iter ( filter , & filter_iter , path_converted ) ;
gtk_tree_model_get_iter ( sort , & filter_iter , path_converted ) ;
{
gtk_tree_model_filter_convert_iter_to_child_iter ( GTK_TREE_MODEL_FILTER ( filter ) , & iter , & filter_iter ) ;
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 ;
char * service_name ;
gtk_tree_model_get ( model , & iter , 3 , & status , 5 , & service_name , - 1 ) ;
dialog_confirmation_data * data = malloc( sizeof ( dialog_confirmation_data ) ) ;
dialog_confirmation_data * data = yon_confirmation_dialog_data_new( ) ;
data - > action_text = ( ! status ) = = 0 ? SERVICE_DISABLE_WARNING_LABEL ( service_name ) : SERVICE_ENABLE_WARNING_LABEL ( service_name ) ;
data - > data = ( ! status ) = = 1 ? service_enable_command ( service_name ) : \
service_disable_command ( service_name ) ;
data - > function = ( void * ) ( void * ) on_system_autostart_confirmed ;
data - > title = status ? SERVICE_AUTOSTOP_TITLE_LABEL : SERVICE_AUTOSTART_TITLE_LABEL ;
int responce = yon_confirmation_dialog_call ( widgets - > Window , data ) ;
if ( responce = = GTK_RESPONSE_ACCEPT ) {
gtk_list_store_set ( GTK_LIST_STORE ( model ) , & iter , 3 , ! status , - 1 ) ;
@ -376,10 +393,42 @@ void on_system_autostart_clicked(GtkCellRenderer *, char *path, main_window *wid
}
gboolean sort_bool ( GtkTreeModel * model , GtkTreeIter * a , GtkTreeIter * b , gpointer col ) {
int val_a , val_b ;
char * name_a = " " , * name_b = " " ;
gtk_tree_model_get ( model , a , GPOINTER_TO_INT ( col ) , & val_a , 6 , & name_a , - 1 ) ;
gtk_tree_model_get ( model , b , GPOINTER_TO_INT ( col ) , & val_b , 6 , & name_b , - 1 ) ;
if ( val_a = = val_b ) {
gchar * key_a = g_utf8_collate_key ( name_a , - 1 ) ;
gchar * key_b = g_utf8_collate_key ( name_b , - 1 ) ;
gint result = strcmp ( key_a , key_b ) ;
g_free ( key_a ) ;
g_free ( key_b ) ;
return result ;
}
return val_a ? - 1 : 1 ;
}
gboolean sort_string ( GtkTreeModel * model , GtkTreeIter * a , GtkTreeIter * b , gpointer col ) {
char * name_a = " " , * name_b = " " ;
gtk_tree_model_get ( model , a , GPOINTER_TO_INT ( col ) , & name_a , - 1 ) ;
gtk_tree_model_get ( model , b , GPOINTER_TO_INT ( col ) , & name_b , - 1 ) ;
if ( ! name_a ) name_a = " " ;
if ( ! name_b ) name_b = " " ;
gchar * key_a = g_utf8_collate_key ( name_a , - 1 ) ;
gchar * key_b = g_utf8_collate_key ( name_b , - 1 ) ;
gint result = strcmp ( key_a , key_b ) ;
g_free ( key_a ) ;
g_free ( key_b ) ;
return result ;
}
gboolean yon_filter ( GtkTreeModel * model , GtkTreeIter * iter , main_window * widgets ) {
gboolean autostart , autostop , masked , type , loaded , active ;
char * name ;
gtk_tree_model_get ( model , iter , 0 , & autostart , 1 , & autostop , 2 , & masked , 5 , & name , 7 , & type , 8 , & loaded , 9 , & active , - 1 ) ;
gtk_tree_model_get ( model , iter , 0 , & autostart , 1 , & autostop , 2 , & masked , 5 , & name , 7 , & type , 8 , & active, 9 , & loaded , - 1 ) ;
GtkWidget * combo = NULL ;
GtkWidget * loaded_check = NULL ;
GtkWidget * active_check = NULL ;
@ -439,11 +488,11 @@ void on_filter_changed(GtkWidget *, main_window *widgets){
if ( page = = 0 ) {
gtk_tree_view_set_model ( GTK_TREE_VIEW ( widgets - > SystemUnitsTree ) , NULL ) ;
gtk_tree_model_filter_refilter ( widgets - > SystemFilter ) ;
gtk_tree_view_set_model ( GTK_TREE_VIEW ( widgets - > SystemUnitsTree ) , GTK_TREE_MODEL ( widgets - > System Filter ) ) ;
gtk_tree_view_set_model ( GTK_TREE_VIEW ( widgets - > SystemUnitsTree ) , GTK_TREE_MODEL ( widgets - > System Sort ) ) ;
} else if ( page = = 1 ) {
gtk_tree_view_set_model ( GTK_TREE_VIEW ( widgets - > UserUnitsTree ) , NULL ) ;
gtk_tree_model_filter_refilter ( widgets - > UserFilter ) ;
gtk_tree_view_set_model ( GTK_TREE_VIEW ( widgets - > UserUnitsTree ) , GTK_TREE_MODEL ( widgets - > User Filter ) ) ;
gtk_tree_view_set_model ( GTK_TREE_VIEW ( widgets - > UserUnitsTree ) , GTK_TREE_MODEL ( widgets - > User Sort ) ) ;
}
}
@ -452,28 +501,32 @@ void on_system_kill_confirmed(GtkWidget *,char *service_name){
}
void on_system_launch_clicked ( GtkWidget * , char * path , main_window * widgets ) {
GtkTreeIter iter , filter_iter;
GtkTreeIter iter , itor, filter_iter;
GtkTreeModel * model ;
GtkTreeModel * filter ;
GtkTreeModel * sort ;
if ( gtk_notebook_get_current_page ( GTK_NOTEBOOK ( widgets - > MainNotebook ) ) = = 0 ) {
model = GTK_TREE_MODEL ( widgets - > SystemList ) ;
filter = GTK_TREE_MODEL ( widgets - > SystemFilter ) ;
sort = GTK_TREE_MODEL ( widgets - > SystemSort ) ;
} else {
model = GTK_TREE_MODEL ( widgets - > UserList ) ;
filter = GTK_TREE_MODEL ( widgets - > UserFilter ) ;
sort = GTK_TREE_MODEL ( widgets - > UserSort ) ;
}
GtkTreePath * path_converted = gtk_tree_path_new_from_string ( path ) ;
gtk_tree_model_get_iter ( filter , & filter_iter , path_converted ) ;
gtk_tree_model_get_iter ( sort , & filter_iter , path_converted ) ;
{
gtk_tree_model_filter_convert_iter_to_child_iter ( GTK_TREE_MODEL_FILTER ( filter ) , & iter , & filter_iter ) ;
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 ;
char * service_name ;
gtk_tree_model_get ( model , & iter , 4 , & status , 5 , & service_name , - 1 ) ;
if ( status ) {
dialog_confirmation_data * data = malloc( sizeof ( dialog_confirmation_data ) ) ;
dialog_confirmation_data * data = yon_confirmation_dialog_data_new( ) ;
data - > action_text = SERVICE_STOP_WARNING_LABEL ( service_name ) ;
data - > data = service_stop_command ( service_name ) ;
data - > function= NUL L;
data - > title = SERVICE_STOP_TITLE_LABE L;
int size ;
config_str result = yon_config_load ( service_check_active_command ( service_name ) , & size ) ;
yon_char_remove_last_symbol ( result [ 0 ] , ' \n ' ) ;
@ -496,10 +549,11 @@ void on_system_launch_clicked(GtkWidget *, char *path, main_window *widgets){
}
yon_char_parsed_free ( result , size ) ;
} else {
dialog_confirmation_data * data = malloc( sizeof ( dialog_confirmation_data ) ) ;
dialog_confirmation_data * data = yon_confirmation_dialog_data_new( ) ;
data - > action_text = SERVICE_START_WARNING_LABEL ( service_name ) ;
data - > data = service_start_command ( service_name ) ;
data - > function = ( void * ) ( void * ) on_system_kill_confirmed ;
data - > title = SERVICE_START_TITLE_LABEL ;
int size ;
config_str result = yon_config_load ( service_check_active_command ( service_name ) , & size ) ;
yon_char_remove_last_symbol ( result [ 0 ] , ' \n ' ) ;
@ -507,7 +561,7 @@ void on_system_launch_clicked(GtkWidget *, char *path, main_window *widgets){
int responce = yon_confirmation_dialog_call ( widgets - > Window , data ) ;
if ( responce = = GTK_RESPONSE_ACCEPT ) {
gtk_list_store_set ( GTK_LIST_STORE ( model ) , & iter , 4 , 1 , - 1 ) ;
yon_ubl_status_box_render ( SERVICE_ RELOAD _SUCCESS_LABEL, BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
yon_ubl_status_box_render ( SERVICE_ START _SUCCESS_LABEL, BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
}
}
}
@ -535,10 +589,11 @@ void on_system_restart_clicked(GtkWidget *, main_window *widgets){
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( target_tree ) ) , & model , & iter ) ) {
char * target ;
gtk_tree_model_get ( model , & iter , 5 , & target , - 1 ) ;
dialog_confirmation_data * data = malloc( sizeof ( dialog_confirmation_data ) ) ;
dialog_confirmation_data * data = yon_confirmation_dialog_data_new( ) ;
data - > action_text = REEXEC_SERVICE_WARMING_LABEL ( target ) ;
data - > data = target ;
data - > function = ( void * ) ( void * ) on_service_restart_confirmed ;
data - > title = RELAUNCH_SERVICE_LABEL ;
int responce = yon_confirmation_dialog_call ( widgets - > Window , data ) ;
if ( responce = = GTK_RESPONSE_ACCEPT ) {
yon_ubl_status_box_render ( SERVICE_RELOAD_SUCCESS_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
@ -553,14 +608,16 @@ void on_sessions_selection_changed(GtkWidget *, main_window *widgets){
gtk_widget_set_sensitive ( widgets - > SessionStopButton , 1 ) ;
gtk_widget_set_sensitive ( widgets - > SessionBlockButton , 1 ) ;
gtk_widget_set_sensitive ( widgets - > SessionStartButton , 1 ) ;
gtk_widget_set_sensitive ( widgets - > SessionSwitchButton , 1 ) ;
} else {
gtk_widget_set_sensitive ( widgets - > SessionStopButton , 0 ) ;
gtk_widget_set_sensitive ( widgets - > SessionBlockButton , 0 ) ;
gtk_widget_set_sensitive ( widgets - > SessionStartButton , 0 ) ;
gtk_widget_set_sensitive ( widgets - > SessionSwitchButton , 0 ) ;
}
}
void yon_sessions_update ( main_window * widgets ) {
gboolean yon_sessions_update ( main_window * widgets ) {
gtk_tree_view_set_model ( GTK_TREE_VIEW ( widgets - > SessionMainTree ) , NULL ) ;
gtk_list_store_clear ( widgets - > SessionsList ) ;
int sessions_size ;
@ -574,48 +631,93 @@ void yon_sessions_update(main_window *widgets){
else parsed [ 1 ] = INACTIVE_LABEL ;
if ( parsed & & size > 4 ) {
gtk_list_store_append ( widgets - > SessionsList , & iter ) ;
gtk_list_store_set ( widgets - > SessionsList , & iter , 0 , atoi ( parsed [ 0 ] ) , 1 , parsed [ 1 ] , 2 , atoi ( parsed [ 2 ] ) , 3 , parsed [ 3 ] , 4 , parsed [ 4 ] , - 1 ) ;
gtk_list_store_set ( widgets - > SessionsList , & iter , 0 , atoi ( parsed [ 0 ] ) , 1 , parsed [ 1 ] , 2 , atoi ( parsed [ 2 ] ) , 3 , parsed [ 3 ] , 4 , parsed [ 4 ] , 5 , parsed [ 4 ] , 6 , parsed [ 5 ] , - 1 ) ;
}
}
gtk_tree_view_set_model ( GTK_TREE_VIEW ( widgets - > SessionMainTree ) , GTK_TREE_MODEL ( widgets - > SessionsList ) ) ;
return G_SOURCE_REMOVE ;
}
void on_session_activate ( GtkWidget * , main_window * widgets ) {
void on_session_activate ( GtkWidget * self , main_window * widgets ) {
GtkTreeModel * model = GTK_TREE_MODEL ( widgets - > SessionsList ) ;
GtkTreeIter iter ;
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > SessionMainTree ) ) , & model , & iter ) ) {
int id ;
gtk_tree_model_get ( model , & iter , 0 , & id , - 1 ) ;
dialog_confirmation_data * data = yon_confirmation_dialog_data_new ( ) ;
char * convert = yon_char_from_int ( id ) ;
yon_launch ( session_activate_session ( convert ) ) ;
free ( convert ) ;
yon_sessions_update ( widgets ) ;
data - > action_text = SESSION_ACTIVATE_TOOLTIP_LABEL ( convert ) ;
data - > title = SESSION_SWITCH_TITLE_LABEL ( convert ) ;
if ( yon_confirmation_dialog_call ( self , data ) = = GTK_RESPONSE_ACCEPT ) {
yon_launch ( session_activate_session ( convert ) ) ;
free ( convert ) ;
yon_sessions_update ( widgets ) ;
}
}
}
void on_session_end ( GtkWidget * , main_window * widgets ) {
void on_session_end ( GtkWidget * self , main_window * widgets ) {
GtkTreeModel * model = GTK_TREE_MODEL ( widgets - > SessionsList ) ;
GtkTreeIter iter ;
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > SessionMainTree ) ) , & model , & iter ) ) {
int id ;
gtk_tree_model_get ( model , & iter , 0 , & id , - 1 ) ;
dialog_confirmation_data * data = yon_confirmation_dialog_data_new ( ) ;
char * convert = yon_char_from_int ( id ) ;
yon_launch ( session_terminate_session ( convert ) ) ;
free ( convert ) ;
yon_sessions_update ( widgets ) ;
data - > action_text = SESSION_END_TOOLTIP_LABEL ( convert ) ;
data - > title = SESSION_TERMINATE_TITLE_LABEL ( convert ) ;
if ( yon_confirmation_dialog_call ( self , data ) = = GTK_RESPONSE_ACCEPT ) {
if ( ! system ( session_terminate_session ( convert ) ) ) {
GtkTreeModel * model ;
GtkTreeIter iter ;
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > SessionMainTree ) ) , & model , & iter ) ) {
gtk_list_store_remove ( widgets - > SessionsList , & iter ) ;
}
}
free ( convert ) ;
}
}
}
void on_session_unlock ( GtkWidget * self , main_window * widgets ) {
GtkTreeModel * model = GTK_TREE_MODEL ( widgets - > SessionsList ) ;
GtkTreeIter iter ;
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > SessionMainTree ) ) , & model , & iter ) ) {
int id ;
gtk_tree_model_get ( model , & iter , 0 , & id , - 1 ) ;
dialog_confirmation_data * data = yon_confirmation_dialog_data_new ( ) ;
char * convert = yon_char_from_int ( id ) ;
data - > action_text = SESSION_UNLOCK_TOOLTIP_LABEL ( convert ) ;
data - > data = NULL ;
data - > function = NULL ;
data - > title = SESSION_UNLOCK_TITLE_LABEL ( convert ) ;
if ( yon_confirmation_dialog_call ( self , data ) = = GTK_RESPONSE_ACCEPT ) {
yon_launch ( session_unlock_session ( convert ) ) ;
free ( convert ) ;
yon_sessions_update ( widgets ) ;
}
}
}
void on_session_block ( GtkWidget * , main_window * widgets ) {
void on_session_block ( GtkWidget * self , main_window * widgets ) {
GtkTreeModel * model = GTK_TREE_MODEL ( widgets - > SessionsList ) ;
GtkTreeIter iter ;
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > SessionMainTree ) ) , & model , & iter ) ) {
int id ;
gtk_tree_model_get ( model , & iter , 0 , & id , - 1 ) ;
dialog_confirmation_data * data = yon_confirmation_dialog_data_new ( ) ;
char * convert = yon_char_from_int ( id ) ;
yon_launch ( session_lock_session ( convert ) ) ;
free ( convert ) ;
yon_sessions_update ( widgets ) ;
data - > action_text = SESSION_BLOCK_TOOLTIP_LABEL ( convert ) ;
data - > data = NULL ;
data - > function = NULL ;
data - > title = SESSION_LOCK_TITLE_LABEL ( convert ) ;
if ( yon_confirmation_dialog_call ( self , data ) = = GTK_RESPONSE_ACCEPT ) {
yon_launch ( session_lock_session ( convert ) ) ;
free ( convert ) ;
yon_sessions_update ( widgets ) ;
}
}
}
@ -686,10 +788,15 @@ typedef void (*data_function)(void*,void*);
void on_system_update_hz_clicked ( GtkWidget * self , main_window * widgets ) {
if ( widgets ) {
dialog_confirmation_data * data = malloc ( sizeof ( dialog_confirmation_data ) ) ;
data - > action_text = RELOAD_SERVICE_WARMING_LABEL ( " systemd " ) ;
dialog_confirmation_data * data = yon_confirmation_dialog_data_new ( ) ;
if ( gtk_notebook_get_current_page ( GTK_NOTEBOOK ( widgets - > MainNotebook ) ) = = 0 ) {
data - > action_text = RELOAD_SYSTEM_SETTINGS_WARNING_LABEL ;
} else if ( gtk_notebook_get_current_page ( GTK_NOTEBOOK ( widgets - > MainNotebook ) ) = = 1 ) {
data - > action_text = RELOAD_USER_SETTINGS_WARNING_LABEL ;
}
data - > data = widgets ;
data - > function = ( data_function ) yon_system_systemd_restart ;
data - > title = RELAUNCH_SYSTEMCTL_LABEL ;
yon_confirmation_dialog_call ( self , data ) ;
}
@ -697,7 +804,7 @@ void on_system_update_hz_clicked(GtkWidget *self, main_window *widgets){
void on_system_update_clicked ( GtkWidget * self , main_window * widgets ) {
if ( widgets ) {
dialog_confirmation_data * data = malloc( sizeof ( dialog_confirmation_data ) ) ;
dialog_confirmation_data * data = yon_confirmation_dialog_data_new( ) ;
data - > action_text = REEXEC_SERVICE_WARMING_LABEL ( " systemd " ) ;
data - > data = widgets ;
data - > function = ( data_function ) yon_system_systemd_reexec ;
@ -808,10 +915,11 @@ void on_system_status_clicked(GtkWidget *, main_window *widgets){
void on_user_update_hz_clicked ( GtkWidget * self , main_window * widgets ) {
if ( widgets ) {
dialog_confirmation_data * data = malloc( sizeof ( dialog_confirmation_data ) ) ;
dialog_confirmation_data * data = yon_confirmation_dialog_data_new( ) ;
data - > action_text = REEXEC_SERVICE_WARMING_LABEL ( " systemd " ) ;
data - > data = widgets ;
data - > function = ( data_function ) yon_system_systemd_restart ;
data - > title = REEXEC_SYSTEMCTL_LABEL ;
yon_confirmation_dialog_call ( self , data ) ;
}
@ -820,7 +928,7 @@ void on_user_update_hz_clicked(GtkWidget *self, main_window *widgets){
void on_user_update_clicked ( GtkWidget * self , main_window * widgets ) {
if ( widgets ) {
dialog_confirmation_data * data = malloc( sizeof ( dialog_confirmation_data ) ) ;
dialog_confirmation_data * data = yon_confirmation_dialog_data_new( ) ;
data - > action_text = RELOAD_SERVICE_WARMING_LABEL ( " systemd " ) ;
data - > data = widgets ;
data - > function = ( data_function ) yon_system_systemd_reexec ;
@ -1049,9 +1157,17 @@ gboolean yon_interface_list_models_disconnect(main_window *widgets){
return G_SOURCE_REMOVE ;
}
void on_sort_activate ( GtkTreeViewColumn * self , main_window * widgets ) {
if ( self = = gtk_tree_view_get_column ( GTK_TREE_VIEW ( widgets - > SystemUpperTree ) , 2 ) ) {
gtk_tree_view_column_clicked ( gtk_tree_view_get_column ( GTK_TREE_VIEW ( widgets - > SystemUnitsTree ) , 6 ) ) ;
} else {
gtk_tree_view_column_clicked ( gtk_tree_view_get_column ( GTK_TREE_VIEW ( widgets - > UserUnitsTree ) , 6 ) ) ;
}
}
gboolean yon_interface_list_models_connect ( main_window * widgets ) {
gtk_tree_view_set_model ( GTK_TREE_VIEW ( widgets - > SystemUnitsTree ) , GTK_TREE_MODEL ( widgets - > SystemFilter ) ) ;
gtk_tree_view_set_model ( GTK_TREE_VIEW ( widgets - > UserUnitsTree ) , GTK_TREE_MODEL ( widgets - > UserFilter ) ) ;
gtk_tree_view_set_model ( GTK_TREE_VIEW ( widgets - > SystemUnitsTree ) , GTK_TREE_MODEL ( widgets - > System Sort ) ) ;
gtk_tree_view_set_model ( GTK_TREE_VIEW ( widgets - > UserUnitsTree ) , GTK_TREE_MODEL ( widgets - > User Sort ) ) ;
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 ) ) ;
@ -1065,21 +1181,21 @@ gboolean yon_interface_list_models_connect(main_window *widgets){
gboolean yon_system_set ( struct system_services_data * data ) {
GtkTreeIter iter ;
gtk_list_store_append ( data - > widgets - > SystemList , & iter ) ;
gtk_list_store_set ( data - > widgets - > SystemList , & iter , 3 , data - > SystemAutostart , 4 , data - > SystemLaunched , 5 , data - > Name , 6 , data - > Descr , 7 , data - > Type , 8 , data - > Loaded , 9 , data - > Active , 11 , data - > State , - 1 ) ;
gtk_list_store_set ( data - > widgets - > SystemList , & iter , 3 , data - > SystemAutostart , 4 , data - > SystemLaunched , 5 , data - > Name , 6 , data - > Descr , 7 , data - > Type , 8 , data - > Loaded , 9 , data - > Active , 11 , _ ( data - > State ) , 13 , data - > State , - 1 ) ;
return G_SOURCE_REMOVE ;
}
gboolean yon_user_set ( struct system_user_data * data ) {
GtkTreeIter iter ;
gtk_list_store_append ( data - > widgets - > UserList , & iter ) ;
gtk_list_store_set ( data - > widgets - > UserList , & iter , 3 , data - > SystemAutostart , 4 , data - > SystemLaunched , 5 , data - > Name , 6 , data - > Descr , 5 , data - > Name , 6 , data - > Descr , 7 , data - > Type , 8 , data - > Loaded , 9 , data - > Active , 11 , data - > State , - 1 ) ;
gtk_list_store_set ( data - > widgets - > UserList , & iter , 3 , data - > SystemAutostart , 4 , data - > SystemLaunched , 5 , data - > Name , 6 , data - > Descr , 5 , data - > Name , 6 , data - > Descr , 7 , data - > Type , 8 , data - > Loaded , 9 , data - > Active , 11 , _ ( data - > State ) , 13 , data - > State , - 1 ) ;
return G_SOURCE_REMOVE ;
}
gboolean yon_system_config_set ( struct system_config_data * data ) {
GtkTreeIter iter ;
gtk_list_store_append ( data - > widgets - > ConfigList , & iter ) ;
gtk_list_store_set ( data - > widgets - > ConfigList , & iter , 0 , data - > Name , 1 , data - > D at e, 2 , data - > D escr , - 1 ) ;
gtk_list_store_set ( data - > widgets - > ConfigList , & iter , 0 , data - > Name , 1 , data - > D escr , 2 , data - > D at e, - 1 ) ;
return G_SOURCE_REMOVE ;
}
@ -1220,22 +1336,29 @@ 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 ) ;
yon_ubl_status_box_render ( final , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
free ( final ) ;
return G_SOURCE_REMOVE ;
}
void * yon_interface_update ( main_window * widgets ) {
dictionary * dict = yon_systemd_get_list ( ) ;
if ( dict ) { }
// dictionary *dict = yon_systemd_get_list();
// if (dict){}
if ( 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_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 user_size ;
config_str user_services = yon_config_load ( load_user_services_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 ) ;
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 ) ;
@ -1243,47 +1366,101 @@ void* yon_interface_update(main_window *widgets){
yon_char_remove_last_symbol ( launched [ i ] , ' \n ' ) ;
}
dictionary * dact = NULL ;
for_dictionaries ( dact , dict ) {
enum YON_UNIT_TYPE type = yon_get_unit_type ( ( ( systemd_struct * ) dact - > data ) - > name ) ;
struct system_services_data * data = malloc ( sizeof ( struct system_services_data ) ) ;
{
data - > widgets = widgets ;
data - > SystemAutostart = ( ( systemd_struct * ) dact - > data ) - > enable ;
data - > SystemLaunched = ( ( systemd_struct * ) dact - > data ) - > active ;
data - > Name = ( ( systemd_struct * ) dact - > data ) - > name ;
data - > Descr = ( ( systemd_struct * ) dact - > data ) - > description ;
data - > Type = type ;
data - > Loaded = ( ( systemd_struct * ) dact - > data ) - > load ;
data - > Active = ( ( systemd_struct * ) dact - > data ) - > active ;
data - > State = ( ( systemd_struct * ) dact - > data ) - > state ;
}
g_idle_add ( ( GSourceFunc ) yon_system_set , data ) ;
// dictionary *dact = NULL;
// for_dictionaries(dact,dict){
// enum YON_UNIT_TYPE type = yon_get_unit_type(((systemd_struct*)dact->data)->name);
// struct system_services_data *data = malloc(sizeof(struct system_services_data));
// {
// data->widgets=widgets;
// data->SystemAutostart=((systemd_struct*)dact->data)->enable;
// data->SystemLaunched=((systemd_struct*)dact->data)->active;
// data->Name=((systemd_struct*)dact->data)->name;
// data->Descr=((systemd_struct*)dact->data)->description;
// data->Type = type;
// data->Loaded=((systemd_struct*)dact->data)->load;
// data->Active=((systemd_struct*)dact->data)->active;
// data->State=((systemd_struct*)dact->data)->state;
// }
// g_idle_add((GSourceFunc)yon_system_set,data);
// }
for ( int i = 0 ; i < system_size ; i + + ) {
GtkTreeIter iter ;
if ( system_services [ i ] [ strlen ( system_services [ i ] ) - 1 ] = = ' \n ' ) system_services [ i ] [ strlen ( system_services [ i ] ) - 1 ] = ' \0 ' ;
int size ;
config_str parsed = yon_char_parse ( system_services [ i ] , & 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 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 , loaded , 4 , active , 5 , parsed [ 0 ] , 6 , parsed [ 4 ] , 7 , type , 8 , active , 9 , 1 , 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 ) ;
}
}
// 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';
// int size;
// config_str parsed = yon_char_parse(user_services[i],&size,";");
// if (parsed){
// // int loaded = !system(user_check_enabled_command(parsed[0]));
// // int active = !system(user_check_active_command(parsed[0]));
// enum YON_UNIT_TYPE type = yon_get_unit_type(parsed[0]);
// struct system_user_data *data = malloc(sizeof(struct system_user_data));
// {
// data->widgets=widgets;
// data->SystemAutostart=0;//loaded;
// data->SystemLaunched=0;//active;
// data->Name=yon_char_new(parsed[0]);
// data->Descr=yon_char_new(parsed[4]);
// data->Type = type;
// data->Loaded=strcmp(parsed[1],"loaded")?0:1;
// data->Active=strcmp(parsed[2],"active")?0:1;
// data->State=yon_char_new(_(parsed[3]));
// }
// g_idle_add((GSourceFunc)yon_user_set,data);
// }
// yon_char_parsed_free(parsed,size);
// }
for ( int i = 0 ; i < user_size ; i + + ) {
GtkTreeIter iter ;
if ( user_services [ i ] [ strlen ( user_services [ i ] ) - 1 ] = = ' \n ' ) user_services [ i ] [ strlen ( user_services [ i ] ) - 1 ] = ' \0 ' ;
int size ;
config_str parsed = yon_char_parse ( user_services [ i ] , & size , " ; " ) ;
if ( parsed ) {
// int loaded = !system(user_check_enabled_command(parsed[0]));
// int active = !system(user_check_active_command(parsed[0]));
enum YON_UNIT_TYPE type = yon_get_unit_type ( parsed [ 0 ] ) ;
struct system_user_data * data = malloc ( sizeof ( struct system_user_data ) ) ;
{
data - > widgets = widgets ;
data - > SystemAutostart = 0 ; //loaded;
data - > SystemLaunched = 0 ; //active;
data - > Name = yon_char_new ( parsed [ 0 ] ) ;
data - > Descr = yon_char_new ( parsed [ 4 ] ) ;
data - > Type = type ;
data - > Loaded = strcmp ( parsed [ 1 ] , " loaded " ) ? 0 : 1 ;
data - > Active = strcmp ( parsed [ 2 ] , " active " ) ? 0 : 1 ;
data - > State = yon_char_new ( _ ( parsed [ 3 ] ) ) ;
}
g_idle_add ( ( GSourceFunc ) yon_user_set , data ) ;
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 - > 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 ) ;
}
}
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 ( parsed , size ) ;
}
int descr_size ;
@ -1326,7 +1503,7 @@ void* yon_interface_update(main_window *widgets){
g_idle_add ( ( GSourceFunc ) yon_system_config_set , data ) ;
}
}
yon_sessions_update( widgets ) ;
g_idle_add( ( GSourceFunc ) yon_sessions_update , widgets ) ;
for ( size_t i = 0 ; i < json_object_array_length ( jsobject ) ; i + + ) {
struct json_object * item_obj = json_object_array_get_idx ( jsobject , i ) ;
@ -1556,7 +1733,7 @@ gboolean on_tooltip_show(GtkWidget*, gint x, gint y, gboolean, GtkTooltip* toolt
if ( name [ 0 ] = = ' - ' ) {
name_target = yon_char_append ( " -- " , name_target ) ;
}
config_str target = yon_config_load ( get_activate_deactivate_times( name_target ) , & size ) ;
config_str target = yon_config_load ( yon_debug_output( " %s \n " , get_activate_deactivate_times( name_target ) ) , & size ) ;
free ( name_target ) ;
if ( target ) {
free ( yon_char_divide_search ( target [ 0 ] , " = " , - 1 ) ) ;
@ -1578,7 +1755,7 @@ gboolean on_tooltip_show(GtkWidget*, gint x, gint y, gboolean, GtkTooltip* toolt
if ( target ) {
gchar * formatted_activa = g_strdup ( NULL_LABEL ) ; //!yon_char_is_empty(target[1])&&strcmp(target[1],"0")?target[1]:g_strdup(NULL_LABEL);
gchar * formatted_deactiva = g_strdup ( NULL_LABEL ) ; //!yon_char_is_empty(target[2])&&strcmp(target[2],"0")?target[2]:g_strdup(NULL_LABEL);
if ( strcmp ( target [ 1 ] , " 0 " ) ) {
if ( ! yon_char_is_empty ( target [ 1 ] ) & & strcmp ( target [ 1 ] , " 0 " ) ) {
int activated_size ;
config_str activated_parsed = yon_char_parse ( target [ 1 ] , & activated_size , " " ) ;
int date_size ;
@ -1587,16 +1764,16 @@ gboolean on_tooltip_show(GtkWidget*, gint x, gint y, gboolean, GtkTooltip* toolt
char * temp = date_parsed [ 0 ] ;
date_parsed [ 0 ] = date_parsed [ 2 ] ;
date_parsed [ 2 ] = temp ;
formatted_ de activa = yon_char_unite ( date_parsed ? yon_char_parsed_to_string ( date_parsed , date_size , " . " ) : " " , " " , activated_parsed [ 2 ] , NULL ) ;
formatted_ activa = yon_char_unite ( date_parsed ? yon_char_parsed_to_string ( date_parsed , date_size , " . " ) : " " , " " , activated_parsed [ 2 ] , NULL ) ;
if ( date_size ) yon_char_parsed_free ( date_parsed , date_size ) ;
}
if ( activated_size ) yon_char_parsed_free ( activated_parsed , activated_size ) ;
}
if ( strcmp ( target [ 2 ] , " 0 " ) ) {
if ( ! yon_char_is_empty ( target [ 2 ] ) & & strcmp ( target [ 2 ] , " 0 " ) ) {
int deactivated_size ;
config_str deactivated_parsed = yon_char_parse ( target [ 2 ] , & deactivated_size , " " ) ;
int date_size ;
config_str date_parsed = yon_char_parse ( deactivated_parsed [ 0 ] , & date_size , " - " ) ;
config_str date_parsed = yon_char_parse ( deactivated_parsed [ 1 ] , & date_size , " - " ) ;
if ( date_size > = 2 ) {
char * temp = date_parsed [ 0 ] ;
date_parsed [ 0 ] = date_parsed [ 2 ] ;
@ -1680,7 +1857,9 @@ void yon_main_window_complete(main_window *widgets){
widgets - > SystemEditButton = yon_gtk_builder_get_widget ( builder , " SystemEditButton " ) ;
widgets - > SystemPropertiesButton = yon_gtk_builder_get_widget ( builder , " SystemPropertiesButton " ) ;
widgets - > SystemFilter = GTK_TREE_MODEL_FILTER ( gtk_builder_get_object ( builder , " SystemFilter " ) ) ;
widgets - > SystemSort = GTK_TREE_MODEL_SORT ( gtk_builder_get_object ( builder , " SystemSort " ) ) ;
widgets - > UserFilter = GTK_TREE_MODEL_FILTER ( gtk_builder_get_object ( builder , " UserFilter " ) ) ;
widgets - > UserSort = GTK_TREE_MODEL_SORT ( gtk_builder_get_object ( builder , " UserSort " ) ) ;
widgets - > SystemStatusButton = yon_gtk_builder_get_widget ( builder , " SystemStatusButton " ) ;
widgets - > ConfigAutostartCell = GTK_CELL_RENDERER ( gtk_builder_get_object ( builder , " ConfigAutostartCell " ) ) ;
widgets - > ConfigAutostopCell = GTK_CELL_RENDERER ( gtk_builder_get_object ( builder , " ConfigAutostopCell " ) ) ;
@ -1727,19 +1906,24 @@ void yon_main_window_complete(main_window *widgets){
PROPERTIES_LABEL , properties_icon_path , on_user_status_clicked , widgets ,
NULL ) ;
widgets - > ConfigUpdateButton = yon_gtk_builder_get_widget ( builder , " ConfigUpdateButton " ) ;
widgets - > ConfigEditButton = yon_gtk_builder_get_widget ( builder , " ConfigEditButton " ) ;
widgets - > ConfigMainTree = yon_gtk_builder_get_widget ( builder , " ConfigMainTree " ) ;
widgets - > SessionRestartButton = yon_gtk_builder_get_widget ( builder , " SessionRestartButton " ) ;
widgets - > SessionMainTree = yon_gtk_builder_get_widget ( builder , " SessionMainTree " ) ;
widgets - > SessionSwitchButton = yon_gtk_builder_get_widget ( builder , " SessionSwitchButton " ) ;
widgets - > SessionStartButton = yon_gtk_builder_get_widget ( builder , " SessionStartButton " ) ;
widgets - > SessionStopButton = yon_gtk_builder_get_widget ( builder , " SessionStopButton " ) ;
widgets - > SessionBlockButton = yon_gtk_builder_get_widget ( builder , " SessionBlockButton " ) ;
widgets - > SessionMenu = yon_rmb_menu_setup ( widgets - > SessionMainTree , NULL , NULL ,
ACTIVATE_SESSION_LABEL, play_icon_path , G_CALLBACK ( on_session_activ ate) , widgets ,
END_SESSION_LABEL, stop _icon_path, G_CALLBACK ( on_session_ end ) , widgets ,
UPDATE_LABEL, update_icon_path , G_CALLBACK ( on_interface_upd ate) , widgets ,
ACTIVATE_SESSION_LABEL, switch _icon_path, G_CALLBACK ( on_session_ activat e) , widgets ,
BLOCK_SESSION_LABEL , block_icon_path , G_CALLBACK ( on_session_block ) , widgets ,
UNLOCK_SESSION_LABEL , unlock_icon_path , G_CALLBACK ( on_session_unlock ) , widgets ,
END_SESSION_LABEL , end_icon_path , G_CALLBACK ( on_session_end ) , widgets ,
NULL ) ;
gtk_style_context_add_class ( gtk_widget_get_style_context ( ( ( GtkWidget * ) widgets - > SessionMenu - > buttons - > first - > data ) ) , " separatorBottom " ) ;
{
GList * list = gtk_container_get_children ( GTK_CONTAINER ( widgets - > SystemMenu - > menu ) ) ;
gtk_style_context_add_class ( gtk_widget_get_style_context ( g_list_nth_data ( list , 1 ) ) , " separatorTop " ) ;
@ -1756,6 +1940,7 @@ void yon_main_window_complete(main_window *widgets){
widgets - > SystemDescriptionLabel = yon_gtk_builder_get_widget ( builder , " SystemDescriptionLabel " ) ;
}
widgets - > TimersMainTree = yon_gtk_builder_get_widget ( builder , " TimersMainTree " ) ;
widgets - > TimersUpdateButton = yon_gtk_builder_get_widget ( builder , " TimersUpdateButton " ) ;
GList * list = gtk_tree_view_get_columns ( GTK_TREE_VIEW ( widgets - > SystemUnitsTree ) ) ;
yon_gtk_tree_view_minimal_fixed_size_set_full ( GTK_TREE_VIEW ( widgets - > SystemUnitsTree ) ) ;
@ -1789,9 +1974,11 @@ void yon_main_window_complete(main_window *widgets){
g_signal_connect ( G_OBJECT ( widgets - > UserUnloadedShowCheck ) , " toggled " , G_CALLBACK ( on_filter_changed ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > ConfigEditButton ) , " clicked " , G_CALLBACK ( on_config_edit_clicked ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > ConfigUpdateButton ) , " clicked " , G_CALLBACK ( on_interface_update ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > SessionRestartButton ) , " clicked " , G_CALLBACK ( on_interface_update ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > SessionStartButton ) , " clicked " , G_CALLBACK ( on_session_activate ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > SessionSwitchButton ) , " clicked " , G_CALLBACK ( on_session_activate ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > SessionStartButton ) , " clicked " , G_CALLBACK ( on_session_unlock ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > SessionStopButton ) , " clicked " , G_CALLBACK ( on_session_end ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > SessionBlockButton ) , " clicked " , G_CALLBACK ( on_session_block ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > SessionMainTree ) , " cursor-changed " , G_CALLBACK ( on_sessions_selection_changed ) , widgets ) ;
@ -1815,7 +2002,12 @@ void yon_main_window_complete(main_window *widgets){
g_signal_connect ( G_OBJECT ( widgets - > UserConfigAutostartCell ) , " toggled " , G_CALLBACK ( on_config_autostart_clicked ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > UserConfigAutostopCell ) , " toggled " , G_CALLBACK ( on_config_autostop_clicked ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > UserConfigBlockCell ) , " toggled " , G_CALLBACK ( on_config_block_clicked ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > TimersUpdateButton ) , " clicked " , G_CALLBACK ( on_interface_update ) , widgets ) ;
g_signal_connect ( G_OBJECT ( gtk_tree_view_get_column ( GTK_TREE_VIEW ( widgets - > SystemUpperTree ) , 2 ) ) , " clicked " , G_CALLBACK ( on_sort_activate ) , widgets ) ;
g_signal_connect ( G_OBJECT ( gtk_tree_view_get_column ( GTK_TREE_VIEW ( widgets - > UsersUpperTree ) , 2 ) ) , " clicked " , G_CALLBACK ( on_sort_activate ) , widgets ) ;
if ( getuid ( ) = = 0 ) {
gtk_widget_set_sensitive ( widgets - > UserServiceUpdateButton , 0 ) ;
gtk_widget_set_sensitive ( widgets - > UserPrevButton , 0 ) ;
@ -1883,6 +2075,11 @@ void yon_main_window_complete(main_window *widgets){
yon_root_button_setup ( ( template_main_window * ) widgets , main_config . launch_arguments , main_config . launch_size ) ;
gtk_tree_model_filter_set_visible_func ( widgets - > UserFilter , ( GtkTreeModelFilterVisibleFunc ) yon_filter , widgets , NULL ) ;
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 - > 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_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 ) ;