Pacman database updating changes

pull/385/head
YanTheKaller 3 weeks ago
parent 791f878005
commit 60b6bbf030

@ -484,6 +484,7 @@ gboolean yon_software_insert(struct row_data *row_input){
config_str parsed = yon_char_parse(main_config.modules[i],&parsed_size,";"); config_str parsed = yon_char_parse(main_config.modules[i],&parsed_size,";");
yon_char_parsed_add_or_create_if_exists(final,&final_size,parsed[1]); yon_char_parsed_add_or_create_if_exists(final,&final_size,parsed[1]);
yon_char_parsed_free(parsed,parsed_size); yon_char_parsed_free(parsed,parsed_size);
while(gtk_events_pending()) gtk_main_iteration();
} }
modules_param = yon_char_parsed_to_string(final,final_size,","); modules_param = yon_char_parsed_to_string(final,final_size,",");
} else if (!yon_char_is_empty(modules_prm)){ } else if (!yon_char_is_empty(modules_prm)){
@ -496,6 +497,7 @@ gboolean yon_software_insert(struct row_data *row_input){
yon_char_parsed_add_or_create_if_exists(final,&final_size,parsed[1]); yon_char_parsed_add_or_create_if_exists(final,&final_size,parsed[1]);
} }
yon_char_parsed_free(parsed,parsed_size); yon_char_parsed_free(parsed,parsed_size);
while(gtk_events_pending()) gtk_main_iteration();
} }
modules_param = yon_char_parsed_to_string(final,final_size,","); modules_param = yon_char_parsed_to_string(final,final_size,",");
} }
@ -508,7 +510,6 @@ gboolean yon_software_insert(struct row_data *row_input){
} }
void yon_software_init(main_window *widgets){ void yon_software_init(main_window *widgets){
on_status_update(NULL,widgets);
if (!main_config.configure_mode){ if (!main_config.configure_mode){
yon_config_update_by_args(main_config.config_load_path, packages_parameter,NULL); yon_config_update_by_args(main_config.config_load_path, packages_parameter,NULL);
} }
@ -518,6 +519,7 @@ void yon_software_init(main_window *widgets){
os_row *row = g_object_get_data(iter->data,"kernel_row"); os_row *row = g_object_get_data(iter->data,"kernel_row");
free(row); free(row);
gtk_widget_destroy(GTK_WIDGET(iter->data)); gtk_widget_destroy(GTK_WIDGET(iter->data));
while(gtk_events_pending()) gtk_main_iteration();
} }
int base_size; int base_size;
config_str base = yon_packages_find(YON_PACKAGES_ALL,"ubm-",(gsize*)&base_size); config_str base = yon_packages_find(YON_PACKAGES_ALL,"ubm-",(gsize*)&base_size);
@ -548,6 +550,7 @@ void yon_software_init(main_window *widgets){
row->size = size_str; row->size = size_str;
row->widgets=widgets; row->widgets=widgets;
g_idle_add((GSourceFunc)yon_software_insert,row); g_idle_add((GSourceFunc)yon_software_insert,row);
while(gtk_events_pending()) gtk_main_iteration();
} }
g_idle_add((GSourceFunc)yon_spinner_switch_off,widgets->OSSpinner); g_idle_add((GSourceFunc)yon_spinner_switch_off,widgets->OSSpinner);
yon_char_parsed_free(base,base_size); yon_char_parsed_free(base,base_size);
@ -585,7 +588,6 @@ int yon_pacman_software_save(main_window *widgets){
} }
void yon_pacman_init(main_window *widgets){ void yon_pacman_init(main_window *widgets){
on_status_update(NULL,widgets);
if (!main_config.configure_mode){ if (!main_config.configure_mode){
yon_config_update_by_args(main_config.config_load_path, packages_parameter,NULL); yon_config_update_by_args(main_config.config_load_path, packages_parameter,NULL);
} }
@ -606,6 +608,7 @@ void yon_pacman_init(main_window *widgets){
gtk_list_store_append(widgets->PacmanSoftwareChosenList,&iter); gtk_list_store_append(widgets->PacmanSoftwareChosenList,&iter);
gtk_list_store_set(widgets->PacmanSoftwareChosenList,&iter,0,1,1,parsed[i],2,version,3,_(description),4,size_str,6,1,-1); gtk_list_store_set(widgets->PacmanSoftwareChosenList,&iter,0,1,1,parsed[i],2,version,3,_(description),4,size_str,6,1,-1);
free(size_str); free(size_str);
while(gtk_events_pending()) gtk_main_iteration();
} }
yon_char_parsed_free(parsed,size); yon_char_parsed_free(parsed,size);
@ -633,6 +636,7 @@ void yon_pacman_init(main_window *widgets){
} }
modules_packages = yon_char_parsed_to_string(final,final_size,","); modules_packages = yon_char_parsed_to_string(final,final_size,",");
} }
while(gtk_events_pending()) gtk_main_iteration();
parsed = yon_char_parse(modules_packages,&size,","); parsed = yon_char_parse(modules_packages,&size,",");
for (int i=1;i<size;i++){ for (int i=1;i<size;i++){
@ -646,6 +650,7 @@ void yon_pacman_init(main_window *widgets){
gtk_list_store_append(widgets->PacmanSoftwareChosenList,&iter); gtk_list_store_append(widgets->PacmanSoftwareChosenList,&iter);
gtk_list_store_set(widgets->PacmanSoftwareChosenList,&iter,0,1,1,parsed[i],2,version,3,_(description),4,size_str,6,0,-1); gtk_list_store_set(widgets->PacmanSoftwareChosenList,&iter,0,1,1,parsed[i],2,version,3,_(description),4,size_str,6,0,-1);
free(size_str); free(size_str);
while(gtk_events_pending()) gtk_main_iteration();
} }
yon_pacman_software_update_overall_size(widgets); yon_pacman_software_update_overall_size(widgets);
yon_char_parsed_free(parsed,size); yon_char_parsed_free(parsed,size);

@ -113,6 +113,7 @@ void yon_kernel_row_setup_tags(kernel_row *row, char *tags){
tag_type = "tag_green"; tag_type = "tag_green";
}; };
yon_tag_add(GTK_BOX(row->TagsBox),tag_name,tag_type,NULL); yon_tag_add(GTK_BOX(row->TagsBox),tag_name,tag_type,NULL);
while(gtk_events_pending()) gtk_main_iteration();
} }
} }
@ -127,6 +128,7 @@ void yon_kernel_row_setup(kernel_row *row, char *name, char *modules,char *packa
config_str description_wrapped = yon_char_wrap_to_lines(description_full,3,&size); config_str description_wrapped = yon_char_wrap_to_lines(description_full,3,&size);
description_full = yon_char_parsed_to_string(description_wrapped,size,"\n"); description_full = yon_char_parsed_to_string(description_wrapped,size,"\n");
yon_char_parsed_free(description_wrapped,size); yon_char_parsed_free(description_wrapped,size);
while(gtk_events_pending()) gtk_main_iteration();
} }
int modules_size=0; int modules_size=0;
config_str modules_parsed = yon_char_parse(modules,&modules_size," "); config_str modules_parsed = yon_char_parse(modules,&modules_size," ");
@ -135,6 +137,7 @@ void yon_kernel_row_setup(kernel_row *row, char *name, char *modules,char *packa
char *temp = yon_char_unite("<a href=\"",modules_parsed[i],"\">",modules_parsed[i],"</a>",NULL); char *temp = yon_char_unite("<a href=\"",modules_parsed[i],"\">",modules_parsed[i],"</a>",NULL);
free(modules_parsed[i]); free(modules_parsed[i]);
modules_parsed[i] = temp; modules_parsed[i] = temp;
while(gtk_events_pending()) gtk_main_iteration();
} }
char *modules_final = yon_char_parsed_to_string(modules_parsed,modules_size,"\n"); char *modules_final = yon_char_parsed_to_string(modules_parsed,modules_size,"\n");
gtk_label_set_markup(GTK_LABEL(row->NameLabel),label_markup); gtk_label_set_markup(GTK_LABEL(row->NameLabel),label_markup);
@ -168,6 +171,7 @@ void yon_kernel_resize(main_window *widgets){
gtk_widget_get_preferred_width(row->ModulesLabel,&cur_modules_size,NULL); gtk_widget_get_preferred_width(row->ModulesLabel,&cur_modules_size,NULL);
if (name_size<cur_name_size) name_size=cur_name_size; if (name_size<cur_name_size) name_size=cur_name_size;
if (modules_size<cur_modules_size) modules_size=cur_modules_size; if (modules_size<cur_modules_size) modules_size=cur_modules_size;
while(gtk_events_pending()) gtk_main_iteration();
} }
gtk_widget_set_size_request(GTK_WIDGET(widgets->KernelNameLabel),name_size,-1); gtk_widget_set_size_request(GTK_WIDGET(widgets->KernelNameLabel),name_size,-1);
gtk_widget_set_size_request(GTK_WIDGET(widgets->KernelModulesLabel),modules_size,-1); gtk_widget_set_size_request(GTK_WIDGET(widgets->KernelModulesLabel),modules_size,-1);
@ -177,6 +181,7 @@ void yon_kernel_resize(main_window *widgets){
gtk_widget_set_size_request(GTK_WIDGET(row->EnableRadio),enable_size,-1); gtk_widget_set_size_request(GTK_WIDGET(row->EnableRadio),enable_size,-1);
gtk_widget_set_size_request(row->NameLabel,name_size,-1); gtk_widget_set_size_request(row->NameLabel,name_size,-1);
gtk_widget_set_size_request(row->ModulesLabel,modules_size,-1); gtk_widget_set_size_request(row->ModulesLabel,modules_size,-1);
while(gtk_events_pending()) gtk_main_iteration();
} }
g_list_free(list); g_list_free(list);
} }
@ -208,10 +213,10 @@ void yon_kernel_addon_resize(main_window *widgets){
} }
void yon_kernel_init(main_window *widgets){ void yon_kernel_init(main_window *widgets){
on_status_update(NULL,widgets);
if (!main_config.configure_mode){ if (!main_config.configure_mode){
yon_config_update_by_args(main_config.config_load_path, packages_parameter,KERNEL_BOOT_parameter,NULL); yon_config_update_by_args(main_config.config_load_path, packages_parameter,KERNEL_BOOT_parameter,NULL);
} }
while(gtk_events_pending()) gtk_main_iteration();
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->KernelListBox)); GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->KernelListBox));
GList *iter; GList *iter;
for (iter = list; iter; iter = iter->next){ for (iter = list; iter; iter = iter->next){
@ -222,6 +227,7 @@ void yon_kernel_init(main_window *widgets){
free(row); free(row);
gtk_widget_destroy(GTK_WIDGET(iter->data)); gtk_widget_destroy(GTK_WIDGET(iter->data));
} }
while(gtk_events_pending()) gtk_main_iteration();
} }
g_list_free(list); g_list_free(list);
@ -234,6 +240,7 @@ void yon_kernel_init(main_window *widgets){
modules_parsed = yon_char_parse(modules,&modules_size,","); modules_parsed = yon_char_parse(modules,&modules_size,",");
} }
while(gtk_events_pending()) gtk_main_iteration();
int size; int size;
config_str kernels = yon_resource_open_file(kernel_list_path,&size); config_str kernels = yon_resource_open_file(kernel_list_path,&size);
gtk_size_group_add_widget(widgets->KernelSizeGroup,widgets->KernelTagsLabel); gtk_size_group_add_widget(widgets->KernelSizeGroup,widgets->KernelTagsLabel);
@ -256,6 +263,7 @@ void yon_kernel_init(main_window *widgets){
yon_kernel_row_setup(row,name,modules,package,tags,description); yon_kernel_row_setup(row,name,modules,package,tags,description);
while(gtk_events_pending()) gtk_main_iteration();
if (yon_char_parsed_check_exist(modules_parsed,modules_size,parsed[1])>-1){ if (yon_char_parsed_check_exist(modules_parsed,modules_size,parsed[1])>-1){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),1);
} else { } else {
@ -269,6 +277,7 @@ void yon_kernel_init(main_window *widgets){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->EnableRadio),1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->EnableRadio),1);
} }
yon_char_parsed_free(parsed,parsed_size); yon_char_parsed_free(parsed,parsed_size);
while(gtk_events_pending()) gtk_main_iteration();
} }
yon_kernel_resize(widgets); yon_kernel_resize(widgets);
@ -419,11 +428,11 @@ void yon_kernel_addon_row_setup(kernel_addon_row *row, char *name, char *modules
} }
void yon_kernel_addon_init(main_window *widgets){ void yon_kernel_addon_init(main_window *widgets){
on_status_update(NULL,widgets);
yon_config_remove_by_args(packages_parameter,NULL); yon_config_remove_by_args(packages_parameter,NULL);
char *command = yon_config_parameter_prepare_command(packages_parameter_command,main_config.config_load_path,NULL,NULL); char *command = yon_config_parameter_prepare_command(packages_parameter_command,main_config.config_load_path,NULL,NULL);
yon_config_load_config(YON_CONFIG_CUSTOM,command,NULL); yon_config_load_config(YON_CONFIG_CUSTOM,command,NULL);
free(command); free(command);
while(gtk_events_pending()) gtk_main_iteration();
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->KernelAddonListBox)); GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->KernelAddonListBox));
GList *iter; GList *iter;
for (iter = list; iter; iter = iter->next){ for (iter = list; iter; iter = iter->next){
@ -434,6 +443,7 @@ void yon_kernel_addon_init(main_window *widgets){
free(row); free(row);
gtk_widget_destroy(GTK_WIDGET(iter->data)); gtk_widget_destroy(GTK_WIDGET(iter->data));
} }
while(gtk_events_pending()) gtk_main_iteration();
} }
g_list_free(list); g_list_free(list);
@ -478,6 +488,7 @@ void yon_kernel_addon_init(main_window *widgets){
gtk_widget_set_sensitive(row->InstallCheck,0); gtk_widget_set_sensitive(row->InstallCheck,0);
} }
yon_char_parsed_free(parsed,parsed_size); yon_char_parsed_free(parsed,parsed_size);
while(gtk_events_pending()) gtk_main_iteration();
} }
yon_kernel_addon_resize(widgets); yon_kernel_addon_resize(widgets);

