@ -94,6 +94,16 @@ void update_loaded_logrotate(){
}
}
void yon_journald_size_update ( journald_window * window ) {
int sz ;
config_str logsize = yon_config_load ( journald_size_command , & sz ) ;
if ( logsize ) {
if ( logsize [ 0 ] [ strlen ( logsize [ 0 ] ) - 1 ] = = ' \n ' )
logsize [ 0 ] [ strlen ( logsize [ 0 ] ) - 1 ] = ' \0 ' ;
}
gtk_label_set_text ( GTK_LABEL ( window - > LogSizeLabel ) , logsize [ 0 ] ) ;
}
int yon_load_proceed ( YON_CONFIG_TYPE type ) {
if ( type ! = YON_CONFIG_CUSTOM ) {
yon_config_clean ( ) ;
@ -440,6 +450,7 @@ void on_inspector_open(GtkWidget *, main_window *widgets){
inspector_window * window = malloc ( sizeof ( inspector_window ) ) ;
GtkBuilder * builder = gtk_builder_new_from_resource ( glade_inspector_path ) ;
window - > MainWindow = yon_gtk_builder_get_widget ( builder , " MainWindow " ) ;
window - > TitleLabel = yon_gtk_builder_get_widget ( builder , " headerTopic " ) ;
window - > ShowSinceBootButton = yon_gtk_builder_get_widget ( builder , " ShowSinceBootButton " ) ;
window - > NewMessagesButton = yon_gtk_builder_get_widget ( builder , " NewMessagesButton " ) ;
window - > ShowKernelButton = yon_gtk_builder_get_widget ( builder , " ShowKernelButton " ) ;
@ -453,7 +464,6 @@ void on_inspector_open(GtkWidget *, main_window *widgets){
window - > JournaldTree = yon_gtk_builder_get_widget ( builder , " JournaldTree " ) ;
window - > list = GTK_LIST_STORE ( gtk_builder_get_object ( builder , " liststore1 " ) ) ;
yon_window_config_custom_window_setup ( GTK_WINDOW ( window - > MainWindow ) , " InspectorWindow " ) ;
gtk_window_set_title ( GTK_WINDOW ( window - > MainWindow ) , INSPECTOR_TITLE_LABEL ) ;
gtk_window_set_transient_for ( GTK_WINDOW ( window - > MainWindow ) , GTK_WINDOW ( widgets - > Window ) ) ;
GtkTreeModel * model = GTK_TREE_MODEL ( widgets - > list ) ;
GList * list = gtk_tree_view_get_columns ( GTK_TREE_VIEW ( window - > JournaldTree ) ) ;
@ -481,6 +491,8 @@ void on_inspector_open(GtkWidget *, main_window *widgets){
gtk_tree_model_get ( model , & iter , 0 , & name , 1 , & paths , - 1 ) ;
window - > journal_name = name ;
window - > journal_paths = yon_char_parse ( paths , & window - > journal_size , " \n " ) ;
yon_gtk_window_setup ( GTK_WINDOW ( window - > MainWindow ) , NULL , INSPECTOR_TITLE_LABEL ( name ) , icon_path , " inspector_window " ) ;
gtk_label_set_text ( GTK_LABEL ( window - > TitleLabel ) , INSPECTOR_TITLE_LABEL ( name ) ) ;
config_str final = NULL ;
int final_size = 0 ;
for ( int i = 0 ; i < window - > journal_size ; i + + ) {
@ -506,6 +518,7 @@ void on_inspector_open(GtkWidget *, main_window *widgets){
window - > journal_size = final_size ;
window - > terminals = NULL ;
if ( strcmp ( name , " journald " ) ) {
gtk_widget_set_margin_top ( gtk_widget_get_parent ( window - > UpdateButton ) , 25 ) ;
window - > last_mode = - 1 ;
if ( window - > journal_size = = 0 ) {
GtkWidget * terminal = yon_inspector_add_terminal ( window , window - > journal_name , 0 ) ;
@ -2114,10 +2127,47 @@ void on_journald_save(GtkWidget *, journald_window *window){
on_subwindow_close ( window - > MainWindow ) ;
}
void on_journald_size_lower_size ( GtkWidget * , journald_window * window ) {
long time_long = gtk_spin_button_get_value ( GTK_SPIN_BUTTON ( window - > LowerSizeEntry ) ) ;
if ( time_long ) {
char * time = yon_char_from_long ( time_long ) ;
char * time_mod = ( char * ) gtk_combo_box_get_active_id ( GTK_COMBO_BOX ( window - > LowerSizeCombo ) ) ;
char * time_full = yon_char_append ( time , time_mod ) ;
if ( ! system ( journald_lower_size_command ( time_full ) ) ) {
yon_ubl_status_box_spawn ( GTK_CONTAINER ( window - > StatusBox ) , yon_char_get_localised_from_lib ( SUCCESS_LABEL ) , 5 , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
} else {
yon_ubl_status_box_spawn ( GTK_CONTAINER ( window - > StatusBox ) , yon_char_get_localised_from_lib ( FAIL_LABEL ) , 5 , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
}
} else {
yon_ubl_status_box_spawn ( GTK_CONTAINER ( window - > StatusBox ) , EMPTY_IMPORTANT_LABEL , 5 , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
yon_ubl_status_highlight_incorrect ( window - > LowerSizeEntry ) ;
}
yon_journald_size_update ( window ) ;
}
void on_journald_size_lower_time ( GtkWidget * , journald_window * window ) {
long time_long = gtk_spin_button_get_value ( GTK_SPIN_BUTTON ( window - > LowerTimeEntry ) ) ;
if ( time_long ) {
char * time = yon_char_from_long ( time_long ) ;
char * time_mod = ( char * ) gtk_combo_box_get_active_id ( GTK_COMBO_BOX ( window - > LowerTimeCombo ) ) ;
char * time_full = yon_char_append ( time , time_mod ) ;
if ( ! system ( journald_lower_time_command ( time_full ) ) ) {
yon_ubl_status_box_spawn ( GTK_CONTAINER ( window - > StatusBox ) , yon_char_get_localised_from_lib ( SUCCESS_LABEL ) , 5 , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
} else {
yon_ubl_status_box_spawn ( GTK_CONTAINER ( window - > StatusBox ) , yon_char_get_localised_from_lib ( FAIL_LABEL ) , 5 , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
}
} else {
yon_ubl_status_box_spawn ( GTK_CONTAINER ( window - > StatusBox ) , EMPTY_IMPORTANT_LABEL , 5 , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
yon_ubl_status_highlight_incorrect ( window - > LowerTimeEntry ) ;
}
yon_journald_size_update ( window ) ;
}
journald_window * yon_journald_open ( GtkWidget * , main_window * widgets ) {
journald_window * window = malloc ( sizeof ( journald_window ) ) ;
GtkBuilder * builder = gtk_builder_new_from_resource ( glade_journald_path ) ;
window - > MainWindow = yon_gtk_builder_get_widget ( builder , " MainWindow " ) ;
window - > StatusBox = yon_gtk_builder_get_widget ( builder , " StatusBox " ) ;
window - > CancelButton = yon_gtk_builder_get_widget ( builder , " CancelButton " ) ;
window - > SaveButton = yon_gtk_builder_get_widget ( builder , " SaveButton " ) ;
window - > ResetButton = yon_gtk_builder_get_widget ( builder , " ResetButton " ) ;
@ -2156,17 +2206,14 @@ journald_window *yon_journald_open(GtkWidget *, main_window *widgets){
yon_window_config_custom_window_setup ( GTK_WINDOW ( window - > MainWindow ) , " JournaldWindow " ) ;
gtk_window_set_transient_for ( GTK_WINDOW ( window - > MainWindow ) , GTK_WINDOW ( widgets - > Window ) ) ;
{
int sz ;
config_str logsize = yon_config_load ( journald_size_command , & sz ) ;
if ( logsize ) {
if ( logsize [ 0 ] [ strlen ( logsize [ 0 ] ) - 1 ] = = ' \n ' )
logsize [ 0 ] [ strlen ( logsize [ 0 ] ) - 1 ] = ' \0 ' ;
}
gtk_label_set_text ( GTK_LABEL ( window - > LogSizeLabel ) , logsize [ 0 ] ) ;
}
yon_journald_size_update ( window ) ;
gtk_window_set_title ( GTK_WINDOW ( window - > MainWindow ) , JOURNALD_TITLE_LABEL ) ;
g_signal_connect ( G_OBJECT ( window - > LowerSizeButton ) , " clicked " , G_CALLBACK ( on_journald_size_lower_size ) , window ) ;
g_signal_connect ( G_OBJECT ( window - > LowerTimeButton ) , " clicked " , G_CALLBACK ( on_journald_size_lower_time ) , window ) ;
g_signal_connect ( G_OBJECT ( window - > CancelButton ) , " clicked " , G_CALLBACK ( on_subwindow_close ) , NULL ) ;
g_signal_connect ( G_OBJECT ( window - > SaveButton ) , " clicked " , G_CALLBACK ( on_journald_save ) , window ) ;
g_signal_connect ( G_OBJECT ( window - > ResetButton ) , " clicked " , G_CALLBACK ( on_journald_reset ) , window ) ;
@ -2378,6 +2425,7 @@ add_log_window *on_add_open(main_window *widgets){
window - > StatusBox = yon_gtk_builder_get_widget ( builder , " StatusBox " ) ;
gtk_window_set_title ( GTK_WINDOW ( window - > MainWindow ) , MONITOR_TITLE_LABEL ) ;
gtk_window_set_transient_for ( GTK_WINDOW ( window - > MainWindow ) , GTK_WINDOW ( widgets - > Window ) ) ;
window - > log_name = NULL ;
dictionary * dict = NULL ;
yon_dictionary_add_or_create_if_exists_with_data ( dict , " widgets " , widgets ) ;
yon_dictionary_add_or_create_if_exists_with_data ( dict , " window " , window ) ;
@ -2761,6 +2809,7 @@ void on_main_window_services_tree_selection_changed(GtkWidget *,main_window *wid
GtkTreeIter iter ;
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > ServicesTree ) ) , & model , & iter ) ) {
gtk_widget_set_sensitive ( widgets - > ServicesControlButton , 1 ) ;
gboolean is_active ;
gboolean is_enabled ;
char * name ;
@ -2768,67 +2817,53 @@ void on_main_window_services_tree_selection_changed(GtkWidget *,main_window *wid
gtk_tree_model_get ( model , & iter , 0 , & is_active , 1 , & is_enabled , 2 , & name , - 1 ) ;
if ( is_active ) {
gtk_widget_set_sensitive ( widgets - > ServicesEditButton , 1 ) ;
gtk_widget_set_sensitive ( widgets - > ServicesEnableDisableButton , 1 ) ;
gtk_widget_set_sensitive ( widgets - > ServicesStartStopButton , 1 ) ;
gtk_widget_set_sensitive ( GTK_WIDGET ( g_list_nth_data ( list , 0 ) ) , 1 ) ;
// gtk_widget_set_sensitive(GTK_WIDGET(g_list_nth_data(list,0)),1);
gtk_widget_set_sensitive ( GTK_WIDGET ( g_list_nth_data ( list , 1 ) ) , 1 ) ;
gtk_widget_set_tooltip_text ( widgets - > ServicesEnableDisableButton , AUTOSTART_OFF_LABEL ) ;
gtk_widget_set_tooltip_text ( widgets - > ServicesStartStopButton , STOP_SERVICE_LABEL ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( gtk_button_get_image ( GTK_BUTTON ( widgets - > ServicesStartStopButton ) ) ) , stop_icon_name , GTK_ICON_SIZE_BUTTON ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( gtk_button_get_image ( GTK_BUTTON ( widgets - > ServicesControlButton ) ) ) , stop_icon_name , GTK_ICON_SIZE_BUTTON ) ;
GList * item = gtk_container_get_children ( GTK_CONTAINER ( g_list_nth_data ( list , 0 ) ) ) ;
GList * items = gtk_container_get_children ( GTK_CONTAINER ( g_list_nth_data ( item , 0 ) ) ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( g_list_nth_data ( items , 0 ) ) , stop_icon_name , GTK_ICON_SIZE_BUTTON ) ;
gtk_label_set_text ( GTK_LABEL ( g_list_nth_data ( items , 1 ) ) , STOP_SERVICE_LABEL ) ;
g_list_free ( item ) ;
g_list_free ( items ) ;
} else {
gtk_widget_set_sensitive ( widgets - > ServicesEditButton , 0 ) ;
gtk_widget_set_sensitive ( widgets - > ServicesEnableDisableButton , 1 ) ;
gtk_widget_set_sensitive ( widgets - > ServicesStartStopButton , 1 ) ;
gtk_widget_set_sensitive ( GTK_WIDGET ( g_list_nth_data ( list , 0 ) ) , 1 ) ;
gtk_widget_set_sensitive ( GTK_WIDGET ( g_list_nth_data ( list , 1 ) ) , 1 ) ;
gtk_widget_set_tooltip_text ( widgets - > ServicesEnableDisableButton , AUTOSTART_ON_LABEL ) ;
gtk_widget_set_tooltip_text ( widgets - > ServicesStartStopButton , START_SERVICE_LABEL ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( gtk_button_get_image ( GTK_BUTTON ( widgets - > ServicesStartStopButton ) ) ) , start_icon_name , GTK_ICON_SIZE_BUTTON ) ;
// gtk_widget_set_sensitive(GTK_WIDGET(g_list_nth_data(list,0)),1);
gtk_widget_set_sensitive ( GTK_WIDGET ( g_list_nth_data ( list , 1 ) ) , 0 ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( gtk_button_get_image ( GTK_BUTTON ( widgets - > ServicesControlButton ) ) ) , start_icon_name , GTK_ICON_SIZE_BUTTON ) ;
GList * item = gtk_container_get_children ( GTK_CONTAINER ( g_list_nth_data ( list , 0 ) ) ) ;
GList * items = gtk_container_get_children ( GTK_CONTAINER ( g_list_nth_data ( item , 0 ) ) ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( g_list_nth_data ( items , 0 ) ) , start_icon_name , GTK_ICON_SIZE_BUTTON ) ;
gtk_label_set_text ( GTK_LABEL ( g_list_nth_data ( items , 1 ) ) , START_SERVICE_LABEL ) ;
g_list_free ( item ) ;
g_list_free ( items ) ;
}
if ( is_enabled ) {
gtk_image_set_from_icon_name ( GTK_IMAGE ( gtk_button_get_image ( GTK_BUTTON ( widgets - > ServicesEnableDisableButton ) ) ) , disable_icon_name , GTK_ICON_SIZE_BUTTON ) ;
GList * item = gtk_container_get_children ( GTK_CONTAINER ( g_list_nth_data ( list , 1 ) ) ) ;
GList * items = gtk_container_get_children ( GTK_CONTAINER ( g_list_nth_data ( item , 0 ) ) ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( g_list_nth_data ( items , 0 ) ) , disable_icon_name , GTK_ICON_SIZE_BUTTON ) ;
gtk_label_set_text ( GTK_LABEL ( g_list_nth_data ( items , 1 ) ) , AUTOSTART_OFF_LABEL ) ;
g_list_free ( item ) ;
g_list_free ( items ) ;
} else {
gtk_image_set_from_icon_name ( GTK_IMAGE ( gtk_button_get_image ( GTK_BUTTON ( widgets - > ServicesEnableDisableButton ) ) ) , enable_icon_name , GTK_ICON_SIZE_BUTTON ) ;
GList * item = gtk_container_get_children ( GTK_CONTAINER ( g_list_nth_data ( list , 1 ) ) ) ;
GList * items = gtk_container_get_children ( GTK_CONTAINER ( g_list_nth_data ( item , 0 ) ) ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( g_list_nth_data ( items , 0 ) ) , enable_icon_name , GTK_ICON_SIZE_BUTTON ) ;
gtk_label_set_text ( GTK_LABEL ( g_list_nth_data ( items , 1 ) ) , AUTOSTART_ON_LABEL ) ;
g_list_free ( item ) ;
g_list_free ( items ) ;
}
// if (is_enabled){
// gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesControlButton))),disable_icon_name,GTK_ICON_SIZE_BUTTON);
// GList *item = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(list,1)));
// GList *items = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(item,0)));
// gtk_image_set_from_icon_name(GTK_IMAGE(g_list_nth_data(items,0)),disable_icon_name,GTK_ICON_SIZE_BUTTON);
// gtk_label_set_text(GTK_LABEL(g_list_nth_data(items,1)),AUTOSTART_OFF_LABEL);
// g_list_free(item);
// g_list_free(items);
// } else {
// gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesControlButton))),enable_icon_name,GTK_ICON_SIZE_BUTTON);
// GList *item = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(list,1)));
// GList *items = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(item,0)));
// gtk_image_set_from_icon_name(GTK_IMAGE(g_list_nth_data(items,0)),enable_icon_name,GTK_ICON_SIZE_BUTTON);
// gtk_label_set_text(GTK_LABEL(g_list_nth_data(items,1)),AUTOSTART_ON_LABEL);
// g_list_free(item);
// g_list_free(items);
// }
if ( ! strcmp ( name , " journald " ) ) {
gtk_widget_set_sensitive ( GTK_WIDGET ( g_list_nth_data ( list , 0 ) ) , 0 ) ;
gtk_widget_set_sensitive ( GTK_WIDGET ( g_list_nth_data ( list , 1 ) ) , 0 ) ;
gtk_widget_set_sensitive ( widgets - > ServicesEnableDisableButton , 0 ) ;
gtk_widget_set_sensitive ( widgets - > ServicesStartStopButton , 0 ) ;
gtk_widget_set_tooltip_text ( widgets - > ServicesEnableDisableButton , AUTOSTART_OFF_LABEL ) ;
gtk_widget_set_tooltip_text ( widgets - > ServicesStartStopButton , STOP_SERVICE_LABEL ) ;
// gtk_widget_set_sensitive(GTK_WIDGET(g_list_nth_data(list,0)),0);
// gtk_widget_set_sensitive(GTK_WIDGET(g_list_nth_data(list,1)),0);
// gtk_widget_set_sensitive(widgets->ServicesControlButton,0);
// gtk_widget_set_tooltip_text(widgets->ServicesControlButton,AUTOSTART_OFF_LABEL);
}
g_list_free ( list ) ;
} else {
gtk_widget_set_sensitive ( widgets - > ServicesEditButton , 0 ) ;
gtk_widget_set_sensitive ( widgets - > ServicesEnableDisableButton , 0 ) ;
gtk_widget_set_sensitive ( widgets - > ServicesStartStopButton , 0 ) ;
gtk_widget_set_tooltip_text ( widgets - > ServicesEnableDisableButton , AUTOSTART_ON_LABEL ) ;
gtk_widget_set_tooltip_text ( widgets - > ServicesStartStopButton , START_SERVICE_LABEL ) ;
gtk_widget_set_sensitive ( widgets - > ServicesControlButton , 0 ) ;
// gtk_widget_set_tooltip_text(widgets->ServicesControlButton,AUTOSTART_ON_LABEL);
}
}
@ -2845,15 +2880,11 @@ void on_start_stop_clicked(GtkButton *, main_window *widgets){
if ( is_started ) {
g_spawn_command_line_sync ( yon_debug_output ( " %s \n " , stop_command ) , NULL , NULL , NULL , NULL ) ;
gtk_list_store_set ( widgets - > ServicesList , & iter , 0 , 0 , - 1 ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( gtk_button_get_image ( GTK_BUTTON ( widgets - > ServicesStartStopButton ) ) ) , start_icon_name , GTK_ICON_SIZE_BUTTON ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( g_list_nth_data ( box , 0 ) ) , start_icon_name , GTK_ICON_SIZE_BUTTON ) ;
gtk_widget_set_tooltip_text ( widgets - > ServicesStartStopButton , START_SERVICE_LABEL ) ;
} else {
g_spawn_command_line_sync ( yon_debug_output ( " %s \n " , start_command ) , NULL , NULL , NULL , NULL ) ;
gtk_list_store_set ( widgets - > ServicesList , & iter , 0 , 1 , - 1 ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( gtk_button_get_image ( GTK_BUTTON ( widgets - > ServicesStartStopButton ) ) ) , stop_icon_name , GTK_ICON_SIZE_BUTTON ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( g_list_nth_data ( box , 0 ) ) , stop_icon_name , GTK_ICON_SIZE_BUTTON ) ;
gtk_widget_set_tooltip_text ( widgets - > ServicesStartStopButton , STOP_SERVICE_LABEL ) ;
}
}
}
@ -2879,9 +2910,9 @@ void on_enable_disable_clicked(GtkButton *, main_window *widgets){
if ( is_started ) {
yon_launch ( stop_command ) ;
gtk_list_store_set ( widgets - > ServicesList , & iter , 1 , 0 , - 1 ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( gtk_button_get_image ( GTK_BUTTON ( widgets - > Services EnableDisableButton) ) ) , enable _icon_name, GTK_ICON_SIZE_BUTTON ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( g_list_nth_data ( box , 0 ) ) , enable _icon_name, GTK_ICON_SIZE_BUTTON ) ;
gtk_widget_set_tooltip_text ( widgets - > ServicesEnableDisableButton , AUTOSTART_ON_LABEL ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( gtk_button_get_image ( GTK_BUTTON ( widgets - > Services ControlButton) ) ) , start _icon_name, GTK_ICON_SIZE_BUTTON ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( g_list_nth_data ( box , 0 ) ) , start _icon_name, GTK_ICON_SIZE_BUTTON ) ;
// gtk_widget_set_tooltip_text(widgets->ServicesControlButton,AUTOSTART_ON_LABEL);
} else {
/*
g_mutex_lock ( & main_config . authorized_mutex ) ;
@ -2891,9 +2922,9 @@ void on_enable_disable_clicked(GtkButton *, main_window *widgets){
g_mutex_unlock ( & main_config . authorized_mutex ) ; */
yon_launch ( start_command ) ;
gtk_list_store_set ( widgets - > ServicesList , & iter , 1 , 1 , - 1 ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( gtk_button_get_image ( GTK_BUTTON ( widgets - > Services EnableDisableButton) ) ) , disable _icon_name, GTK_ICON_SIZE_BUTTON ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( g_list_nth_data ( box , 0 ) ) , disable _icon_name, GTK_ICON_SIZE_BUTTON ) ;
gtk_widget_set_tooltip_text ( widgets - > ServicesEnableDisableButton , AUTOSTART_OFF_LABEL ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( gtk_button_get_image ( GTK_BUTTON ( widgets - > Services ControlButton) ) ) , stop _icon_name, GTK_ICON_SIZE_BUTTON ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( g_list_nth_data ( box , 0 ) ) , stop _icon_name, GTK_ICON_SIZE_BUTTON ) ;
// gtk_widget_set_tooltip_text(widgets->ServicesControlButton,AUTOSTART_OFF_LABEL);
}
}
}
@ -2991,6 +3022,27 @@ void config_init(){
}
}
void on_service_manage ( GtkWidget * , main_window * widgets ) {
GtkTreeIter iter ;
GtkTreeModel * model = GTK_TREE_MODEL ( widgets - > ServicesList ) ;
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > ServicesTree ) ) , & model , & iter ) ) {
char * name , * start_command , * stop_command , * enable_command , * disable_command , * status_command , * check_active_command , * check_enable_command ;
gtk_tree_model_get ( model , & iter ,
2 , & name , 5 , & start_command ,
6 , & stop_command , 7 , & enable_command ,
8 , & disable_command , 9 , & status_command ,
10 , & check_active_command , 11 , & check_enable_command ,
- 1 ) ;
service_window * window = yon_service_window_new ( name , start_command , stop_command ,
enable_command , disable_command ,
status_command , check_active_command ,
check_enable_command ) ;
gtk_window_set_transient_for ( GTK_WINDOW ( window - > MainWindow ) , GTK_WINDOW ( widgets - > Window ) ) ;
yon_service_window_run ( window ) ;
}
}
void yon_main_window_complete ( template_main_window * * window ) {
/* Widgets getting | Получение виджетов */
main_window * widgets = realloc ( * window , sizeof ( main_window ) ) ;
@ -3005,8 +3057,7 @@ void yon_main_window_complete(template_main_window **window){
widgets - > RemoveButton = yon_gtk_builder_get_widget ( builder , " MainRemoveButton " ) ;
widgets - > Notebook = yon_gtk_builder_get_widget ( builder , " MainNotebook " ) ;
widgets - > ServicesEditButton = yon_gtk_builder_get_widget ( builder , " ServicesEditButton " ) ;
widgets - > ServicesStartStopButton = yon_gtk_builder_get_widget ( builder , " ServicesStartStopButton " ) ;
widgets - > ServicesEnableDisableButton = yon_gtk_builder_get_widget ( builder , " ServicesEnableDisableButton " ) ;
widgets - > ServicesControlButton = yon_gtk_builder_get_widget ( builder , " ServicesControlButton " ) ;
widgets - > ServicesTree = yon_gtk_builder_get_widget ( builder , " ServicesTree " ) ;
widgets - > list = GTK_LIST_STORE ( gtk_builder_get_object ( builder , " liststore1 " ) ) ;
widgets - > ServicesList = GTK_LIST_STORE ( gtk_builder_get_object ( builder , " ServicesList " ) ) ;
@ -3056,8 +3107,11 @@ void yon_main_window_complete(template_main_window **window){
int log_size ;
services [ i ] = yon_char_divide_search ( services [ i ] , " \n " , - 1 ) ;
config_str log = yon_char_parse ( services [ i ] , & log_size , " ; " ) ;
int is_active , is_enabled ;
is_active = ! system ( log [ 7 ] ) ;
is_enabled = ! system ( log [ 8 ] ) ;
gtk_list_store_append ( widgets - > ServicesList , & iter ) ;
gtk_list_store_set ( widgets - > ServicesList , & iter , 0 , 1 , 1 , 1 , 2 , log [ 0 ] , 3 , _ ( log [ 1 ] ) , 4 , log [ 2 ] , 5 , log [ 3 ] , 6 , log [ 4 ] , 7 , log [ 5 ] , 8 , log [ 6 ] , - 1 ) ;
gtk_list_store_set ( widgets - > ServicesList , & iter , 0 , is_active , 1 , is_enabled , 2 , log [ 0 ] , 3 , _ ( log [ 1 ] ) , 4 , log [ 2 ] , 5 , log [ 2] , 6 , log [ 3 ] , 7 , log [ 4 ] , 8 , log [ 5] , 9 , log [ 6] , 10 , log [ 7 ] , 11 , log [ 8 ] , - 1 ) ;
}
}
config_str dirs = yon_config_load ( logrotate_config_command , & dirs_size ) ;
@ -3173,17 +3227,16 @@ void yon_main_window_complete(template_main_window **window){
g_signal_connect ( G_OBJECT ( widgets - > MainTree ) , " cursor-changed " , G_CALLBACK ( on_main_window_tree_selection_changed ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > ServicesTree ) , " cursor-changed " , G_CALLBACK ( on_main_window_services_tree_selection_changed ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > ServicesStartStopButton ) , " clicked " , G_CALLBACK ( on_start_stop_clicked ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > ServicesEnableDisableButton ) , " clicked " , G_CALLBACK ( on_enable_disable_clicked ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > ServicesControlButton ) , " clicked " , G_CALLBACK ( on_service_manage ) , widgets ) ;
widgets - > LogsRMBMenu = yon_rmb_menu_setup ( widgets - > MainTree , ( RmbCheck ) gtk_widget_get_sensitive , widgets - > MainTree ,
CONFIGURE_LOG_LABEL , settings_icon_name , G_CALLBACK ( on_log_edit ) , widgets ,
CONFIGURE_LOG_LABEL , settings_icon_name , G_CALLBACK ( on_log_edit ) , widgets ,
ADD_LOG_LABEL , add_icon_name , G_CALLBACK ( on_log_add ) , widgets ,
REMOVE_LOG_LABEL , remove_icon_name , G_CALLBACK ( on_log_remove ) , widgets ,
NULL ) ;
widgets - > ServicesRMBMenu = yon_rmb_menu_setup ( widgets - > ServicesTree , ( RmbCheck ) gtk_widget_get_sensitive , widgets - > ServicesTree ,
START_SERVICE_LABEL , start_icon_name , G_CALLBACK ( on_start_stop_clicked ) , widgets ,
AUTOSTART_ON_LABEL , enable_icon_name , G_CALLBACK ( on_enable_disable_clicked ) , widgets ,
SERVICE_MANAGEMENT_TOOLTIP , start_icon_name , G_CALLBACK ( on_service_manage ) , widgets ,
CONFIGURE_SERVICE_LABEL , settings_icon_name , G_CALLBACK ( on_service_edit ) , widgets ,
NULL ) ;
// yon_rmb_menu_setup(widgets->ServicesTree,(RmbCheck)gtk_widget_get_sensitive,widgets->MainTree,CONFIGURE_LOG_LABEL,edit_icon_name,G_CALLBACK(on_log_edit),widgets,ADD_LOG_LABEL,add_icon_name,G_CALLBACK(on_log_add),widgets,REMOVE_LOG_LABEL,remove_icon_name,G_CALLBACK(on_log_remove),widgets,NULL);