|
|
|
|
@ -138,11 +138,16 @@ void *yon_interface_update(main_window *widgets){
|
|
|
|
|
|
|
|
|
|
int kernels_size;
|
|
|
|
|
config_str kernels = yon_resource_open_file(kernels_path, &kernels_size);
|
|
|
|
|
char *boot_config_run = config(KERNEL_BOOT_parameter);
|
|
|
|
|
|
|
|
|
|
char *boot_config_run=NULL;
|
|
|
|
|
int boot_size;
|
|
|
|
|
config_str boot_run = yon_config_load(get_active_kernel_command,&boot_size);
|
|
|
|
|
yon_char_remove_last_symbol(boot_run[0],'\n');
|
|
|
|
|
config_str boot_run=NULL;
|
|
|
|
|
if(!getuid()){
|
|
|
|
|
boot_config_run = config(KERNEL_BOOT_parameter);
|
|
|
|
|
|
|
|
|
|
boot_run = yon_config_load(get_active_kernel_command,&boot_size);
|
|
|
|
|
yon_char_remove_last_symbol(boot_run[0],'\n');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (int i=1;i<kernels_size;i++){
|
|
|
|
|
kernels_tab *tab = yon_tab_row_new(GTK_LIST_BOX(widgets->KernelsPackageBox),kernels[i],widgets);
|
|
|
|
|
@ -152,17 +157,19 @@ void *yon_interface_update(main_window *widgets){
|
|
|
|
|
gtk_widget_destroy(g_list_nth_data(list,i));
|
|
|
|
|
}
|
|
|
|
|
g_list_free(list);}
|
|
|
|
|
if (!strcmp(boot_run[0],tab->package)){
|
|
|
|
|
yon_tag_add(GTK_BOX(tab->run_tags_box),RUNNING_LABEL,"tag_green",NULL);
|
|
|
|
|
gtk_widget_hide(tab->remove_module_button);
|
|
|
|
|
gtk_widget_hide(tab->remove_package_button);
|
|
|
|
|
gtk_widget_hide(tab->launch_button);
|
|
|
|
|
} else if (!yon_char_is_empty(boot_config_run)&&!strcmp(boot_config_run,tab->package)){
|
|
|
|
|
yon_tag_add(GTK_BOX(tab->run_tags_box),BOOT_RUN_LABEL,"tag_orange",NULL);
|
|
|
|
|
gtk_widget_hide(tab->launch_button);
|
|
|
|
|
gtk_widget_hide(tab->remove_module_button);
|
|
|
|
|
gtk_widget_hide(tab->remove_package_button);
|
|
|
|
|
}
|
|
|
|
|
if(!getuid()){
|
|
|
|
|
if (boot_run&&!strcmp(boot_run[0],tab->package)){
|
|
|
|
|
yon_tag_add(GTK_BOX(tab->run_tags_box),RUNNING_LABEL,"tag_green",NULL);
|
|
|
|
|
gtk_widget_hide(tab->remove_module_button);
|
|
|
|
|
gtk_widget_hide(tab->remove_package_button);
|
|
|
|
|
gtk_widget_hide(tab->launch_button);
|
|
|
|
|
} else if (!yon_char_is_empty(boot_config_run)&&!strcmp(boot_config_run,tab->package)){
|
|
|
|
|
yon_tag_add(GTK_BOX(tab->run_tags_box),BOOT_RUN_LABEL,"tag_orange",NULL);
|
|
|
|
|
gtk_widget_hide(tab->launch_button);
|
|
|
|
|
gtk_widget_hide(tab->remove_module_button);
|
|
|
|
|
gtk_widget_hide(tab->remove_package_button);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
gtk_widget_set_can_focus(gtk_widget_get_parent(tab->main_box),0);
|
|
|
|
|
}
|
|
|
|
|
yon_char_parsed_free(kernels,kernels_size);
|
|
|
|
|
@ -554,6 +561,14 @@ kernels_tab *yon_tab_row_new(GtkListBox *target, char *target_string, main_windo
|
|
|
|
|
g_signal_connect(G_OBJECT(tab->remove_package_button),"clicked",G_CALLBACK(on_package_remove_clicked),dict);
|
|
|
|
|
g_signal_connect(G_OBJECT(tab->changelog_button),"clicked",G_CALLBACK(on_changelog_clicked),tab);
|
|
|
|
|
g_signal_connect(G_OBJECT(tab->launch_button),"clicked",G_CALLBACK(on_launch_cliked),dict);
|
|
|
|
|
|
|
|
|
|
if(getuid()){
|
|
|
|
|
gtk_widget_set_sensitive(tab->launch_button,0);
|
|
|
|
|
gtk_widget_set_sensitive(tab->remove_module_button,0);
|
|
|
|
|
gtk_widget_set_sensitive(tab->install_module_button,0);
|
|
|
|
|
gtk_widget_set_sensitive(tab->remove_package_button,0);
|
|
|
|
|
gtk_widget_set_sensitive(tab->install_package_button,0);
|
|
|
|
|
}
|
|
|
|
|
tab->module_installed=-1;
|
|
|
|
|
tab->package_installed=-1;
|
|
|
|
|
tab->name = yon_char_new(parsed[0]);
|
|
|
|
|
@ -590,29 +605,33 @@ kernels_tab *yon_tab_row_new(GtkListBox *target, char *target_string, main_windo
|
|
|
|
|
tab->module_requirements = yon_char_parse(parsed[3],&tab->module_requirements_size,",");
|
|
|
|
|
tab->package_requirements = yon_char_parse(parsed[4],&tab->package_requirements_size,",");
|
|
|
|
|
char *check_install_command = get_package_is_installed_command(tab->module);
|
|
|
|
|
if (!system(check_install_command)){
|
|
|
|
|
yon_tag_add(GTK_BOX(tab->install_tags_box),MODULE_INSTALLED_LABEL,"tag_green",NULL);
|
|
|
|
|
tab->module_installed=1;
|
|
|
|
|
|
|
|
|
|
gtk_image_set_from_icon_name(GTK_IMAGE(tab->module_icon),module_icon_path,GTK_ICON_SIZE_BUTTON);
|
|
|
|
|
gtk_widget_show(tab->remove_module_button);
|
|
|
|
|
gtk_widget_hide(tab->install_module_button);
|
|
|
|
|
gtk_widget_show(tab->changelog_button);
|
|
|
|
|
gtk_widget_show(tab->launch_button);
|
|
|
|
|
|
|
|
|
|
} else tab->module_installed=0;
|
|
|
|
|
{
|
|
|
|
|
free(check_install_command);
|
|
|
|
|
check_install_command = get_package_is_installed_command(tab->package);
|
|
|
|
|
if (!getuid()){
|
|
|
|
|
if (!system(check_install_command)){
|
|
|
|
|
tab->package_installed=1;
|
|
|
|
|
yon_tag_add(GTK_BOX(tab->install_tags_box),PACKAGE_INSTALLED_LABEL,"tag_green",NULL);
|
|
|
|
|
gtk_image_set_from_icon_name(GTK_IMAGE(tab->package_icon),package_icon_path,GTK_ICON_SIZE_BUTTON);
|
|
|
|
|
gtk_widget_hide(tab->install_package_button);
|
|
|
|
|
gtk_widget_show(tab->remove_package_button);
|
|
|
|
|
yon_tag_add(GTK_BOX(tab->install_tags_box),MODULE_INSTALLED_LABEL,"tag_green",NULL);
|
|
|
|
|
tab->module_installed=1;
|
|
|
|
|
|
|
|
|
|
gtk_image_set_from_icon_name(GTK_IMAGE(tab->module_icon),module_icon_path,GTK_ICON_SIZE_BUTTON);
|
|
|
|
|
gtk_widget_show(tab->remove_module_button);
|
|
|
|
|
gtk_widget_hide(tab->install_module_button);
|
|
|
|
|
gtk_widget_show(tab->changelog_button);
|
|
|
|
|
gtk_widget_show(tab->launch_button);
|
|
|
|
|
} else tab->package_installed=0;
|
|
|
|
|
|
|
|
|
|
} else tab->module_installed=0;
|
|
|
|
|
{
|
|
|
|
|
free(check_install_command);
|
|
|
|
|
check_install_command = get_package_is_installed_command(tab->package);
|
|
|
|
|
if (!system(check_install_command)){
|
|
|
|
|
tab->package_installed=1;
|
|
|
|
|
yon_tag_add(GTK_BOX(tab->install_tags_box),PACKAGE_INSTALLED_LABEL,"tag_green",NULL);
|
|
|
|
|
gtk_image_set_from_icon_name(GTK_IMAGE(tab->package_icon),package_icon_path,GTK_ICON_SIZE_BUTTON);
|
|
|
|
|
gtk_widget_hide(tab->install_package_button);
|
|
|
|
|
gtk_widget_show(tab->remove_package_button);
|
|
|
|
|
gtk_widget_show(tab->changelog_button);
|
|
|
|
|
gtk_widget_show(tab->launch_button);
|
|
|
|
|
} else tab->package_installed=0;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
yon_tag_add(GTK_BOX(tab->install_tags_box),UNKNOWN_LABEL,"tag_grey",NULL);
|
|
|
|
|
}
|
|
|
|
|
yon_char_parsed_free(types_parsed,types_size);
|
|
|
|
|
gtk_label_set_markup(GTK_LABEL(tab->name_label),name);
|
|
|
|
|
@ -963,6 +982,9 @@ 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->LoadCustomMenuItem),"activate",G_CALLBACK(on_config_custom_load),widgets);
|
|
|
|
|
|
|
|
|
|
if (getuid()){
|
|
|
|
|
gtk_widget_set_sensitive(widgets->BuildingButton,0);
|
|
|
|
|
}
|
|
|
|
|
gtk_progress_bar_set_pulse_step(GTK_PROGRESS_BAR(widgets->InstallationProgress),1);
|
|
|
|
|
GdkRGBA rgba;
|
|
|
|
|
vte_terminal_get_color_background_for_draw(VTE_TERMINAL(widgets->InstallTerminal),&rgba);
|
|
|
|
|
@ -989,7 +1011,8 @@ int main(int argc, char *argv[]){
|
|
|
|
|
int size=0;
|
|
|
|
|
yon_ubl_setup_arguments(argc,argv,&unfound,&size,NULL);
|
|
|
|
|
gtk_init(&argc,&argv);
|
|
|
|
|
template_main_window *widgets = yon_ubl_window_setup();
|
|
|
|
|
template_main_window *widgets = yon_ubl_window_setup();
|
|
|
|
|
yon_root_button_setup(widgets,argv,argc);
|
|
|
|
|
yon_main_window_complete((main_window*)widgets);
|
|
|
|
|
char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL);
|
|
|
|
|
yon_window_config_load(path);
|
|
|
|
|
|