@ -117,6 +117,7 @@ void yon_packages_tab_init(main_window *widgets){
yon_config_load_config(YON_CONFIG_CUSTOM,command,NULL); yon_config_load_config(YON_CONFIG_CUSTOM,command,NULL);
free(command); free(command);
} }
while(gtk_events_pending()) gtk_main_iteration();
gtk_tree_store_clear(widgets->PackagesList); gtk_tree_store_clear(widgets->PackagesList);
char *modules = config(modules_parameter); char *modules = config(modules_parameter);
if (modules&&!strcmp(modules,"auto")){ if (modules&&!strcmp(modules,"auto")){
@ -142,6 +143,7 @@ void yon_packages_tab_init(main_window *widgets){
} }
modules = yon_char_parsed_to_string(final,final_size,","); modules = yon_char_parsed_to_string(final,final_size,",");
} }
while(gtk_events_pending()) gtk_main_iteration();
int size; int size;
char *config_packages = config(packages_parameter); char *config_packages = config(packages_parameter);
@ -163,6 +165,7 @@ void yon_packages_tab_init(main_window *widgets){
} }
yon_char_parsed_add_or_create_if_exists(final,&final_size,modules_parsed[j]); yon_char_parsed_add_or_create_if_exists(final,&final_size,modules_parsed[j]);
} }
while(gtk_events_pending()) gtk_main_iteration();
yon_char_parsed_free(modules_parsed,modules_parsed_size); yon_char_parsed_free(modules_parsed,modules_parsed_size);
char *modules_string = yon_char_parsed_to_string(final,final_size,"\t"); char *modules_string = yon_char_parsed_to_string(final,final_size,"\t");
if (empty && !yon_char_check_elements(modules,modules_string,",")) continue; if (empty && !yon_char_check_elements(modules,modules_string,",")) continue;
@ -218,6 +221,7 @@ void yon_packages_tab_init(main_window *widgets){
free(full_string); free(full_string);
} }
} }
while(gtk_events_pending()) gtk_main_iteration();
} }
yon_packages_remove_empty_groups(widgets); yon_packages_remove_empty_groups(widgets);
if (!yon_char_is_empty(modules)) free(modules); if (!yon_char_is_empty(modules)) free(modules);

