@ -60,37 +60,211 @@ void on_config_global_save(){
}
void on_config_autostart_clicked ( ) {
}
void on_activate ( GtkTreeView * self , main_window * widgets ) {
if ( self & & widgets ) { } ;
}
void on_config_autostart_clicked ( GtkWidget * self , main_window * widgets ) {
if ( self ) { } ;
GtkTreeIter iter ;
GtkTreeModel * model ;
GtkWidget * Tree ;
if ( gtk_notebook_get_current_page ( GTK_NOTEBOOK ( widgets - > MainNotebook ) ) = = 0 ) {
model = GTK_TREE_MODEL ( widgets - > SystemList ) ;
Tree = widgets - > SystemUnitsTree ;
} else {
model = GTK_TREE_MODEL ( widgets - > UserList ) ;
Tree = widgets - > UserUnitsTree ;
}
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( Tree ) ) , & model , & iter ) ) {
gboolean status = 0 ;
char * name ;
gtk_tree_model_get ( model , & iter , 0 , & status , 5 , & name , - 1 ) ;
char * parsed_name = yon_char_divide ( name , yon_char_find_last ( name , ' . ' ) ) ;
free ( name ) ;
name = parsed_name ;
gtk_list_store_set ( GTK_LIST_STORE ( model ) , & iter , 0 , ! status , - 1 ) ;
char * config_sting = yon_config_get_by_key ( " SERVICES_ENABLE " ) ;
int size ;
config_str parsed = yon_char_parse ( config_sting , & size , " , " ) ;
int place = yon_char_parsed_check_exist ( parsed , size , name ) ;
if ( status = = 0 ) {
if ( place = = - 1 ) {
if ( ! yon_config_append ( " SERVICES_ENABLE " , name , " , " ) ) {
yon_config_register ( " SERVICES_ENABLE " , SERVICES_ENABLE_get_command , name ) ;
}
}
} else {
if ( place ! = - 1 ) {
parsed = yon_char_parsed_rip ( parsed , & size , place ) ;
if ( parsed )
yon_config_set ( " SERVICES_ENABLE " , yon_char_parsed_to_string ( parsed , size , " , " ) ) ;
else yon_config_remove_by_key ( " SERVICES_ENABLE " ) ;
}
}
yon_char_parsed_free ( parsed , size ) ;
}
}
void on_config_autostop_clicked ( ) {
void on_config_autostop_clicked ( GtkWidget * self , main_window * widgets ) {
if ( self ) { } ;
GtkTreeIter iter ;
GtkTreeModel * model ;
GtkWidget * Tree ;
if ( gtk_notebook_get_current_page ( GTK_NOTEBOOK ( widgets - > MainNotebook ) ) = = 0 ) {
model = GTK_TREE_MODEL ( widgets - > SystemList ) ;
Tree = widgets - > SystemUnitsTree ;
} else {
model = GTK_TREE_MODEL ( widgets - > UserList ) ;
Tree = widgets - > UserUnitsTree ;
}
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( Tree ) ) , & model , & iter ) ) {
gboolean status = 0 ;
char * name ;
gtk_tree_model_get ( model , & iter , 1 , & status , 5 , & name , - 1 ) ;
char * parsed_name = yon_char_divide ( name , yon_char_find_last ( name , ' . ' ) ) ;
free ( name ) ;
name = parsed_name ;
gtk_list_store_set ( GTK_LIST_STORE ( model ) , & iter , 1 , ! status , - 1 ) ;
char * config_sting = yon_config_get_by_key ( " SERVICES_DISABLE " ) ;
int size ;
config_str parsed = yon_char_parse ( config_sting , & size , " , " ) ;
int place = yon_char_parsed_check_exist ( parsed , size , name ) ;
if ( status = = 0 ) {
if ( place = = - 1 ) {
if ( ! yon_config_append ( " SERVICES_DISABLE " , name , " , " ) ) {
yon_config_register ( " SERVICES_DISABLE " , SERVICES_DISABLE_get_command , name ) ;
}
}
} else {
if ( place ! = - 1 ) {
parsed = yon_char_parsed_rip ( parsed , & size , place ) ;
if ( parsed )
yon_config_set ( " SERVICES_DISABLE " , yon_char_parsed_to_string ( parsed , size , " , " ) ) ;
else yon_config_remove_by_key ( " SERVICES_DISABLE " ) ;
}
}
yon_char_parsed_free ( parsed , size ) ;
}
}
void on_config_block_clicked ( ) {
void on_config_block_clicked ( GtkWidget * self , main_window * widgets ) {
if ( self ) { } ;
GtkTreeIter iter ;
GtkTreeModel * model ;
GtkWidget * Tree ;
if ( gtk_notebook_get_current_page ( GTK_NOTEBOOK ( widgets - > MainNotebook ) ) = = 0 ) {
model = GTK_TREE_MODEL ( widgets - > SystemList ) ;
Tree = widgets - > SystemUnitsTree ;
} else {
model = GTK_TREE_MODEL ( widgets - > UserList ) ;
Tree = widgets - > UserUnitsTree ;
}
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( Tree ) ) , & model , & iter ) ) {
gboolean status = 0 ;
char * name ;
gtk_tree_model_get ( model , & iter , 2 , & status , 5 , & name , - 1 ) ;
char * parsed_name = yon_char_divide ( name , yon_char_find_last ( name , ' . ' ) ) ;
free ( name ) ;
name = parsed_name ;
gtk_list_store_set ( GTK_LIST_STORE ( model ) , & iter , 2 , ! status , - 1 ) ;
char * config_sting = yon_config_get_by_key ( " SERVICES_MASK " ) ;
int size ;
config_str parsed = yon_char_parse ( config_sting , & size , " , " ) ;
int place = yon_char_parsed_check_exist ( parsed , size , name ) ;
if ( status = = 0 ) {
if ( place = = - 1 ) {
if ( ! yon_config_append ( " SERVICES_MASK " , name , " , " ) ) {
yon_config_register ( " SERVICES_MASK " , SERVICES_MASK_get_command , name ) ;
}
}
} else {
if ( place ! = - 1 ) {
parsed = yon_char_parsed_rip ( parsed , & size , place ) ;
if ( parsed )
yon_config_set ( " SERVICES_MASK " , yon_char_parsed_to_string ( parsed , size , " , " ) ) ;
else yon_config_remove_by_key ( " SERVICES_MASK " ) ;
}
}
yon_char_parsed_free ( parsed , size ) ;
}
}
void on_system_autostart_clicked ( ) {
void on_system_autostart_clicked ( GtkWidget * self , main_window * widgets ) {
if ( self ) { } ;
GtkTreeIter iter ;
GtkTreeModel * model ;
GtkWidget * Tree ;
if ( gtk_notebook_get_current_page ( GTK_NOTEBOOK ( widgets - > MainNotebook ) ) = = 0 ) {
model = GTK_TREE_MODEL ( widgets - > SystemList ) ;
Tree = widgets - > SystemUnitsTree ;
} else {
model = GTK_TREE_MODEL ( widgets - > UserList ) ;
Tree = widgets - > UserUnitsTree ;
}
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( Tree ) ) , & model , & iter ) ) {
gboolean status = 0 ;
char * service_name ;
gtk_tree_model_get ( model , & iter , 3 , & status , 5 , & service_name , - 1 ) ;
gtk_list_store_set ( GTK_LIST_STORE ( model ) , & iter , 3 , ! status , - 1 ) ;
yon_launch ( ( ! status ) = = 1 ? service_enable_command ( service_name ) : \
service_disable_command ( service_name ) ) ;
}
}
void on_system_kill_confirmed ( GtkWidget * self , char * service_name ) {
if ( self & & service_name ) { } ;
if ( self ) { } ;
char * command = service_kill_command ( service_name ) ;
yon_launch ( command ) ;
}
void on_system_launch_clicked ( ) {
void on_system_launch_clicked ( GtkWidget * self , main_window * widgets ) {
if ( self ) { } ;
GtkTreeIter iter ;
GtkTreeModel * model ;
GtkWidget * Tree ;
if ( gtk_notebook_get_current_page ( GTK_NOTEBOOK ( widgets - > MainNotebook ) ) = = 0 ) {
model = GTK_TREE_MODEL ( widgets - > SystemList ) ;
Tree = widgets - > SystemUnitsTree ;
} else {
model = GTK_TREE_MODEL ( widgets - > UserList ) ;
Tree = widgets - > UserUnitsTree ;
}
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( Tree ) ) , & model , & iter ) ) {
gboolean status = 0 ;
char * service_name ;
gtk_tree_model_get ( model , & iter , 4 , & status , 5 , & service_name , - 1 ) ;
yon_launch ( ( ! status ) = = 1 ? service_start_command ( service_name ) : \
service_stop_command ( service_name ) ) ;
int size ;
config_str result = yon_config_load ( service_check_active_command ( service_name ) , & size ) ;
yon_char_remove_last_symbol ( result [ 0 ] , ' \n ' ) ;
if ( size > 0 ) {
if ( ! strcmp ( result [ 0 ] , " active " ) ) {
if ( status ) {
dialog_confirmation_data data ;
data . action_text = STOP_SERVICE_WARMING_LABEL ( service_name ) ;
data . function = ( void * ) ( void * ) on_system_kill_confirmed ;
data . data = service_name ;
int answer = yon_confirmation_dialog_call ( self , & data ) ;
if ( answer )
gtk_list_store_set ( GTK_LIST_STORE ( model ) , & iter , 4 , 0 , - 1 ) ;
} else {
gtk_list_store_set ( GTK_LIST_STORE ( model ) , & iter , 4 , 1 , - 1 ) ;
}
} else {
gtk_list_store_set ( GTK_LIST_STORE ( model ) , & iter , 4 , 0 , - 1 ) ;
}
}
yon_char_parsed_free ( result , size ) ;
}
}
void on_system_restart_clicked ( ) {
void on_system_restart_clicked ( GtkWidget * self , main_window * widgets ) {
if ( self & & widgets ) { } ;
}
void on_source_show ( ) {
@ -301,9 +475,7 @@ void on_system_status_clicked(GtkWidget *self, main_window *widgets){
void on_system_filter_changed ( GtkWidget * self , main_window * widgets ) {
if ( self ) { }
if ( widgets ) {
log_window * window = yon_log_window_new ( ) ;
gtk_widget_show ( window - > Window ) ;
}
}
@ -311,9 +483,7 @@ void on_system_filter_changed(GtkWidget *self, main_window *widgets){
void on_system_search ( GtkWidget * self , main_window * widgets ) {
if ( self ) { }
if ( widgets ) {
log_window * window = yon_log_window_new ( ) ;
gtk_widget_show ( window - > Window ) ;
}
}
@ -321,9 +491,7 @@ void on_system_search(GtkWidget *self, main_window *widgets){
void on_system_inactive_toggled ( GtkWidget * self , main_window * widgets ) {
if ( self ) { }
if ( widgets ) {
log_window * window = yon_log_window_new ( ) ;
gtk_widget_show ( window - > Window ) ;
}
}
@ -331,9 +499,7 @@ void on_system_inactive_toggled(GtkWidget *self, main_window *widgets){
void on_system_unloaded_toggled ( GtkWidget * self , main_window * widgets ) {
if ( self ) { }
if ( widgets ) {
log_window * window = yon_log_window_new ( ) ;
gtk_widget_show ( window - > Window ) ;
}
}
@ -443,9 +609,7 @@ void on_user_status_clicked(GtkWidget *self, main_window *widgets){
void on_user_filter_changed ( GtkWidget * self , main_window * widgets ) {
if ( self ) { }
if ( widgets ) {
log_window * window = yon_log_window_new ( ) ;
gtk_widget_show ( window - > Window ) ;
}
}
@ -453,9 +617,7 @@ void on_user_filter_changed(GtkWidget *self, main_window *widgets){
void on_user_search ( GtkWidget * self , main_window * widgets ) {
if ( self ) { }
if ( widgets ) {
log_window * window = yon_log_window_new ( ) ;
gtk_widget_show ( window - > Window ) ;
}
}
@ -463,9 +625,7 @@ void on_user_search(GtkWidget *self, main_window *widgets){
void on_user_inactive_toggled ( GtkWidget * self , main_window * widgets ) {
if ( self ) { }
if ( widgets ) {
log_window * window = yon_log_window_new ( ) ;
gtk_widget_show ( window - > Window ) ;
}
}
@ -473,9 +633,7 @@ void on_user_inactive_toggled(GtkWidget *self, main_window *widgets){
void on_user_unloaded_toggled ( GtkWidget * self , main_window * widgets ) {
if ( self ) { }
if ( widgets ) {
log_window * window = yon_log_window_new ( ) ;
gtk_widget_show ( window - > Window ) ;
}
}
@ -524,9 +682,6 @@ void on_config_edit_clicked(GtkWidget *self, main_window *widgets){
void on_session_start_clicked ( GtkWidget * self , main_window * widgets ) {
if ( self ) { }
if ( widgets ) {
log_window * window = yon_log_window_new ( ) ;
gtk_widget_show ( window - > Window ) ;
}
}
@ -534,9 +689,7 @@ void on_session_start_clicked(GtkWidget *self, main_window *widgets){
void on_session_stop_clicked ( GtkWidget * self , main_window * widgets ) {
if ( self ) { }
if ( widgets ) {
log_window * window = yon_log_window_new ( ) ;
gtk_widget_show ( window - > Window ) ;
}
}
@ -544,9 +697,6 @@ void on_session_stop_clicked(GtkWidget *self, main_window *widgets){
void on_session_lock_clicked ( GtkWidget * self , main_window * widgets ) {
if ( self ) { }
if ( widgets ) {
log_window * window = yon_log_window_new ( ) ;
gtk_widget_show ( window - > Window ) ;
}
@ -626,6 +776,11 @@ void on_timers_list_status(GtkWidget *self, main_window *widgets){
gboolean yon_interface_update ( main_window * widgets ) {
if ( widgets ) {
gtk_tree_view_set_model ( GTK_TREE_VIEW ( widgets - > SystemUnitsTree ) , NULL ) ;
gtk_tree_view_set_model ( GTK_TREE_VIEW ( widgets - > UserUnitsTree ) , NULL ) ;
gtk_tree_view_set_model ( GTK_TREE_VIEW ( widgets - > ConfigMainTree ) , NULL ) ;
gtk_tree_view_set_model ( GTK_TREE_VIEW ( widgets - > SessionMainTree ) , NULL ) ;
gtk_tree_view_set_model ( GTK_TREE_VIEW ( widgets - > TimersMainTree ) , NULL ) ;
int system_size ;
config_str system_services = yon_config_load ( load_services_command , & system_size ) ;
int user_size ;
@ -642,7 +797,7 @@ gboolean yon_interface_update(main_window *widgets){
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 , " ; " ) ;
if ( parsed & & strstr ( parsed [ 0 ] , " .service " ) ) {
if ( parsed ) {
gtk_list_store_append ( widgets - > SystemList , & iter ) ;
gtk_list_store_set ( widgets - > SystemList , & iter , 4 , strcmp ( parsed [ 2 ] , " active " ) ? 0 : 1 , 5 , parsed [ 0 ] , 6 , parsed [ 4 ] , - 1 ) ;
}
@ -653,7 +808,7 @@ gboolean yon_interface_update(main_window *widgets){
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 ( strstr ( parsed [ 0 ] , " .service " ) ) {
if ( parsed ) {
gtk_list_store_append ( widgets - > UserList , & iter ) ;
gtk_list_store_set ( widgets - > UserList , & iter , 4 , strcmp ( parsed [ 2 ] , " active " ) ? 0 : 1 , 5 , parsed [ 0 ] , 6 , parsed [ 4 ] , - 1 ) ;
}
@ -675,14 +830,16 @@ gboolean yon_interface_update(main_window *widgets){
GtkTreeIter iter ;
int size ;
config_str parsed = yon_char_parse ( sessions [ i ] , & size , " " ) ;
if ( ! strcmp ( parsed [ 1 ] , " \001 " ) ) parsed [ 1 ] = ACTIVE_LABEL ;
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 , atoi ( parsed [ 1 ] ) , 2 , 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 ] , - 1 ) ;
}
}
for ( size_t i = 0 ; i < json_object_array_length ( jsobject ) ; i + + ) {
struct json_object * item_obj = json_object_array_get_idx ( jsobject , i ) ;
const char * unit = " " , * next = " " , * left = " " , * last = " ' ", * passed = " " , * activates = " " ;
const char * unit = " " , * next = " " , * left = " " , * last = " ", * passed = " " , * activates = " " ;
// Получение значений по ключам
struct json_object * unit_obj ;
if ( json_object_object_get_ex ( item_obj , " unit " , & unit_obj ) ) {
@ -715,18 +872,169 @@ gboolean yon_interface_update(main_window *widgets){
}
GtkTreeIter iter ;
gtk_list_store_append ( widgets - > TimersList , & iter ) ;
GDateTime * datetime = g_date_time_new_from_unix_local ( atoi ( next ) ) ;
next = g_date_time_format ( datetime , " %Y.%m.%d H:M:s " ) ;
g_date_time_unref ( datetime ) ;
datetime = g_date_time_new_from_unix_local ( atoi ( left ) ) ;
left = g_date_time_format ( datetime , " %Y.%m.%d H:M:s " ) ;
g_date_time_unref ( datetime ) ;
datetime = g_date_time_new_from_unix_local ( atoi ( last ) ) ;
last = g_date_time_format ( datetime , " %Y.%m.%d H:M:s " ) ;
GDateTime * datetime = NULL ;
if ( atol ( next ) ! = 0 ) {
datetime = g_date_time_new_from_unix_local ( atol ( next ) / 1000000 ) ;
next = g_date_time_format ( datetime , " %Y.%m.%d %H:%M:%S " ) ;
g_date_time_unref ( datetime ) ;
} else {
next = " " ;
}
if ( atol ( left ) ! = 0 ) {
datetime = g_date_time_new_from_unix_local ( atol ( left ) / 1000000 ) ;
GDateTime * now = g_date_time_new_now_local ( ) ;
left = g_date_time_format ( datetime , " %Y.%m.%d %H:%M:%S " ) ;
gint64 left_microseconds = 0 ;
left_microseconds = g_date_time_difference ( datetime , now ) ;
left_microseconds / = 1000000 ;
long days = ( long ) ( ( left_microseconds / 60 ) / 60 ) / 24 ;
long hours = ( long ) ( left_microseconds / 60 ) / 60 % 60 ;
long minutes = ( long ) left_microseconds / 60 % 60 ;
long seconds = ( long ) left_microseconds % 60 ;
g_date_time_unref ( datetime ) ;
left = yon_char_unite ( days ? yon_char_from_long ( days ) : " " , days ? " " : " " , days ? DAYS_LABEL : " " , days ? " " : " " , hours ? yon_char_from_long ( hours ) : " " , hours ? " " : " " , hours ? HOURS_LABEL : " " , hours ? " " : " " , minutes ? yon_char_from_long ( minutes ) : " " , minutes ? " " : " " , minutes ? MINUTES_LABEL : " " , minutes ? " " : " " , seconds ? yon_char_from_long ( seconds ) : " " , seconds ? " " : " " , seconds ? SECONDS_LABEL : " " , NULL ) ;
} else {
left = " " ;
}
if ( atol ( last ) ! = 0 ) {
datetime = g_date_time_new_from_unix_local ( atol ( last ) / 1000000 ) ;
last = g_date_time_format ( datetime , " %Y.%m.%d %H:%M:%S " ) ;
g_date_time_unref ( datetime ) ;
} else {
last = " " ;
}
if ( atol ( passed ) ! = 0 ) {
datetime = g_date_time_new_from_unix_local ( atol ( passed ) / 1000000 ) ;
passed = g_date_time_format ( datetime , " %Y.%m.%d %H:%M:%S " ) ;
g_date_time_unref ( datetime ) ;
} else {
passed = " " ;
}
gtk_list_store_set ( widgets - > TimersList , & iter , 0 , unit , 1 , next , 2 , left , 3 , last , 4 , passed , 5 , activates , - 1 ) ;
}
}
{
int parsed_size ;
char * enabled = yon_config_get_by_key ( SERVICES_ENABLE_PARAMETER ) ;
config_str parsed = yon_char_parse ( enabled , & parsed_size , " , " ) ;
GtkTreeIter iter ;
GtkTreeModel * model = GTK_TREE_MODEL ( widgets - > UserList ) ;
int valid = gtk_tree_model_get_iter_first ( model , & iter ) ;
for ( ; valid ; valid = gtk_tree_model_iter_next ( model , & iter ) )
{
gtk_list_store_set ( widgets - > UserList , & iter , 0 , 0 , - 1 ) ;
}
valid = gtk_tree_model_get_iter_first ( model , & iter ) ;
for ( ; valid ; valid = gtk_tree_model_iter_next ( model , & iter ) )
{
char * name ;
gtk_tree_model_get ( model , & iter , 5 , & name , - 1 ) ;
for ( int i = 0 ; i < parsed_size ; i + + ) {
if ( strstr ( name , parsed [ i ] ) ) gtk_list_store_set ( widgets - > UserList , & iter , 0 , 1 , - 1 ) ;
}
}
yon_char_parsed_free ( parsed , parsed_size ) ;
char * disabled = yon_config_get_by_key ( SERVICES_DISABLE_PARAMETER ) ;
parsed = yon_char_parse ( disabled , & parsed_size , " , " ) ;
valid = gtk_tree_model_get_iter_first ( model , & iter ) ;
for ( ; valid ; valid = gtk_tree_model_iter_next ( model , & iter ) )
{
gtk_list_store_set ( widgets - > UserList , & iter , 1 , 0 , - 1 ) ;
}
valid = gtk_tree_model_get_iter_first ( model , & iter ) ;
for ( ; valid ; valid = gtk_tree_model_iter_next ( model , & iter ) )
{
char * name ;
gtk_tree_model_get ( model , & iter , 5 , & name , - 1 ) ;
for ( int i = 0 ; i < parsed_size ; i + + ) {
if ( strstr ( name , parsed [ i ] ) ) gtk_list_store_set ( widgets - > UserList , & iter , 1 , 1 , - 1 ) ;
}
}
yon_char_parsed_free ( parsed , parsed_size ) ;
char * masked = yon_config_get_by_key ( SERVICES_MASK_PARAMETER ) ;
parsed = yon_char_parse ( masked , & parsed_size , " , " ) ;
valid = gtk_tree_model_get_iter_first ( model , & iter ) ;
for ( ; valid ; valid = gtk_tree_model_iter_next ( model , & iter ) )
{
gtk_list_store_set ( widgets - > UserList , & iter , 2 , 0 , - 1 ) ;
}
valid = gtk_tree_model_get_iter_first ( model , & iter ) ;
for ( ; valid ; valid = gtk_tree_model_iter_next ( model , & iter ) )
{
char * name ;
gtk_tree_model_get ( model , & iter , 5 , & name , - 1 ) ;
for ( int i = 0 ; i < parsed_size ; i + + ) {
if ( strstr ( name , parsed [ i ] ) ) gtk_list_store_set ( widgets - > UserList , & iter , 2 , 1 , - 1 ) ;
}
}
}
{
int parsed_size ;
char * enabled = yon_config_get_by_key ( SERVICES_ENABLE_PARAMETER ) ;
config_str parsed = yon_char_parse ( enabled , & parsed_size , " , " ) ;
GtkTreeIter iter ;
GtkTreeModel * model = GTK_TREE_MODEL ( widgets - > UserList ) ;
int valid = gtk_tree_model_get_iter_first ( model , & iter ) ;
for ( ; valid ; valid = gtk_tree_model_iter_next ( model , & iter ) )
{
gtk_list_store_set ( widgets - > UserList , & iter , 0 , 0 , - 1 ) ;
}
valid = gtk_tree_model_get_iter_first ( model , & iter ) ;
for ( ; valid ; valid = gtk_tree_model_iter_next ( model , & iter ) )
{
char * name ;
gtk_tree_model_get ( model , & iter , 5 , & name , - 1 ) ;
for ( int i = 0 ; i < parsed_size ; i + + ) {
if ( strstr ( name , parsed [ i ] ) ) gtk_list_store_set ( widgets - > UserList , & iter , 0 , 1 , - 1 ) ;
}
}
yon_char_parsed_free ( parsed , parsed_size ) ;
char * disabled = yon_config_get_by_key ( SERVICES_DISABLE_PARAMETER ) ;
parsed = yon_char_parse ( disabled , & parsed_size , " , " ) ;
valid = gtk_tree_model_get_iter_first ( model , & iter ) ;
for ( ; valid ; valid = gtk_tree_model_iter_next ( model , & iter ) )
{
gtk_list_store_set ( widgets - > UserList , & iter , 1 , 0 , - 1 ) ;
}
valid = gtk_tree_model_get_iter_first ( model , & iter ) ;
for ( ; valid ; valid = gtk_tree_model_iter_next ( model , & iter ) )
{
char * name ;
gtk_tree_model_get ( model , & iter , 5 , & name , - 1 ) ;
for ( int i = 0 ; i < parsed_size ; i + + ) {
if ( strstr ( name , parsed [ i ] ) ) gtk_list_store_set ( widgets - > UserList , & iter , 1 , 1 , - 1 ) ;
}
}
yon_char_parsed_free ( parsed , parsed_size ) ;
char * masked = yon_config_get_by_key ( SERVICES_MASK_PARAMETER ) ;
parsed = yon_char_parse ( masked , & parsed_size , " , " ) ;
valid = gtk_tree_model_get_iter_first ( model , & iter ) ;
for ( ; valid ; valid = gtk_tree_model_iter_next ( model , & iter ) )
{
gtk_list_store_set ( widgets - > UserList , & iter , 2 , 0 , - 1 ) ;
}
valid = gtk_tree_model_get_iter_first ( model , & iter ) ;
for ( ; valid ; valid = gtk_tree_model_iter_next ( model , & iter ) )
{
char * name ;
gtk_tree_model_get ( model , & iter , 5 , & name , - 1 ) ;
for ( int i = 0 ; i < parsed_size ; i + + ) {
if ( strstr ( name , parsed [ i ] ) ) gtk_list_store_set ( widgets - > UserList , & iter , 2 , 1 , - 1 ) ;
}
}
}
gtk_tree_view_set_model ( GTK_TREE_VIEW ( widgets - > SystemUnitsTree ) , GTK_TREE_MODEL ( widgets - > SystemList ) ) ;
gtk_tree_view_set_model ( GTK_TREE_VIEW ( widgets - > UserUnitsTree ) , GTK_TREE_MODEL ( widgets - > UserList ) ) ;
gtk_tree_view_set_model ( GTK_TREE_VIEW ( widgets - > ConfigMainTree ) , GTK_TREE_MODEL ( widgets - > ConfigList ) ) ;
gtk_tree_view_set_model ( GTK_TREE_VIEW ( widgets - > SessionMainTree ) , GTK_TREE_MODEL ( widgets - > SessionsList ) ) ;
gtk_tree_view_set_model ( GTK_TREE_VIEW ( widgets - > TimersMainTree ) , GTK_TREE_MODEL ( widgets - > TimersList ) ) ;
return 0 ;
}
@ -831,10 +1139,10 @@ void yon_main_window_complete(main_window *widgets){
AUTOSTART_LABEL , start_icon_path , on_system_autostart_clicked , widgets ,
LAUNCHED_LABEL , launch_icon_path , on_system_launch_clicked , widgets ,
RESTART_LABEL , update_icon_path , on_system_restart_clicked , widgets ,
STATUS_LABEL , status_icon_path , on_s tatus_show , widgets ,
SHOW_LOG_LABEL , log_icon_path , on_ log_show , widgets ,
SHOW_SOURCE_LABEL , source_icon_path , on_s ource_show , widgets ,
PROPERTIES_LABEL , properties_icon_path , on_ properties_show , widgets ,
STATUS_LABEL , status_icon_path , on_s ystem_info_clicked , widgets ,
SHOW_LOG_LABEL , log_icon_path , on_ system_log_clicked , widgets ,
SHOW_SOURCE_LABEL , source_icon_path , on_s ystem_edit_clicked , widgets ,
PROPERTIES_LABEL , properties_icon_path , on_ system_status_clicked , widgets ,
NULL ) ;
widgets - > UserSearchEntry = yon_gtk_builder_get_widget ( builder , " UserSearchEntry " ) ;
@ -860,10 +1168,10 @@ void yon_main_window_complete(main_window *widgets){
AUTOSTART_LABEL , start_icon_path , on_system_autostart_clicked , widgets ,
LAUNCHED_LABEL , launch_icon_path , on_system_launch_clicked , widgets ,
RESTART_LABEL , update_icon_path , on_system_restart_clicked , widgets ,
STATUS_LABEL , status_icon_path , on_ status_show , widgets ,
SHOW_LOG_LABEL , log_icon_path , on_ log_show , widgets ,
SHOW_SOURCE_LABEL , source_icon_path , on_ source_show , widgets ,
PROPERTIES_LABEL , properties_icon_path , on_ properties_show , widgets ,
STATUS_LABEL , status_icon_path , on_ user_info_clicked , widgets ,
SHOW_LOG_LABEL , log_icon_path , on_ user_log_clicked , widgets ,
SHOW_SOURCE_LABEL , source_icon_path , on_ user_edit_clicked , widgets ,
PROPERTIES_LABEL , properties_icon_path , on_ user_status_clicked , widgets ,
NULL ) ;
widgets - > ConfigEditButton = yon_gtk_builder_get_widget ( builder , " ConfigEditButton " ) ;