@ -10,17 +10,34 @@ void yon_load_proceed(YON_CONFIG_TYPE type){
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 ) ;
}
if ( type = = YON_CONFIG_LOCAL ) {
} else if ( type = = YON_CONFIG_LOCAL ) {
yon_config_load_config ( type , config_get_local_command , NULL ) ;
} else if ( type = = YON_CONFIG_CUSTOM ) {
char * path = " " ;
GtkWidget * dialog = gtk_file_chooser_dialog_new ( template_app_information . app_title , NULL , GTK_FILE_CHOOSER_ACTION_SAVE , CANCEL_LABEL , GTK_RESPONSE_CANCEL , OPEN_LABEL , GTK_RESPONSE_ACCEPT , NULL ) ;
GtkFileFilter * filter = gtk_file_filter_new ( ) ;
gtk_file_filter_add_pattern ( filter , " *.ini " ) ;
gtk_file_chooser_add_filter ( GTK_FILE_CHOOSER ( dialog ) , filter ) ;
gtk_widget_show ( dialog ) ;
int response = gtk_dialog_run ( GTK_DIALOG ( dialog ) ) ;
if ( response = = GTK_RESPONSE_ACCEPT ) {
char * file = gtk_file_chooser_get_filename ( GTK_FILE_CHOOSER ( dialog ) ) ;
if ( ! yon_char_is_empty ( file ) ) {
path = file ;
}
gtk_widget_destroy ( dialog ) ;
} else {
gtk_widget_destroy ( dialog ) ;
}
char * command = yon_config_get_custom_command ( path ) ;
yon_config_load_config ( type , command , NULL ) ;
}
}
void on_config_local_load ( GtkWidget * self , main_window * widgets ) {
if ( self ) { }
if ( ! main_config . update_thread_active ) {
main_config . update_thread_active = 1 ;
if ( self ) { } ;
yon_load_proceed ( YON_CONFIG_LOCAL ) ;
yon_ubl_status_box_render ( LIST_LOAD_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
gdk_threads_add_idle ( ( GSourceFunc ) ( ( gboolean * ) ( void * ) yon_interface_update ) , widgets ) ;
@ -29,9 +46,9 @@ void on_config_local_load(GtkWidget *self,main_window *widgets){
}
void on_config_global_load ( GtkWidget * self , main_window * widgets ) {
if ( self ) { }
if ( ! main_config . update_thread_active ) {
main_config . update_thread_active = 1 ;
if ( self ) { } ;
yon_load_proceed ( YON_CONFIG_GLOBAL ) ;
yon_ubl_status_box_render ( LIST_LOAD_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
gdk_threads_add_idle ( ( GSourceFunc ) ( ( gboolean * ) ( void * ) yon_interface_update ) , widgets ) ;
@ -40,6 +57,16 @@ void on_config_global_load(GtkWidget *self,main_window *widgets){
}
void on_config_custom_load ( GtkWidget * self , main_window * widgets ) {
if ( self ) { }
yon_load_proceed ( YON_CONFIG_CUSTOM ) ;
textdomain ( template_ui_LocaleName ) ;
yon_ubl_status_box_render ( GLOBAL_LOAD_SUCCESS_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
textdomain ( LocaleName ) ;
main_config . load_mode = 3 ;
yon_interface_update ( widgets ) ;
}
// functions
void on_service_constant_update ( ) {
@ -60,6 +87,12 @@ void on_config_global_save(){
}
void on_config_custom_save ( GtkWidget * self , main_window * widgets ) {
if ( self & & widgets ) { }
template_saving_window * window = yon_save_proceed ( NULL , YON_CONFIG_CUSTOM , config_get_command ( " system " ) , NULL ) ;
if ( window ) { } ;
}
void on_activate ( GtkTreeView * self , main_window * widgets ) {
if ( self & & widgets ) { } ;
}
@ -781,6 +814,11 @@ gboolean yon_interface_update(main_window *widgets){
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 ) ;
gtk_list_store_clear ( widgets - > SystemList ) ;
gtk_list_store_clear ( widgets - > UserList ) ;
gtk_list_store_clear ( widgets - > ConfigList ) ;
gtk_list_store_clear ( widgets - > SessionsList ) ;
gtk_list_store_clear ( widgets - > TimersList ) ;
int system_size ;
config_str system_services = yon_config_load ( load_services_command , & system_size ) ;
int user_size ;
@ -1035,6 +1073,7 @@ gboolean yon_interface_update(main_window *widgets){
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 ) ) ;
main_config . update_thread_active = 0 ;
return 0 ;
}
@ -1186,7 +1225,13 @@ void yon_main_window_complete(main_window *widgets){
END_SESSION_LABEL , stop_icon_path , on_session_end , NULL ,
BLOCK_SESSION_LABEL , block_icon_path , on_session_block , NULL ,
NULL ) ;
{
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 , 3 ) ) , " separatorBottom " ) ;
gtk_style_context_add_class ( gtk_widget_get_style_context ( g_list_nth_data ( list , 8 ) ) , " separatorTop " ) ;
gtk_style_context_add_class ( gtk_widget_get_style_context ( g_list_nth_data ( list , 6 ) ) , " separatorBottom " ) ;
g_list_free ( list ) ;
}
widgets - > SystemServiceLabel = yon_gtk_builder_get_widget ( builder , " SystemServiceLabel " ) ;
widgets - > SystemDescriptionLabel = yon_gtk_builder_get_widget ( builder , " SystemDescriptionLabel " ) ;
}
@ -1230,57 +1275,36 @@ void yon_main_window_complete(main_window *widgets){
g_signal_connect ( G_OBJECT ( widgets - > TimersStatusListMenuItem ) , " activate " , G_CALLBACK ( on_timers_list_status ) , widgets ) ;
// g_signal_connect(G_OBJECT(widgets->SystemUnitsTree),"button-press-event",G_CALLBACK(on_context_menu_open),widgets);
g_signal_connect ( G_OBJECT ( g_list_nth_data ( list , 0 ) ) , " notify::width " , G_CALLBACK ( on_column_resize ) , widgets ) ;
g_signal_connect ( G_OBJECT ( g_list_nth_data ( list , 1 ) ) , " notify::width " , G_CALLBACK ( on_column_resize ) , widgets ) ;
g_signal_connect ( G_OBJECT ( g_list_nth_data ( list , 2 ) ) , " notify::width " , G_CALLBACK ( on_column_resize ) , widgets ) ;
g_signal_connect ( G_OBJECT ( g_list_nth_data ( list , 3 ) ) , " 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 ( g_list_nth_data ( list , 5 ) ) , " notify::width " , G_CALLBACK ( on_column_resize ) , widgets ) ;
for ( unsigned int i = 0 ; i < g_list_length ( list ) ; i + + ) {
g_signal_connect ( G_OBJECT ( g_list_nth_data ( list , i ) ) , " notify::width " , G_CALLBACK ( on_column_resize ) , widgets ) ;
yon_window_config_add_listener ( g_list_nth_data ( list , i ) , yon_char_append ( " SystemUnitsColumn " , yon_char_from_int ( i ) ) , " fixed-width " , YON_TYPE_INT ) ;
}
g_list_free ( list ) ;
list = gtk_tree_view_get_columns ( GTK_TREE_VIEW ( widgets - > UserUnitsTree ) ) ;
g_signal_connect ( G_OBJECT ( g_list_nth_data ( list , 0 ) ) , " notify::width " , G_CALLBACK ( on_column_resize ) , widgets ) ;
g_signal_connect ( G_OBJECT ( g_list_nth_data ( list , 1 ) ) , " notify::width " , G_CALLBACK ( on_column_resize ) , widgets ) ;
g_signal_connect ( G_OBJECT ( g_list_nth_data ( list , 2 ) ) , " notify::width " , G_CALLBACK ( on_column_resize ) , widgets ) ;
g_signal_connect ( G_OBJECT ( g_list_nth_data ( list , 3 ) ) , " 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 ( g_list_nth_data ( list , 5 ) ) , " notify::width " , G_CALLBACK ( on_column_resize ) , widgets ) ;
for ( unsigned int i = 0 ; i < g_list_length ( list ) ; i + + ) {
g_signal_connect ( G_OBJECT ( g_list_nth_data ( list , i ) ) , " notify::width " , G_CALLBACK ( on_column_resize ) , widgets ) ;
yon_window_config_add_listener ( g_list_nth_data ( list , i ) , yon_char_append ( " UserUnitsColumn " , yon_char_from_int ( i ) ) , " fixed-width " , YON_TYPE_INT ) ;
}
g_list_free ( list ) ;
list = gtk_tree_view_get_columns ( GTK_TREE_VIEW ( widgets - > ConfigMainTree ) ) ;
g_signal_connect ( G_OBJECT ( g_list_nth_data ( list , 0 ) ) , " notify::width " , G_CALLBACK ( on_column_resize ) , widgets ) ;
g_signal_connect ( G_OBJECT ( g_list_nth_data ( list , 1 ) ) , " notify::width " , G_CALLBACK ( on_column_resize ) , widgets ) ;
g_signal_connect ( G_OBJECT ( g_list_nth_data ( list , 2 ) ) , " notify::width " , G_CALLBACK ( on_column_resize ) , widgets ) ;
for ( unsigned int i = 0 ; i < g_list_length ( list ) ; i + + ) {
g_signal_connect ( G_OBJECT ( g_list_nth_data ( list , i ) ) , " notify::width " , G_CALLBACK ( on_column_resize ) , widgets ) ;
yon_window_config_add_listener ( g_list_nth_data ( list , i ) , yon_char_append ( " ConfigUnitsColumn " , yon_char_from_int ( i ) ) , " fixed-width " , YON_TYPE_INT ) ;
}
g_list_free ( list ) ;
list = gtk_tree_view_get_columns ( GTK_TREE_VIEW ( widgets - > SessionMainTree ) ) ;
g_signal_connect ( G_OBJECT ( g_list_nth_data ( list , 0 ) ) , " notify::width " , G_CALLBACK ( on_column_resize ) , widgets ) ;
g_signal_connect ( G_OBJECT ( g_list_nth_data ( list , 1 ) ) , " notify::width " , G_CALLBACK ( on_column_resize ) , widgets ) ;
g_signal_connect ( G_OBJECT ( g_list_nth_data ( list , 2 ) ) , " notify::width " , G_CALLBACK ( on_column_resize ) , widgets ) ;
g_signal_connect ( G_OBJECT ( g_list_nth_data ( list , 3 ) ) , " 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 ) ;
for ( unsigned int i = 0 ; i < g_list_length ( list ) ; i + + ) {
g_signal_connect ( G_OBJECT ( g_list_nth_data ( list , i ) ) , " notify::width " , G_CALLBACK ( on_column_resize ) , widgets ) ;
yon_window_config_add_listener ( g_list_nth_data ( list , i ) , yon_char_append ( " SessionsUnitsColumn " , yon_char_from_int ( i ) ) , " fixed-width " , YON_TYPE_INT ) ;
}
g_list_free ( list ) ;
list = gtk_tree_view_get_columns ( GTK_TREE_VIEW ( widgets - > TimersMainTree ) ) ;
g_signal_connect ( G_OBJECT ( g_list_nth_data ( list , 0 ) ) , " notify::width " , G_CALLBACK ( on_column_resize ) , widgets ) ;
g_signal_connect ( G_OBJECT ( g_list_nth_data ( list , 1 ) ) , " notify::width " , G_CALLBACK ( on_column_resize ) , widgets ) ;
g_signal_connect ( G_OBJECT ( g_list_nth_data ( list , 2 ) ) , " notify::width " , G_CALLBACK ( on_column_resize ) , widgets ) ;
g_signal_connect ( G_OBJECT ( g_list_nth_data ( list , 3 ) ) , " 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 ( g_list_nth_data ( list , 5 ) ) , " notify::width " , G_CALLBACK ( on_column_resize ) , widgets ) ;
for ( unsigned int i = 0 ; i < g_list_length ( list ) ; i + + ) {
g_signal_connect ( G_OBJECT ( g_list_nth_data ( list , i ) ) , " notify::width " , G_CALLBACK ( on_column_resize ) , widgets ) ;
yon_window_config_add_listener ( g_list_nth_data ( list , i ) , yon_char_append ( " TimersUnitsColumn " , yon_char_from_int ( i ) ) , " fixed-width " , YON_TYPE_INT ) ;
}
g_list_free ( list ) ;
@ -1288,10 +1312,12 @@ void yon_main_window_complete(main_window *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 - > LoadCustomMenuItem ) , " activate " , G_CALLBACK ( on_config_custom_load ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > SaveMenuItem ) , " activate " , G_CALLBACK ( on_config_global_local_save ) , NULL ) ;
g_signal_connect ( G_OBJECT ( widgets - > SaveLocalMenuItem ) , " activate " , G_CALLBACK ( on_config_local_save ) , NULL ) ;
g_signal_connect ( G_OBJECT ( widgets - > SaveGlobalMenuItem ) , " activate " , G_CALLBACK ( on_config_global_save ) , NULL ) ;
g_signal_connect ( G_OBJECT ( widgets - > SaveCustomMenuItem ) , " activate " , G_CALLBACK ( on_config_custom_save ) , NULL ) ;
g_signal_connect ( G_OBJECT ( widgets - > SystemUnitsTree ) , " cursor-changed " , G_CALLBACK ( on_tree_selection_changed ) , widgets ) ;
gtk_tree_view_set_search_entry ( GTK_TREE_VIEW ( widgets - > SystemUnitsTree ) , GTK_ENTRY ( widgets - > SystemSearchEntry ) ) ;
yon_load_proceed ( YON_CONFIG_LOCAL ) ;