Test fix for terminal endwork interface update #39

Merged
asmeron merged 10 commits from YanTheKaller/ubl-settings-kernel:master into master 1 year ago

@ -1,10 +1,10 @@
NAME;PAСKAGE_UBM;PAСKAGE;DESCRIPTION
Linux 5.15 headers;ubm-002-linux515-headers;linux515-headers;The Linux kernel headers v5.15
Linux 5.15 Docs;ubm-003-linux515-docs;linux515-docs;The Linux kernel docs v5.15
Linux 5.15 DKMS modules;ubm-linux515-dkms;v4l2loopback-dkms,rtl88x2bu-dkms-git,r8125-dkms,rtl8192eu-dkms,rtl8821cu-dkms-git;The Linux kernel DKMS modules v5.15 : v4l2loopback, r8168-8136, rtl88x2bu, r8125, rtl8192eu
Linux 5.15 DKMS modules;ubm-linux515-dkms;;The Linux kernel DKMS modules v5.15 : v4l2loopback, r8168-8136, rtl88x2bu, r8125, rtl8192eu
Linux 6.1 headers;ubm-002-linux61-headers;linux61-headers;The Linux kernel headers v6.1
Linux 6.1 Docs;ubm-003-linux61-docs;linux61-docs;The Linux kernel docs v6.1
Linux 6.1 DKMS modules;ubm-linux61-dkms;v4l2loopback-dkms,rtl88x2bu-dkms-git,r8125-dkms,rtl8192eu-dkms,rtl8821cu-dkms-git;The Linux kernel DKMS modules v6.1 : v4l2loopback, r8168-8136, rtl88x2bu, r8125, rtl8192eu
Linux 6.1 DKMS modules;ubm-linux61-dkms;;The Linux kernel DKMS modules v6.1 : v4l2loopback, r8168-8136, rtl88x2bu, r8125, rtl8192eu
Linux 6.6 headers;ubm-002-linux66-headers;linux66-headers;The Linux kernel headers v6.6
Linux 6.6 Docs;ubm-003-linux66-docs;linux66-docs;The Linux kernel docs v6.6
Linux 6.6 DKMS modules;ubm-linux66-dkms;v4l2loopback-dkms,rtl88x2bu-dkms-git,r8125-dkms,rtl8192eu-dkms,rtl8821cu-dkms-git;The Linux kernel DKMS modules v6.6 : v4l2loopback, r8168-8136, rtl88x2bu, r8125, rtl8192eu
Linux 6.6 DKMS modules;ubm-linux66-dkms;;The Linux kernel DKMS modules v6.6 : v4l2loopback, r8168-8136, rtl88x2bu, r8125, rtl8192eu
1 NAME PAСKAGE_UBM PAСKAGE DESCRIPTION
2 Linux 5.15 headers ubm-002-linux515-headers linux515-headers The Linux kernel headers v5.15
3 Linux 5.15 Docs ubm-003-linux515-docs linux515-docs The Linux kernel docs v5.15
4 Linux 5.15 DKMS modules ubm-linux515-dkms v4l2loopback-dkms,rtl88x2bu-dkms-git,r8125-dkms,rtl8192eu-dkms,rtl8821cu-dkms-git The Linux kernel DKMS modules v5.15 : v4l2loopback, r8168-8136, rtl88x2bu, r8125, rtl8192eu
5 Linux 6.1 headers ubm-002-linux61-headers linux61-headers The Linux kernel headers v6.1
6 Linux 6.1 Docs ubm-003-linux61-docs linux61-docs The Linux kernel docs v6.1
7 Linux 6.1 DKMS modules ubm-linux61-dkms v4l2loopback-dkms,rtl88x2bu-dkms-git,r8125-dkms,rtl8192eu-dkms,rtl8821cu-dkms-git The Linux kernel DKMS modules v6.1 : v4l2loopback, r8168-8136, rtl88x2bu, r8125, rtl8192eu
8 Linux 6.6 headers ubm-002-linux66-headers linux66-headers The Linux kernel headers v6.6
9 Linux 6.6 Docs ubm-003-linux66-docs linux66-docs The Linux kernel docs v6.6
10 Linux 6.6 DKMS modules ubm-linux66-dkms v4l2loopback-dkms,rtl88x2bu-dkms-git,r8125-dkms,rtl8192eu-dkms,rtl8821cu-dkms-git The Linux kernel DKMS modules v6.6 : v4l2loopback, r8168-8136, rtl88x2bu, r8125, rtl8192eu

