@ -315,28 +315,29 @@ void yon_licence_load(main_window *widgets){
}
}
}
}
// void on_database_update(void *,main_window *widgets){
void yon_update_page ( main_window * widgets ) {
// // vte_revealer_struct *revealer = yon_vte_revealer_new();
enum YON_PAGES page = gtk_notebook_get_current_page ( GTK_NOTEBOOK ( widgets - > Notebook ) ) ;
// yon_terminal_window_launch(GTK_WINDOW(widgets->MainWindow),"pacman -Sy",SUCCESS_LABEL,FAIL_LABEL);
// yon_terminal_integrated_start_shell(widgets->InstallTerminal,yon_debug_output("%s\n",pacman_update_command),NULL,NULL);
// g_signal_connect(G_OBJECT(widgets->InstallTerminal),"child-exited",G_CALLBACK(on_db_update_done),widgets);
// gtk_button_clicked(GTK_BUTTON(widgets->MoreButton));
// gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->MenusTab),1);
// }
void on_status_update ( GtkWidget * , main_window * widgets ) {
// on_database_update(NULL,widgets);
yon_window * window = yon_window_new ( ) ;
GtkWidget * terminal = vte_terminal_new ( ) ;
yon_gtk_window_setup ( GTK_WINDOW ( window - > Window ) , GTK_WINDOW ( widgets - > MainWindow ) , DB_UPDATE_LABEL , icon_path , NULL ) ;
gtk_widget_show ( terminal ) ;
gtk_box_pack_start ( GTK_BOX ( window - > MainBox ) , terminal , 1 , 1 , 0 ) ;
yon_terminal_integrated_start_shell ( terminal , " pacman -Sy " , NULL , NULL ) ;
gtk_widget_show ( window - > Window ) ;
// yon_terminal_window_launch(GTK_WINDOW(widgets->MainWindow),"pacman -Sy",SUCCESS_LABEL,FAIL_LABEL);
yon_packages_update ( ) ;
yon_packages_update ( ) ;
while ( gtk_events_pending ( ) ) gtk_main_iteration ( ) ;
yon_page_init ( widgets , page ) ;
g_signal_handlers_unblock_by_func ( G_OBJECT ( widgets - > db_lock_monitor ) , G_CALLBACK ( yon_db_unlock_update ) , widgets ) ;
on_status_update ( NULL , widgets ) ;
}
if ( system ( yon_check_database_command ) ) {
void * yon_db_update ( main_window * widgets ) {
yon_launch ( " pacsync --updated " ) ;
g_idle_add_once ( ( GSourceOnceFunc ) yon_update_page , widgets ) ;
pthread_exit ( NULL ) ;
}
void on_status_button_update ( GtkWidget * , main_window * widgets ) {
g_signal_handlers_block_by_func ( G_OBJECT ( widgets - > db_lock_monitor ) , G_CALLBACK ( yon_db_unlock_update ) , widgets ) ;
pthread_t tid = 0 ;
pthread_create ( & tid , NULL , ( void * ( * ) ( void * ) ) yon_db_update , widgets ) ;
}
void yon_status_thread_update_inactive ( main_window * widgets ) {
gtk_image_set_from_icon_name ( GTK_IMAGE ( widgets - > KernelPacmanStatusImage ) , inactive_icon_path , GTK_ICON_SIZE_BUTTON ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( widgets - > KernelPacmanStatusImage ) , inactive_icon_path , GTK_ICON_SIZE_BUTTON ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( widgets - > KernelAddonPacmanStatusImage ) , inactive_icon_path , GTK_ICON_SIZE_BUTTON ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( widgets - > KernelAddonPacmanStatusImage ) , inactive_icon_path , GTK_ICON_SIZE_BUTTON ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( widgets - > PacmanSoftwareStatusImage ) , inactive_icon_path , GTK_ICON_SIZE_BUTTON ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( widgets - > PacmanSoftwareStatusImage ) , inactive_icon_path , GTK_ICON_SIZE_BUTTON ) ;
@ -347,7 +348,9 @@ void on_status_update(GtkWidget *,main_window *widgets){
gtk_label_set_text ( GTK_LABEL ( widgets - > KernelAddonPacmanStatusLabel ) , UNACCESSED_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > KernelAddonPacmanStatusLabel ) , UNACCESSED_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > AdditionalComponentsStatusLabel ) , UNACCESSED_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > AdditionalComponentsStatusLabel ) , UNACCESSED_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > PackagesStatusLabel ) , UNACCESSED_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > PackagesStatusLabel ) , UNACCESSED_LABEL ) ;
} else {
}
void yon_status_thread_update_active ( main_window * widgets ) {
gtk_image_set_from_icon_name ( GTK_IMAGE ( widgets - > KernelPacmanStatusImage ) , active_icon_path , GTK_ICON_SIZE_BUTTON ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( widgets - > KernelPacmanStatusImage ) , active_icon_path , GTK_ICON_SIZE_BUTTON ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( widgets - > KernelAddonPacmanStatusImage ) , active_icon_path , GTK_ICON_SIZE_BUTTON ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( widgets - > KernelAddonPacmanStatusImage ) , active_icon_path , GTK_ICON_SIZE_BUTTON ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( widgets - > PacmanSoftwareStatusImage ) , active_icon_path , GTK_ICON_SIZE_BUTTON ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( widgets - > PacmanSoftwareStatusImage ) , active_icon_path , GTK_ICON_SIZE_BUTTON ) ;
@ -358,10 +361,19 @@ void on_status_update(GtkWidget *,main_window *widgets){
gtk_label_set_text ( GTK_LABEL ( widgets - > KernelAddonPacmanStatusLabel ) , ACCESSED_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > KernelAddonPacmanStatusLabel ) , ACCESSED_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > AdditionalComponentsStatusLabel ) , ACCESSED_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > AdditionalComponentsStatusLabel ) , ACCESSED_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > PackagesStatusLabel ) , ACCESSED_LABEL ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > PackagesStatusLabel ) , ACCESSED_LABEL ) ;
}
void * yon_status_thread_update ( main_window * widgets ) {
if ( system ( yon_check_database_command ) ) {
g_idle_add_once ( ( GSourceOnceFunc ) yon_status_thread_update_inactive , widgets ) ;
} else {
g_idle_add_once ( ( GSourceOnceFunc ) yon_status_thread_update_active , widgets ) ;
}
}
enum YON_PAGES page = gtk_notebook_get_current_page ( GTK_NOTEBOOK ( widgets - > Notebook ) ) ;
pthread_exit ( NULL ) ;
page = yon_page_get_next ( widgets , page ) ;
}
yon_page_init ( widgets , page ) ;
void on_status_update ( GtkWidget * , main_window * widgets ) {
pthread_t tid = 0 ;
pthread_create ( & tid , NULL , ( void * ( * ) ( void * ) ) yon_status_thread_update , widgets ) ;
}
}
@ -376,6 +388,24 @@ void yon_scroll_block_for_builder(GtkBuilder *builder){
g_slist_free ( list ) ;
g_slist_free ( list ) ;
}
}
void yon_db_lock_update ( GFileMonitor * , GFile * , GFile * , GFileMonitorEvent , main_window * widgets ) {
if ( ! access ( pacman_lock_path , F_OK ) ) {
gtk_widget_set_sensitive ( widgets - > KernelPacmanStatusButton , 0 ) ;
gtk_widget_set_sensitive ( widgets - > PacmanSoftwareStatusButton , 0 ) ;
gtk_widget_set_sensitive ( widgets - > KernelAddonPacmanStatusButton , 0 ) ;
gtk_widget_set_sensitive ( widgets - > AdditionalComponentsStatusButton , 0 ) ;
}
}
void yon_db_unlock_update ( GFileMonitor * , GFile * , GFile * , GFileMonitorEvent , main_window * widgets ) {
if ( access ( pacman_lock_path , F_OK ) ) {
gtk_widget_set_sensitive ( widgets - > KernelPacmanStatusButton , 1 ) ;
gtk_widget_set_sensitive ( widgets - > PacmanSoftwareStatusButton , 1 ) ;
gtk_widget_set_sensitive ( widgets - > KernelAddonPacmanStatusButton , 1 ) ;
gtk_widget_set_sensitive ( widgets - > AdditionalComponentsStatusButton , 1 ) ;
}
}
void yon_main_window_create ( main_window * widgets ) {
void yon_main_window_create ( main_window * widgets ) {
__attribute__ ( ( unused ) ) char * locale = setlocale ( LC_ALL , " en_US.UTF-8 " ) ;
__attribute__ ( ( unused ) ) char * locale = setlocale ( LC_ALL , " en_US.UTF-8 " ) ;
GtkBuilder * builder = gtk_builder_new_from_resource ( glade_path ) ;
GtkBuilder * builder = gtk_builder_new_from_resource ( glade_path ) ;
@ -702,11 +732,22 @@ void yon_main_window_create(main_window *widgets){
widgets - > NextInstallationSliderImage = yon_gtk_builder_get_widget ( builder , " NextInstallationSliderImage " ) ;
widgets - > NextInstallationSliderImage = yon_gtk_builder_get_widget ( builder , " NextInstallationSliderImage " ) ;
widgets - > PrevInstallationSliderImage = yon_gtk_builder_get_widget ( builder , " PrevInstallationSliderImage " ) ;
widgets - > PrevInstallationSliderImage = yon_gtk_builder_get_widget ( builder , " PrevInstallationSliderImage " ) ;
widgets - > network_connections = NULL ;
widgets - > network_connections = NULL ;
widgets - > pacmanchosen = g_hash_table_new_full ( g_str_hash , g_str_equal , free , NULL ) ;
widgets - > pacmanchosen = g_hash_table_new_full ( g_str_hash , g_str_equal , free , NULL ) ;
main_config . status_box = widgets - > StatusBox ;
main_config . status_box = widgets - > StatusBox ;
GError * err = NULL ;
GFile * file_desc = g_file_new_for_path ( pacman_lock_dir_path ) ;
widgets - > db_lock_monitor = g_file_monitor_directory ( file_desc , G_FILE_MONITOR_NONE , NULL , & err ) ;
if ( err ) {
printf ( " %s \n " , err - > message ) ;
}
}
g_signal_connect ( G_OBJECT ( widgets - > db_lock_monitor ) , " changed " , G_CALLBACK ( yon_db_lock_update ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > db_lock_monitor ) , " changed " , G_CALLBACK ( yon_db_unlock_update ) , widgets ) ;
}
g_signal_connect ( G_OBJECT ( widgets - > MainWindow ) , " delete-event " , G_CALLBACK ( on_yon_exit ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > MainWindow ) , " delete-event " , G_CALLBACK ( on_yon_exit ) , widgets ) ;
GtkWidget * menu = yon_gtk_builder_get_widget ( builder , " menu2 " ) ;
GtkWidget * menu = yon_gtk_builder_get_widget ( builder , " menu2 " ) ;
@ -723,11 +764,11 @@ void yon_main_window_create(main_window *widgets){
g_signal_connect ( G_OBJECT ( widgets - > LoadLocalConfigurationMenuItem ) , " activate " , G_CALLBACK ( on_config_local_load ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > LoadLocalConfigurationMenuItem ) , " activate " , G_CALLBACK ( on_config_local_load ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > LoadExternalConfigurationMenuItem ) , " activate " , G_CALLBACK ( on_config_custom_load ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > LoadExternalConfigurationMenuItem ) , " activate " , G_CALLBACK ( on_config_custom_load ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > PackagesStatusButton ) , " clicked " , G_CALLBACK ( on_status_ update) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > PackagesStatusButton ) , " clicked " , G_CALLBACK ( on_status_ button_ update) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > AdditionalComponentsStatusButton ) , " clicked " , G_CALLBACK ( on_status_ update) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > AdditionalComponentsStatusButton ) , " clicked " , G_CALLBACK ( on_status_ button_ update) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > KernelPacmanStatusButton ) , " clicked " , G_CALLBACK ( on_status_ update) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > KernelPacmanStatusButton ) , " clicked " , G_CALLBACK ( on_status_ button_ update) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > KernelAddonPacmanStatusButton ) , " clicked " , G_CALLBACK ( on_status_ update) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > KernelAddonPacmanStatusButton ) , " clicked " , G_CALLBACK ( on_status_ button_ update) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > PacmanSoftwareStatusButton ) , " clicked " , G_CALLBACK ( on_status_ update) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > PacmanSoftwareStatusButton ) , " clicked " , G_CALLBACK ( on_status_ button_ update) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > ReadFullLogButton ) , " clicked " , G_CALLBACK ( on_process_log_view ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > ReadFullLogButton ) , " clicked " , G_CALLBACK ( on_process_log_view ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > ReadShortLogButton ) , " clicked " , G_CALLBACK ( on_summary_log_view ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > ReadShortLogButton ) , " clicked " , G_CALLBACK ( on_summary_log_view ) , widgets ) ;