@ -419,6 +419,28 @@ void yon_switch_page_render(main_window *widgets){
g_list_free(list); g_list_free(list);
} }
void yon_container_start_loading(GtkWidget *target){
GtkWidget *parent = gtk_widget_get_parent(target);
g_object_ref(target);
gtk_container_remove(GTK_CONTAINER(parent),target);
GtkWidget *overlay = gtk_overlay_new();
g_object_set_data(G_OBJECT(parent),"loader_overlay",overlay);
g_object_set_data(G_OBJECT(target),"parent",parent);
gtk_overlay_add_overlay(GTK_OVERLAY(overlay),target);
gtk_widget_show(overlay);
}
void yon_container_stop_loading(GtkWidget *target){
g_object_ref(target);
GtkWidget *parent = g_object_get_data(G_OBJECT(target),"loader_overlay");
GtkWidget *overlay = g_object_get_data(G_OBJECT(parent),"loader_overlay");
gtk_container_remove(GTK_CONTAINER(overlay),target);
gtk_container_add(GTK_CONTAINER(parent),target);
gtk_widget_destroy(overlay);
gtk_widget_show(overlay);
g_object_set_data(G_OBJECT(parent),"loader_overlay",NULL);
g_object_set_data(G_OBJECT(target),"parent",NULL);
}
void yon_configuration_mode_check(main_window *widgets){ void yon_configuration_mode_check(main_window *widgets){
enum YON_PAGES page = gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook)); enum YON_PAGES page = gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook));
@ -470,18 +492,23 @@ void yon_page_init(main_window *widgets, enum YON_PAGES page){
yon_configuration_hub_init(widgets); yon_configuration_hub_init(widgets);
break; break;
case YON_PAGE_OS_COMPONENTS: case YON_PAGE_OS_COMPONENTS:
on_status_update(NULL,widgets);
yon_os_components_init(widgets); yon_os_components_init(widgets);
break; break;
case YON_PAGE_KERNEL: case YON_PAGE_KERNEL:
on_status_update(NULL,widgets);
yon_kernel_init(widgets); yon_kernel_init(widgets);
break; break;
case YON_PAGE_KERNEL_ADDON: case YON_PAGE_KERNEL_ADDON:
on_status_update(NULL,widgets);
yon_kernel_addon_init(widgets); yon_kernel_addon_init(widgets);
break; break;
case YON_PAGE_SOFTWARE: case YON_PAGE_SOFTWARE:
on_status_update(NULL,widgets);
yon_software_init(widgets); yon_software_init(widgets);
break; break;
case YON_PAGE_PACMAN_SOFTWARE: case YON_PAGE_PACMAN_SOFTWARE:
on_status_update(NULL,widgets);
yon_pacman_init(widgets); yon_pacman_init(widgets);
break; break;
case YON_PAGE_REGION: case YON_PAGE_REGION:
@ -509,6 +536,7 @@ void yon_page_init(main_window *widgets, enum YON_PAGES page){
yon_network_init(widgets); yon_network_init(widgets);
break; break;
case YON_PAGE_PACKAGES: case YON_PAGE_PACKAGES:
on_status_update(NULL,widgets);
yon_packages_tab_init(widgets); yon_packages_tab_init(widgets);
break; break;
case YON_PAGE_INSTALL_ADVANCED: case YON_PAGE_INSTALL_ADVANCED:

@ -315,28 +315,34 @@ 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);
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);
}
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){
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);
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 +353,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 +366,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);
} }
@ -723,6 +740,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_button_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_button_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_button_update),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_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_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_update),widgets);

@ -1628,3 +1628,11 @@ void on_software_info(GtkWidget*, main_window *widgets);
void yon_packages_remove_empty_groups(main_window *widgets); void yon_packages_remove_empty_groups(main_window *widgets);
void yon_config_mode_start(main_window *widgets); void yon_config_mode_start(main_window *widgets);
void on_bootloader_selected(GtkTreeView *,main_window *widgets); void on_bootloader_selected(GtkTreeView *,main_window *widgets);
void yon_update_page(main_window *widgets);
void *yon_db_update(main_window *widgets);
void on_status_button_update(GtkWidget *, main_window *widgets);
void yon_container_start_loading(GtkWidget *target);
void yon_container_stop_loading(GtkWidget *target);
void yon_status_thread_update_inactive(main_window *widgets);
void yon_status_thread_update_active(main_window *widgets);
void *yon_status_thread_update(main_window *widgets);
Loading…
Cancel
Save