@ -1,4 +1,4 @@
NAME;PAСKAGE_UBM;PAСKAGE;PAСKAGE_UBM_REQUIRED;PAСKAGE_REQUIRED;TAG;DESCRIPTION
Linux 5.15;ubm-001-linux515;linux515;ubm-002-linux515-headers;linux515-headers;LTS, Stable, RealTime, Hardened, Recomended;The Linux kernel v5.15 and modules, headers. Manual modules: acpi_call, bbswitch, broadcom-wl, r8168, rtl8723bu, tp_smapi, vhba-module, virtualbox-host-modules, zfs
Linux 6.1;ubm-001-linux61;linux61;ubm-002-linux61-headers;linux61-headers;LTS, Stable, RealTime, Hardened, Recomended;The Linux kernel v6.1 and modules, headers. Manual modules: acpi_call, bbswitch, broadcom-wl, r8168, rtl8723bu, tp_smapi, vhba-module, virtualbox-host-modules, zfs
Linux 6.6;ubm-001-linux66;linux66;ubm-002-linux66-headers;linux66-headers;LTS, Stable, RealTime, Hardened, Recomended;The Linux kernel v6.6 and modules, headers. Manual modules: acpi_call, bbswitch, broadcom-wl, r8168, rtl8723bu, tp_smapi, vhba-module, virtualbox-host-modules, zfs
Linux 5.15;ubm-001-linux515;linux515;ubm-001-linux515-headers;linux515-headers;LTS, Stable, RealTime, Hardened, Recomended;The Linux kernel v5.15 and modules, headers. Manual modules: acpi_call, bbswitch, broadcom-wl, r8168, rtl8723bu, tp_smapi, vhba-module, virtualbox-host-modules, zfs
Linux 6.1;ubm-001-linux61;linux61;ubm-001-linux61-headers;linux61-headers;LTS, Stable, RealTime, Hardened, Recomended;The Linux kernel v6.1 and modules, headers. Manual modules: acpi_call, bbswitch, broadcom-wl, r8168, rtl8723bu, tp_smapi, vhba-module, virtualbox-host-modules, zfs
Linux 6.6;ubm-001-linux66;linux66;ubm-001-linux66-headers;linux66-headers;LTS, Stable, RealTime, Hardened, Recomended;The Linux kernel v6.6 and modules, headers. Manual modules: acpi_call, bbswitch, broadcom-wl, r8168, rtl8723bu, tp_smapi, vhba-module, virtualbox-host-modules, zfs
1 NAME PAСKAGE_UBM PAСKAGE PAСKAGE_UBM_REQUIRED PAСKAGE_REQUIRED TAG DESCRIPTION
2 Linux 5.15 ubm-001-linux515 linux515 ubm-002-linux515-headers ubm-001-linux515-headers linux515-headers LTS, Stable, RealTime, Hardened, Recomended The Linux kernel v5.15 and modules, headers. Manual modules: acpi_call, bbswitch, broadcom-wl, r8168, rtl8723bu, tp_smapi, vhba-module, virtualbox-host-modules, zfs
3 Linux 6.1 ubm-001-linux61 linux61 ubm-002-linux61-headers ubm-001-linux61-headers linux61-headers LTS, Stable, RealTime, Hardened, Recomended The Linux kernel v6.1 and modules, headers. Manual modules: acpi_call, bbswitch, broadcom-wl, r8168, rtl8723bu, tp_smapi, vhba-module, virtualbox-host-modules, zfs
4 Linux 6.6 ubm-001-linux66 linux66 ubm-002-linux66-headers ubm-001-linux66-headers linux66-headers LTS, Stable, RealTime, Hardened, Recomended The Linux kernel v6.6 and modules, headers. Manual modules: acpi_call, bbswitch, broadcom-wl, r8168, rtl8723bu, tp_smapi, vhba-module, virtualbox-host-modules, zfs

@ -66,28 +66,32 @@ void on_config_save(GtkWidget *, main_window *widgets){
main_config.save_config=2;
template_saving_window *window = yon_save_proceed(NULL,YON_CONFIG_BOTH,yon_config_get_custom_command("global"),NULL);
if (window){};
yon_interface_update(widgets);
on_update_clicked(NULL,widgets);
}
void on_config_global_save(GtkWidget *, main_window *widgets){
main_config.save_config=0;
template_saving_window *window = yon_save_proceed("global",YON_CONFIG_GLOBAL,yon_config_get_custom_command("global"),NULL);
if (window){};
yon_interface_update(widgets);
on_update_clicked(NULL,widgets);
}
void on_config_local_save(GtkWidget *, main_window *widgets){
main_config.save_config=1;
template_saving_window *window = yon_save_proceed("system",YON_CONFIG_LOCAL,yon_config_get_custom_command("system"),NULL);
if (window){};
yon_interface_update(widgets);
on_update_clicked(NULL,widgets);
}
void on_config_custom_save(GtkWidget *, main_window *widgets){
main_config.save_config=1;
template_saving_window *window = yon_save_proceed(NULL,YON_CONFIG_CUSTOM,yon_config_get_custom_command("system"),NULL);
if (window){};
yon_interface_update(widgets);
on_update_clicked(NULL,widgets);
}
@ -97,7 +101,8 @@ void on_config_local_load(GtkWidget *, main_window *widgets){
yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
textdomain(LocaleName);
main_config.load_mode=1;
yon_interface_update(widgets);
on_update_clicked(NULL,widgets);
}
void on_config_global_load(GtkWidget *, main_window *widgets){
@ -106,7 +111,8 @@ void on_config_global_load(GtkWidget *, main_window *widgets){
yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
textdomain(LocaleName);
main_config.load_mode=0;
yon_interface_update(widgets);
on_update_clicked(NULL,widgets);
}
void on_config_custom_load(GtkWidget *,main_window *widgets){
@ -115,7 +121,8 @@ void on_config_custom_load(GtkWidget *,main_window *widgets){
yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
textdomain(LocaleName);
main_config.load_mode=3;
yon_interface_update(widgets);
on_update_clicked(NULL,widgets);
}
gboolean yon_tab_create_tags(kernels_tab *tab){
@ -125,31 +132,47 @@ gboolean yon_tab_create_tags(kernels_tab *tab){
}
g_list_free(list);
if (!getuid()){
if (tab->module_installed){
switch(tab->module_installed){
case 1:{
yon_tag_add(GTK_BOX(tab->install_tags_box),MODULE_INSTALLED_LABEL,"tag_green",NULL);
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_show(tab->update_module_button);
gtk_widget_hide(tab->install_module_button);
} else {
gtk_widget_hide(tab->remove_module_button);
gtk_widget_hide(tab->update_module_button);
gtk_widget_show(tab->install_module_button);
gtk_widget_show(tab->remove_module_button);
gtk_widget_show(tab->update_module_button);
gtk_widget_hide(tab->install_module_button);
gtk_widget_set_tooltip_text(tab->module_icon,MODULE_INSTALLED_LABEL);
} break;
case 0:{
gtk_widget_hide(tab->remove_module_button);
gtk_widget_hide(tab->update_module_button);
gtk_widget_show(tab->install_module_button);
} break;
case -1: {
gtk_widget_hide(tab->remove_module_button);
gtk_widget_hide(tab->update_module_button);
gtk_widget_hide(tab->install_module_button);
gtk_widget_hide(tab->module_label);
} break;
}
{
if (tab->package_installed){
switch (tab->package_installed){
case 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->update_package_button);
} else {
gtk_widget_set_tooltip_text(tab->package_icon,PACKAGE_INSTALLED_LABEL);
} break;
case 0:{
gtk_widget_show(tab->install_package_button);
gtk_widget_hide(tab->remove_package_button);
gtk_widget_hide(tab->update_package_button);
}break;
case -1:{
gtk_widget_hide(tab->remove_package_button);
gtk_widget_hide(tab->update_package_button);
gtk_widget_hide(tab->install_package_button);
gtk_widget_hide(tab->package_label);
}
}
if (tab->package_installed||tab->module_installed){
@ -157,7 +180,9 @@ gboolean yon_tab_create_tags(kernels_tab *tab){
char *launched = config(KERNEL_BOOT_parameter);
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');
if (boot_size>0){
yon_char_remove_last_symbol(boot_run[0],'\n');
}
if ((!(launched&&!strcmp(tab->package,launched))&&(strcmp(tab->package,boot_run[0])))){
gtk_widget_show(tab->launch_button);
@ -166,14 +191,10 @@ gboolean yon_tab_create_tags(kernels_tab *tab){
if(!getuid()){
if (boot_run&&!strcmp(boot_run[0],tab->package)){
yon_tag_add(GTK_BOX(tab->install_tags_box),RUNNING_LABEL,"tag_green",NULL);
gtk_widget_hide(tab->update_module_button);
gtk_widget_hide(tab->update_package_button);
gtk_widget_hide(tab->launch_button);
} else if (!yon_char_is_empty(launched)&&!strcmp(launched,tab->package)){
yon_tag_add(GTK_BOX(tab->install_tags_box),BOOT_RUN_LABEL,"tag_orange",NULL);
gtk_widget_hide(tab->launch_button);
gtk_widget_hide(tab->update_module_button);
gtk_widget_hide(tab->update_package_button);
}
}
}
@ -188,6 +209,10 @@ gboolean yon_tab_create_tags(kernels_tab *tab){
yon_tag_add(GTK_BOX(tab->install_tags_box),UNKNOWN_LABEL,"tag_grey",NULL);
}
gtk_widget_show(tab->main_box);
g_mutex_lock(&main_config.update_mutex);
main_config.update_active--;
g_mutex_unlock(&main_config.update_mutex);
return G_SOURCE_REMOVE;
}
@ -200,85 +225,108 @@ char *yon_package_string_set(char *target){
}
void *yon_tab_set_installed(kernels_tab *tab){
g_mutex_lock(&main_config.update_mutex);
main_config.update_active++;
g_mutex_unlock(&main_config.update_mutex);
char *target_module = yon_package_string_set(tab->module);
char *target_package = yon_package_string_set(tab->package);
char *check_install_command = get_package_is_installed_command(target_module); //if module installed
if (!system(yon_debug_output("%s\n",check_install_command))){
tab->module_installed=1;
} else tab->module_installed=0;
free(check_install_command);
check_install_command = get_package_is_installed_command(target_package); //if package installed
if (!system(yon_debug_output("%s\n",check_install_command))){
tab->package_installed=1;
} else tab->package_installed=0;
free(check_install_command);
check_install_command = get_package_is_updated_command(target_module); //if module has updates
if (!system(yon_debug_output("%s\n",check_install_command))){
tab->module_updated = 0;
} else tab->module_updated = 1;
free(check_install_command);
check_install_command = get_package_is_updated_command(target_package); //if package has updates
if (!system(yon_debug_output("%s\n",check_install_command))){
tab->package_updated = 0;
} else tab->package_updated = 1;
free(check_install_command);
char *check_install_command = NULL;
if (yon_char_is_empty(target_module)){
tab->module_installed=-1;
} else {
check_install_command = get_package_is_installed_command(target_module); //if module installed
if (!system(yon_debug_output("%s\n",check_install_command))){
tab->module_installed=1;
} else tab->module_installed=0;
free(check_install_command);
check_install_command = get_package_is_updated_command(target_module); //if module has updates
if (!system(yon_debug_output("%s\n",check_install_command))){
tab->module_updated = 0;
} else tab->module_updated = 1;
free(check_install_command);
}
if (yon_char_is_empty(target_package)){
tab->package_installed=-1;
} else {
check_install_command = get_package_is_installed_command(target_package); //if package installed
if (!system(yon_debug_output("%s\n",check_install_command))){
tab->package_installed=1;
} else tab->package_installed=0;
free(check_install_command);
check_install_command = get_package_is_updated_command(target_package); //if package has updates
if (!system(yon_debug_output("%s\n",check_install_command))){
tab->package_updated = 0;
} else tab->package_updated = 1;
free(check_install_command);
}
if (tab->package_installed==-1&&tab->module_installed==-1){
gtk_widget_destroy(tab->main_box);
tab->main_box=NULL;
}
gdk_threads_add_idle((GSourceFunc)yon_tab_create_tags,tab);
return NULL;
}
void *yon_interface_update(main_window *widgets){
yon_ubl_status_box_render(LOADING_LABEL,BACKGROUND_IMAGE_INFO_TYPE);
if (!main_config.kernel_tabs){
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->KernelsPackageBox));
for (guint i=0;i<g_list_length(list);i++){
gtk_widget_destroy(g_list_nth_data(list,i));
int lock = 0;
g_mutex_lock(&main_config.update_mutex);
lock=main_config.update_active;
g_mutex_unlock(&main_config.update_mutex);
if (!lock){
yon_ubl_status_box_render(LOADING_LABEL,BACKGROUND_IMAGE_INFO_TYPE);
{
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->KernelsPackageBox));
if (g_list_length(list)>0){
for (guint i=0;i<g_list_length(list);i++){
gtk_widget_destroy(g_list_nth_data(list,i));
}
g_list_free(list);
}
}
g_list_free(list);
}
if (!main_config.addition_tabs){
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->AdditionsPackageBox));
for (guint i=0;i<g_list_length(list);i++){
gtk_widget_destroy(g_list_nth_data(list,i));
{
GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->AdditionsPackageBox));
if (g_list_length(list)>0){
for (guint i=0;i<g_list_length(list);i++){
gtk_widget_destroy(g_list_nth_data(list,i));
}
g_list_free(list);
}
}
g_list_free(list);
}
int kernels_size;
config_str kernels = yon_resource_open_file(kernels_path, &kernels_size);
int kernels_size;
config_str kernels = yon_resource_open_file(kernels_path, &kernels_size);
for (int i=1;i<kernels_size;i++){
kernels_tab *tab = yon_tab_row_new(GTK_LIST_BOX(widgets->KernelsPackageBox),kernels[i],widgets);
g_thread_new("tags_install_tread",(GThreadFunc)yon_tab_set_installed,tab);
{
GList *list = gtk_container_get_children(GTK_CONTAINER(tab->run_tags_box));
for (guint i=0;i<g_list_length(list);i++){
gtk_widget_destroy(g_list_nth_data(list,i));
for (int i=1;i<kernels_size;i++){
kernels_tab *tab = yon_tab_row_new(GTK_LIST_BOX(widgets->KernelsPackageBox),kernels[i],widgets);
g_thread_new("tags_install_tread",(GThreadFunc)yon_tab_set_installed,tab);
{
GList *list = gtk_container_get_children(GTK_CONTAINER(tab->run_tags_box));
for (guint i=0;i<g_list_length(list);i++){
gtk_widget_destroy(g_list_nth_data(list,i));
}
g_list_free(list);}
gtk_widget_set_can_focus(gtk_widget_get_parent(tab->main_box),0);
}
g_list_free(list);}
gtk_widget_set_can_focus(gtk_widget_get_parent(tab->main_box),0);
}
yon_char_parsed_free(kernels,kernels_size);
kernels = yon_resource_open_file(kernels_addon_path, &kernels_size);
for (int i=1;i<kernels_size;i++){
additions_kernels_tab *tab = yon_additions_tab_row_new(GTK_LIST_BOX(widgets->AdditionsPackageBox),kernels[i],widgets);
g_thread_new("tags_install_tread",(GThreadFunc)yon_tab_set_installed,tab);
gtk_widget_set_can_focus(gtk_widget_get_parent(tab->main_box),0);
}
textdomain(template_ui_LocaleName);
switch (main_config.load_mode){
case 0: yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
break;
case 1: yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
break;
case 3: yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
break;
yon_char_parsed_free(kernels,kernels_size);
kernels = yon_resource_open_file(kernels_addon_path, &kernels_size);
for (int i=1;i<kernels_size;i++){
additions_kernels_tab *tab = yon_additions_tab_row_new(GTK_LIST_BOX(widgets->AdditionsPackageBox),kernels[i],widgets);
g_thread_new("tags_install_tread",(GThreadFunc)yon_tab_set_installed,tab);
gtk_widget_set_can_focus(gtk_widget_get_parent(tab->main_box),0);
}
textdomain(template_ui_LocaleName);
switch (main_config.load_mode){
case 0: yon_ubl_status_box_render(GLOBAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
break;
case 1: yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
break;
case 3: yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
break;
}
textdomain(LocaleName);
}
textdomain(LocaleName);
return NULL;
}
@ -344,7 +392,8 @@ gboolean on_command_execute_success(GtkWidget *,gint status,main_window *widgets
g_mutex_unlock(&main_config.progress_mutex);
if (!status){
yon_ubl_status_box_render(OPERATION_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
yon_interface_update(widgets);
on_update_clicked(NULL,widgets);
} else {
yon_ubl_status_box_render(OPERATION_ERROR_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
}
@ -393,7 +442,8 @@ gboolean yon_terminal_get_progress(main_window *widgets){
void *yon_command_execute_async(char *command,main_window *widgets){
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->InstallationProgress),0);
vte_terminal_reset(VTE_TERMINAL(widgets->InstallTerminal),0,1);
yon_terminal_integrated_start_shell(widgets->InstallTerminal,yon_debug_output("%s\n",command),on_command_execute_success,widgets);
yon_terminal_integrated_start_shell(widgets->InstallTerminal,yon_debug_output("%s\n",command),NULL,NULL);
g_signal_connect_after(G_OBJECT(widgets->InstallTerminal),"child-exited",G_CALLBACK(on_command_execute_success),widgets);
// yon_terminal_integrated_start(widgets->InstallTerminal,yon_debug_output("%s\n",command));
glong columns = vte_terminal_get_column_count(VTE_TERMINAL(widgets->InstallTerminal));
vte_terminal_set_size(VTE_TERMINAL(widgets->InstallTerminal),columns,20);
@ -477,7 +527,11 @@ dialog_window *yon_dialog_window_new(){
void on_module_install_clicked(GtkWidget *self,dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
kernels_tab *tab = yon_dictionary_get_data(dict->first->next,kernels_tab*);
char *action_text = MODULE_INSTALL_CONFIRMATION_LABEL(tab->name);
char *action_text = NULL;
if (self == tab->update_module_button)
action_text = KERNEL_MODULE_UPDATE_CONFIRMATION_LABEL(tab->name);
else
action_text = KERNEL_MODULE_INSTALL_CONFIRMATION_LABEL(tab->name);
if (!gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))){
dialog_window *window = yon_dialog_window_new();
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
@ -504,7 +558,10 @@ void on_module_install_clicked(GtkWidget *self,dictionary *dict){
} else {
dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data));
data->action_text = MODULE_INSTALL_CONFIRMATION_LABEL(tab->name);
if (self == tab->update_module_button)
data->action_text = ADDITION_MODULE_UPDATE_CONFIRMATION_LABEL(tab->name);
else
data->action_text = ADDITION_MODULE_INSTALL_CONFIRMATION_LABEL(tab->name);
data->function = NULL;
data->data = NULL;
if (yon_confirmation_dialog_call(self,data) == GTK_RESPONSE_ACCEPT){
@ -519,7 +576,11 @@ void on_module_install_clicked(GtkWidget *self,dictionary *dict){
void on_package_install_clicked(GtkWidget *self,dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
kernels_tab *tab = yon_dictionary_get_data(dict->first->next,kernels_tab*);
char *action_text = MODULE_INSTALL_CONFIRMATION_LABEL(tab->name);
char *action_text = NULL;
if (self == tab->update_module_button)
action_text = KERNEL_PACKAGE_UPDATE_CONFIRMATION_LABEL(tab->name);
else
action_text = KERNEL_PACKAGE_INSTALL_CONFIRMATION_LABEL(tab->name);
if (!gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))){
dialog_window *window = yon_dialog_window_new();
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_package_install_accept),dict);
@ -546,7 +607,10 @@ void on_package_install_clicked(GtkWidget *self,dictionary *dict){
} else {
dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data));
data->action_text = MODULE_INSTALL_CONFIRMATION_LABEL(tab->name);
if (self == tab->update_package_button)
data->action_text = ADDITION_PACKAGE_UPDATE_CONFIRMATION_LABEL(tab->name);
else
data->action_text = ADDITION_PACKAGE_INSTALL_CONFIRMATION_LABEL(tab->name);
data->function = NULL;
data->data = NULL;
if (yon_confirmation_dialog_call(self,data) == GTK_RESPONSE_ACCEPT){
@ -569,8 +633,33 @@ void on_module_remove_done(GtkWidget *self, int state, kernels_tab *tab){
void on_module_remove_clicked(GtkWidget *self,dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
kernels_tab *tab = yon_dictionary_get_data(dict->first->next,kernels_tab*);
int size;
config_str cnf = yon_config_load(SAVE_MODE_GET_COMMAND,&size);
yon_char_remove_last_symbol(cnf[0],'\n');
SAVE_MODE_TYPE type = yon_ubl_save_mode_get_type(cnf[0]);
int installed_kernels=0;
dictionary *cur_ker=NULL;
for_dictionaries(cur_ker,main_config.kernel_tabs){
switch(type){
case SAVE_MODE_RAM_HOME:
case SAVE_MODE_SANDBOX:{
if (((kernels_tab*)cur_ker->data)->module_installed){
installed_kernels++;
} break;
default:
if (((kernels_tab*)cur_ker->data)->package_installed||((kernels_tab*)cur_ker->data)->module_installed){
installed_kernels++;
}
} break;
}
}
dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data));
data->action_text = MODULE_REMOVE_CONFIRMATION_LABEL(tab->name);
if (installed_kernels>1){
data->action_text = KERNEL_MODULE_REMOVE_CONFIRMATION_LABEL(tab->name);
} else if (installed_kernels==1){
data->action_text = KERNEL_REMOVE_LAST_CONFIRMATION_LABEL(tab->name);
}
data->function = NULL;
data->data = NULL;
if (yon_confirmation_dialog_call(self,data) == GTK_RESPONSE_ACCEPT){
@ -588,8 +677,33 @@ void on_module_remove_clicked(GtkWidget *self,dictionary *dict){
void on_package_remove_clicked(GtkWidget *self,dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
kernels_tab *tab = yon_dictionary_get_data(dict->first->next,kernels_tab*);
int size;
config_str cnf = yon_config_load(SAVE_MODE_GET_COMMAND,&size);
yon_char_remove_last_symbol(cnf[0],'\n');
SAVE_MODE_TYPE type = yon_ubl_save_mode_get_type(cnf[0]);
int installed_kernels=0;
dictionary *cur_ker=NULL;
for_dictionaries(cur_ker,main_config.kernel_tabs){
switch(type){
case SAVE_MODE_RAM_HOME:
case SAVE_MODE_SANDBOX:{
if (((kernels_tab*)cur_ker->data)->module_installed){
installed_kernels++;
} break;
default:
if (((kernels_tab*)cur_ker->data)->package_installed||((kernels_tab*)cur_ker->data)->module_installed){
installed_kernels++;
}
} break;
}
}
dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data));
data->action_text = PACKAGE_REMOVE_CONFIRMATION_LABEL(tab->name);
if (installed_kernels>1){
data->action_text = KERNEL_PACKAGE_REMOVE_CONFIRMATION_LABEL(tab->name);
} else if (installed_kernels==1){
data->action_text = KERNEL_REMOVE_LAST_CONFIRMATION_LABEL(tab->name);
}
data->function = NULL;
data->data = NULL;
int resp = yon_confirmation_dialog_call(self,data);
@ -611,7 +725,8 @@ void on_launch_cliked(GtkWidget *self,dictionary *dict){
data->data = NULL;
if (yon_confirmation_dialog_call(self,data) == GTK_RESPONSE_ACCEPT){
yon_config_set(KERNEL_BOOT_parameter,tab->package);
yon_interface_update(widgets);
on_update_clicked(NULL,widgets);
}
}
@ -657,7 +772,10 @@ 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);
g_signal_connect(G_OBJECT(tab->module_label),"activate-link",G_CALLBACK(on_info_clicked),tab);
g_signal_connect(G_OBJECT(tab->package_label),"activate-link",G_CALLBACK(on_info_clicked),tab);
if(getuid()){
gtk_widget_set_sensitive(tab->launch_button,0);
gtk_widget_set_sensitive(tab->remove_module_button,0);
@ -671,8 +789,8 @@ kernels_tab *yon_tab_row_new(GtkListBox *target, char *target_string, main_windo
tab->module = yon_char_new(parsed[1]);
tab->package = yon_char_new(parsed[2]);
char *name = yon_char_unite("<b>",tab->name,"</b>",NULL);
char *module = yon_char_unite("<i>",MODULE_LABEL," ",tab->module,"</i>",NULL);
char *package = yon_char_unite("<i>",PACKAGE_LABEL," ",tab->package,"</i>",NULL);
char *module = yon_char_unite("<i>",MODULE_LABEL," <a href=\"\">",tab->module,"</a></i>",NULL);
char *package = yon_char_unite("<i>",PACKAGE_LABEL," <a href=\"\">",tab->package,"</a></i>",NULL);
yon_dictionary_add_or_create_if_exists_with_data(main_config.kernel_tabs,tab->package,tab);
@ -759,14 +877,17 @@ additions_kernels_tab *yon_additions_tab_row_new(GtkListBox *target, char *targe
g_signal_connect(G_OBJECT(tab->install_package_button),"clicked",G_CALLBACK(on_package_install_clicked),dict);
g_signal_connect(G_OBJECT(tab->remove_module_button),"clicked",G_CALLBACK(on_module_remove_clicked),dict);
g_signal_connect(G_OBJECT(tab->remove_package_button),"clicked",G_CALLBACK(on_package_remove_clicked),dict);
g_signal_connect(G_OBJECT(tab->module_label),"activate-link",G_CALLBACK(on_info_clicked),tab);
g_signal_connect(G_OBJECT(tab->package_label),"activate-link",G_CALLBACK(on_info_clicked),tab);
gtk_list_box_insert(target,tab->main_box,-1);
tab->name = yon_char_new(parsed[0]);
tab->module = yon_char_new(parsed[1]);
tab->package = yon_char_new(parsed[2]);
char *name = yon_char_unite("<b>",tab->name,"</b>",NULL);
char *module = yon_char_unite("<i>",MODULE_LABEL," ",tab->module,"</i>",NULL);
char *package = yon_char_unite("<i>",PACKAGE_LABEL," ",tab->package,"</i>",NULL);
char *module = yon_char_unite("<i>",MODULE_LABEL," <a href=\"\">",tab->module,"</a></i>",NULL);
char *package = yon_char_unite("<i>",PACKAGE_LABEL," <a href=\"\">",tab->package,"</a></i>",NULL);
yon_dictionary_add_or_create_if_exists_with_data(main_config.addition_tabs,tab->package,tab);
@ -804,58 +925,51 @@ void config_init(){
main_config.load_mode=1;
main_config.save_config=1;
main_config.kernel_tabs=NULL;
main_config.addition_tabs=NULL;
main_config.progress_active=0;
main_config.update_active=0;
}
void on_update_clicked(GtkWidget *, main_window *widgets){
yon_dictionary_free_all(main_config.kernel_tabs,free);
yon_dictionary_free_all(main_config.addition_tabs,free);
main_config.kernel_tabs=NULL;
main_config.addition_tabs=NULL;
int lock=0;
g_mutex_lock(&main_config.update_mutex);
lock = main_config.update_active;
g_mutex_unlock(&main_config.update_mutex);
if (!lock){
yon_dictionary_free_all(main_config.kernel_tabs,free);
yon_dictionary_free_all(main_config.addition_tabs,free);
main_config.kernel_tabs=NULL;
main_config.addition_tabs=NULL;
yon_interface_update(widgets);
}
void on_selection_changed(GtkWidget *, GtkListBoxRow* row, main_window *widgets){
if (row){
gtk_widget_set_sensitive(widgets->InfoButton,1);
} else {
gtk_widget_set_sensitive(widgets->InfoButton,0);
}
}
void on_info_clicked(GtkWidget *, main_window *widgets){
void on_info_clicked(GtkWidget *self, char *, kernels_tab *tab){
info_window *window = yon_info_window_new();
yon_gtk_window_setup(GTK_WINDOW(window->window),GTK_WINDOW(widgets->Window),INFO_TITLE_LABEL,icon_path,"info_window");
GtkWidget *current_tree=NULL;
if (gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook))==0){
current_tree = widgets->KernelsPackageBox;
yon_gtk_window_setup(GTK_WINDOW(window->window),NULL,INFO_TITLE_LABEL,icon_path,"info_window");
char *package=NULL;
if (self == tab->module_label){
package = yon_char_new(tab->module);
} else {
current_tree = widgets->AdditionsPackageBox;
package = yon_char_new(tab->package);
}
GtkListBoxRow *target = gtk_list_box_get_selected_row(GTK_LIST_BOX(current_tree));
if (target){
GList *list = gtk_container_get_children(GTK_CONTAINER(target));
GList *list2 = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(list,0)));
GList *list3 = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(list2,0)));
GList *list4 = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(list3,2)));
char * target_str = yon_char_new((char*)gtk_label_get_text(GTK_LABEL(g_list_nth_data(list4,1))));
int size;
char *package=NULL;
if ((package = strstr(target_str,": "))){
package+=2;
if (strstr(package,",")){
package = yon_char_replace(package,","," ");
}
}
config_str info = yon_config_load(get_package_info_command(package),&size);
if (size!=-1){
char *final_text = yon_char_parsed_to_string(info,size,"");
gtk_label_set_text(GTK_LABEL(window->InfoLabel),final_text);
free(final_text);
} else {
gtk_label_set_text(GTK_LABEL(window->InfoLabel),PACKAGE_NOT_FOUND_LABEL);
}
int size;
if (strstr(package,",")){
char *temp = yon_char_replace(package,","," ");
free(package);
package = temp;
}
config_str info = yon_config_load(get_package_info_command(package),&size);
if (size!=-1){
char *final_text = yon_char_parsed_to_string(info,size,"");
gtk_label_set_text(GTK_LABEL(window->InfoLabel),final_text);
free(final_text);
} else {
gtk_label_set_text(GTK_LABEL(window->InfoLabel),PACKAGE_NOT_FOUND_LABEL);
}
gtk_widget_show(window->window);
}
@ -972,8 +1086,6 @@ void yon_main_window_complete(main_window *widgets){
{
widgets->MainNotebook = yon_gtk_builder_get_widget(builder, "MainNotebook");
widgets->UpdateButton = yon_gtk_builder_get_widget(builder, "UpdateButton");
widgets->InfoButton = yon_gtk_builder_get_widget(builder, "InfoButton");
widgets->LogButton = yon_gtk_builder_get_widget(builder, "LogButton");
widgets->BuildingButton = yon_gtk_builder_get_widget(builder, "BuildingButton");
widgets->KernelsUpperTree = yon_gtk_builder_get_widget(builder, "KernelsUpperTree");
widgets->KernelsTree = yon_gtk_builder_get_widget(builder, "KernelsTree");
@ -999,11 +1111,8 @@ void yon_main_window_complete(main_window *widgets){
widgets->ButtonsSizeGroup = GTK_SIZE_GROUP(gtk_builder_get_object(builder,"ButtonsSizeGroup"));
g_signal_connect(G_OBJECT(widgets->UpdateButton),"clicked",G_CALLBACK(on_update_clicked),widgets);
g_signal_connect(G_OBJECT(widgets->InfoButton),"clicked",G_CALLBACK(on_info_clicked),widgets);
g_signal_connect(G_OBJECT(widgets->BuildingButton),"clicked",G_CALLBACK(on_building_clicked),widgets);
g_signal_connect(G_OBJECT(widgets->MoreButton),"clicked",G_CALLBACK(on_terminal_revealer_open),widgets);
g_signal_connect(G_OBJECT(widgets->KernelsPackageBox),"row-selected",G_CALLBACK(on_selection_changed),widgets);
g_signal_connect(G_OBJECT(widgets->AdditionsPackageBox),"row-selected",G_CALLBACK(on_selection_changed),widgets);
// g_signal_connect(G_OBJECT(widgets->InstallTerminal),"child-exited",G_CALLBACK(on_command_execute_success),widgets);
g_signal_connect(G_OBJECT(widgets->SaveMenuItem),"activate",G_CALLBACK(on_config_save),widgets);
@ -1014,6 +1123,11 @@ 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);
int paned_pos=0;
if (yon_window_config_get_parameter("settings","paned_pos",&paned_pos,YON_TYPE_INT)) {
gtk_paned_set_position(GTK_PANED(widgets->TerminalPaned),paned_pos);
}
yon_root_button_setup((template_main_window*)widgets,main_config.launch_arguments,main_config.launch_size);
if (getuid()){
gtk_widget_set_sensitive(widgets->BuildingButton,0);
@ -1025,10 +1139,11 @@ void yon_main_window_complete(main_window *widgets){
glong columns = vte_terminal_get_column_count(VTE_TERMINAL(widgets->InstallTerminal));
vte_terminal_set_size(VTE_TERMINAL(widgets->InstallTerminal),columns,20);
yon_gtk_widget_set_scroll_window_for_scroll(widgets->InstallTerminal,GTK_SCROLLBAR(widgets->TerminalScroll));
gtk_paned_add2(GTK_PANED(widgets->TerminalPaned),widgets->TerminalRevealer);
yon_interface_update(widgets);
on_update_clicked(NULL,widgets);
yon_save_window_set_postsave_function(on_save_done,widgets);
}
yon_load_proceed(YON_CONFIG_LOCAL);

@ -83,13 +83,14 @@ typedef struct {
int progress_active;
config_str launch_arguments;
int launch_size;
int update_active;
GMutex update_mutex;
} config;
typedef struct {
template_window_fields
GtkWidget *UpdateButton;
GtkWidget *InfoButton;
GtkWidget *LogButton;
GtkWidget *BuildingButton;
GtkWidget *KernelsUpperTree;
GtkWidget *KernelsTree;
@ -261,7 +262,7 @@ void on_update_clicked(GtkWidget *, main_window *widgets);
void on_selection_changed(GtkWidget *self,GtkListBoxRow* row,main_window *widgets);
void on_info_clicked(GtkWidget *, main_window *widgets);
void on_info_clicked(GtkWidget *, char *, kernels_tab *tab);
void on_changelog_clicked(GtkWidget *, kernels_tab *tab);

@ -61,8 +61,20 @@
#define OPERATION_IN_PROGRESS_LABEL _("Terminal operation in process")
#define PACKAGE_REMOVED_BUT_NOT_DISABLED_LABEL _("The package with the module has been removed, but the module is not disabled from the system, as it is used by other system programs. After rebooting, the module will be disabled and removed.")
#define MODULE_INSTALL_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to install kernel")," ",target,"?",NULL)
#define PACKAGE_INSTALL_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to install package")," ",target,"?",NULL)
#define MODULE_REMOVE_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to remove module")," ",target,"?",NULL)
#define PACKAGE_REMOVE_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to remove package")," ",target,"?",NULL)
#define LAUNCH_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to launch")," ",target," ",_("for boot?\n\nChanges will be applied after system restart"),NULL)
#define KERNEL_MODULE_INSTALL_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to install kernel module")," ",target,"?",NULL)
#define KERNEL_PACKAGE_INSTALL_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to install kernel package")," ",target,"?",NULL)
#define KERNEL_MODULE_UPDATE_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to update kernel module")," ",target,"?",NULL)
#define KERNEL_PACKAGE_UPDATE_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to update kernel package")," ",target,"?",NULL)
#define KERNEL_MODULE_REMOVE_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to remove kernel module")," ",target,"?",NULL)
#define KERNEL_REMOVE_LAST_CONFIRMATION_LABEL(target) yon_char_unite(_("The kernel is the only one in the system. If you remove it, it will become impossible to boot. Do you really want to remove")," ",target,"?",NULL)
#define KERNEL_PACKAGE_REMOVE_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to remove kernel package")," ",target,"?",NULL)
#define ADDITION_MODULE_INSTALL_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to install kernel addition package")," ",target,"?",NULL)
#define ADDITION_PACKAGE_INSTALL_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to install kernel addition package")," ",target,"?",NULL)
#define ADDITION_MODULE_UPDATE_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to update kernel addition module")," ",target,"?",NULL)
#define ADDITION_PACKAGE_UPDATE_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to update kernel addition package")," ",target,"?",NULL)
#define ADDITION_MODULE_REMOVE_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to remove kernel addition module")," ",target,"?",NULL)
#define ADDITION_PACKAGE_REMOVE_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to remove kernel addition package")," ",target,"?",NULL)
#define LAUNCH_CONFIRMATION_LABEL(target) yon_char_unite(_("Are you sure want to launch")," ",target," ",_("for boot?\n\nChanges will be applied after system restart"),NULL)
#define UPDATE_MODULE_LABEL _("Update module")
#define UPDATE_PACKAGE_LABEL _("Update package")

@ -98,7 +98,7 @@
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">True</property>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
@ -138,7 +138,7 @@
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">True</property>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
@ -210,6 +210,7 @@
<object class="GtkButton" id="ModuleUpdateButton">
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Update module</property>
<property name="margin-bottom">5</property>
<property name="image">image1</property>
<style>
@ -273,6 +274,7 @@
<object class="GtkButton" id="PackageUpdateButton">
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Update package</property>
<property name="margin-bottom">5</property>
<property name="image">image2</property>
<style>

@ -92,12 +92,13 @@
<child>
<object class="GtkLabel" id="ModuleLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="can-focus">True</property>
<property name="label" translatable="yes">Module</property>
<property name="track-visited-links">False</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">True</property>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
@ -136,7 +137,7 @@
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">True</property>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
@ -245,6 +246,7 @@
<object class="GtkButton" id="ModuleUpdateButton">
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Update module</property>
<property name="margin-bottom">5</property>
<property name="image">image1</property>
<style>
@ -308,6 +310,7 @@
<object class="GtkButton" id="PackageUpdateButton">
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Update package</property>
<property name="margin-bottom">5</property>
<property name="image">image2</property>
<style>

@ -260,4 +260,19 @@ background:transparent;
.install_icon {
color:#073763;
}
.label_link {
color:@theme_selected_bg_color;
text-decoration: underline;
}
.label_link:hover {
color:@theme_selected_bg_color;
}
.label_link:active {
color:@theme_selected_fg_color;
background:@theme_selected_bg_color;
}

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.40.0 -->
<!-- Generated with glade 3.38.2 -->
<interface domain="ubl-settings-kernel">
<requires lib="gtk+" version="3.24"/>
<requires lib="vte-2.91" version="0.76"/>
@ -112,11 +112,6 @@
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.sync-symbolic</property>
</object>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.important-symbolic</property>
</object>
<object class="GtkImage" id="image4">
<property name="visible">True</property>
<property name="can-focus">False</property>
@ -157,16 +152,9 @@
</packing>
</child>
<child>
<object class="GtkButton" id="InfoButton">
<object class="GtkSeparator">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Open package information</property>
<property name="image">image2</property>
<style>
<class name="thin"/>
</style>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">False</property>

@ -214,28 +214,70 @@ msgid ""
msgstr ""
#: source/ubl-strings.h:64
msgid "Are you sure want to install kernel"
msgid "Are you sure want to install kernel module"
msgstr ""
#: source/ubl-strings.h:65
msgid "Are you sure want to install package"
msgid "Are you sure want to install kernel package"
msgstr ""
#: source/ubl-strings.h:66
msgid "Are you sure want to remove module"
msgid "Are you sure want to update kernel module"
msgstr ""
#: source/ubl-strings.h:67
msgid "Are you sure want to remove package"
msgid "Are you sure want to update kernel package"
msgstr ""
#: source/ubl-strings.h:68
msgid "Are you sure want to remove kernel module"
msgstr ""
#: source/ubl-strings.h:69
msgid ""
"The kernel is the only one in the system. If you remove it, it will become "
"impossible to boot. Do you really want to remove"
msgstr ""
#: source/ubl-strings.h:70
msgid "Are you sure want to remove kernel package"
msgstr ""
#: source/ubl-strings.h:71 source/ubl-strings.h:72
msgid "Are you sure want to install kernel addition package"
msgstr ""
#: source/ubl-strings.h:73
msgid "Are you sure want to update kernel addition module"
msgstr ""
#: source/ubl-strings.h:74
msgid "Are you sure want to update kernel addition package"
msgstr ""
#: source/ubl-strings.h:75
msgid "Are you sure want to remove kernel addition module"
msgstr ""
#: source/ubl-strings.h:76
msgid "Are you sure want to remove kernel addition package"
msgstr ""
#: source/ubl-strings.h:77
msgid "Are you sure want to launch"
msgstr ""
#: source/ubl-strings.h:68
#: source/ubl-strings.h:77
msgid ""
"for boot?\n"
"\n"
"Changes will be applied after system restart"
msgstr ""
#: source/ubl-strings.h:79
msgid "Update module"
msgstr ""
#: source/ubl-strings.h:80
msgid "Update package"
msgstr ""

@ -218,26 +218,60 @@ msgstr ""
"отключен и удалён."
#: source/ubl-strings.h:64
msgid "Are you sure want to install kernel"
msgid "Are you sure want to install kernel module"
msgstr "Вы хотите установить в систему ядро"
#: source/ubl-strings.h:65
msgid "Are you sure want to install package"
msgid "Are you sure want to install kernel package"
msgstr "Вы хотите установить в систему пакет с ядром"
#: source/ubl-strings.h:66
msgid "Are you sure want to remove module"
msgstr "Вы действительно хотите удалить из системы пакет с модулем ядра"
msgid "Are you sure want to update kernel module"
msgstr "Вы хотите обновить пакет с модулем ядра"
#: source/ubl-strings.h:67
msgid "Are you sure want to remove package"
msgstr "Вы действительно хотите удалить из системы пакет с ядром"
msgid "Are you sure want to update kernel package"
msgstr "Вы действительно хотите обновить пакет с ядром "
#: source/ubl-strings.h:68
msgid "Are you sure want to remove kernel module"
msgstr "Вы действительно хотите удалить из системы пакет с модулем ядра"
#: source/ubl-strings.h:69
msgid ""
"The kernel is the only one in the system. If you remove it, it will become "
"impossible to boot. Do you really want to remove"
msgstr "Ядро является единственным в системе. При удалении загрузка станет невозможна. Вы действительно хотите удалить"
#: source/ubl-strings.h:70
msgid "Are you sure want to remove kernel package"
msgstr "Вы действительно хотите удалить из системы пакет с ядром"
#: source/ubl-strings.h:71 source/ubl-strings.h:72
msgid "Are you sure want to install kernel addition package"
msgstr "Вы хотите установить в систему пакет с модулем дополнения"
#: source/ubl-strings.h:73
msgid "Are you sure want to update kernel addition module"
msgstr "Вы хотите обновить пакет с модулем дополнения"
#: source/ubl-strings.h:74
msgid "Are you sure want to update kernel addition package"
msgstr "Вы действительно хотите обновить пакет с дополнением"
#: source/ubl-strings.h:75
msgid "Are you sure want to remove kernel addition module"
msgstr "Вы действительно хотите удалить из системы пакет с модулем дополнения"
#: source/ubl-strings.h:76
msgid "Are you sure want to remove kernel addition package"
msgstr "Вы действительно хотите удалить из системы пакет с дополнением"
#: source/ubl-strings.h:77
msgid "Are you sure want to launch"
msgstr "Выбрать ядро"
#: source/ubl-strings.h:68
#: source/ubl-strings.h:77
msgid ""
"for boot?\n"
"\n"
@ -246,3 +280,11 @@ msgstr ""
"загрузочным?\n"
"\n"
"Изменения вступят в силу после перезагрузки."
#: source/ubl-strings.h:79
msgid "Update module"
msgstr "Обновить модуль"
#: source/ubl-strings.h:80
msgid "Update package"
msgstr "Обновить пакет"

Loading…
Cancel
Save