From b68b197d6cec0918157d53830ef098df1a67430f Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 25 Nov 2024 15:49:34 +0600 Subject: [PATCH 1/8] Test fix for terminal endwork interface update --- source/ubl-settings-kernel.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ubl-settings-kernel.c b/source/ubl-settings-kernel.c index 1dae467..2d616e3 100644 --- a/source/ubl-settings-kernel.c +++ b/source/ubl-settings-kernel.c @@ -233,14 +233,14 @@ void *yon_tab_set_installed(kernels_tab *tab){ void *yon_interface_update(main_window *widgets){ yon_ubl_status_box_render(LOADING_LABEL,BACKGROUND_IMAGE_INFO_TYPE); - if (!main_config.kernel_tabs){ + if (main_config.kernel_tabs){ GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->KernelsPackageBox)); for (guint i=0;iAdditionsPackageBox)); for (guint i=0;i Date: Tue, 26 Nov 2024 16:14:43 +0600 Subject: [PATCH 2/8] Localisation fixes; Information button replaced with clickable labels; Fixes --- source/ubl-settings-kernel.c | 193 +++++++++--------- source/ubl-settings-kernel.h | 7 +- source/ubl-strings.h | 16 +- ubl-settings-kernel-additions-table-row.glade | 4 +- ubl-settings-kernel-table-row.glade | 7 +- ubl-settings-kernel.css | 15 ++ ubl-settings-kernel.glade | 24 +-- ubl-settings-kernel.pot | 38 +++- ubl-settings-kernel_ru.po | 42 +++- 9 files changed, 204 insertions(+), 142 deletions(-) diff --git a/source/ubl-settings-kernel.c b/source/ubl-settings-kernel.c index 2d616e3..71e3fd3 100644 --- a/source/ubl-settings-kernel.c +++ b/source/ubl-settings-kernel.c @@ -166,14 +166,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); } } } @@ -232,53 +228,70 @@ void *yon_tab_set_installed(kernels_tab *tab){ } 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;iKernelsPackageBox)); + if (g_list_length(list)>0){ + for (guint i=0;iAdditionsPackageBox)); - for (guint i=0;iAdditionsPackageBox)); + if (g_list_length(list)>0){ + for (guint i=0;iKernelsPackageBox),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;iKernelsPackageBox),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;imain_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;iAdditionsPackageBox),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;iAdditionsPackageBox),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); + + g_mutex_lock(&main_config.update_mutex); + main_config.update_active=0; + g_mutex_unlock(&main_config.update_mutex); } - textdomain(LocaleName); return NULL; } @@ -477,7 +490,7 @@ 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 = 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 +517,7 @@ 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); + 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 +532,7 @@ 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 = 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 +559,7 @@ 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); + 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){ @@ -570,7 +583,7 @@ 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*); dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data)); - data->action_text = MODULE_REMOVE_CONFIRMATION_LABEL(tab->name); + data->action_text = KERNEL_MODULE_REMOVE_CONFIRMATION_LABEL(tab->name); data->function = NULL; data->data = NULL; if (yon_confirmation_dialog_call(self,data) == GTK_RESPONSE_ACCEPT){ @@ -589,7 +602,7 @@ 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*); dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data)); - data->action_text = PACKAGE_REMOVE_CONFIRMATION_LABEL(tab->name); + data->action_text = KERNEL_PACKAGE_REMOVE_CONFIRMATION_LABEL(tab->name); data->function = NULL; data->data = NULL; int resp = yon_confirmation_dialog_call(self,data); @@ -657,7 +670,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 +687,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("",tab->name,"",NULL); - char *module = yon_char_unite("",MODULE_LABEL," ",tab->module,"",NULL); - char *package = yon_char_unite("",PACKAGE_LABEL," ",tab->package,"",NULL); + char *module = yon_char_unite("",MODULE_LABEL," ",tab->module,"",NULL); + char *package = yon_char_unite("",PACKAGE_LABEL," ",tab->package,"",NULL); yon_dictionary_add_or_create_if_exists_with_data(main_config.kernel_tabs,tab->package,tab); @@ -759,14 +775,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("",tab->name,"",NULL); - char *module = yon_char_unite("",MODULE_LABEL," ",tab->module,"",NULL); - char *package = yon_char_unite("",PACKAGE_LABEL," ",tab->package,"",NULL); + char *module = yon_char_unite("",MODULE_LABEL," ",tab->module,"",NULL); + char *package = yon_char_unite("",PACKAGE_LABEL," ",tab->package,"",NULL); yon_dictionary_add_or_create_if_exists_with_data(main_config.addition_tabs,tab->package,tab); @@ -804,7 +823,9 @@ 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){ @@ -816,46 +837,31 @@ void on_update_clicked(GtkWidget *, main_window *widgets){ yon_interface_update(widgets); } -void on_selection_changed(GtkWidget *, GtkListBoxRow* row, main_window *widgets){ - if (row){ - gtk_widget_set_sensitive(widgets->InfoButton,1); +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),NULL,INFO_TITLE_LABEL,icon_path,"info_window"); + char *package=NULL; + if (self == tab->module_label){ + package = yon_char_new(tab->module); } else { - gtk_widget_set_sensitive(widgets->InfoButton,0); + package = yon_char_new(tab->package); } -} + int size; -void on_info_clicked(GtkWidget *, main_window *widgets){ - 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; - } else { - current_tree = widgets->AdditionsPackageBox; + if (strstr(package,",")){ + + char *temp = yon_char_replace(package,","," "); + free(package); + package = temp; } - 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); - } + + 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 +978,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 +1003,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); diff --git a/source/ubl-settings-kernel.h b/source/ubl-settings-kernel.h index c55fec5..53a111d 100644 --- a/source/ubl-settings-kernel.h +++ b/source/ubl-settings-kernel.h @@ -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); diff --git a/source/ubl-strings.h b/source/ubl-strings.h index 10680ae..1749138 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -61,8 +61,16 @@ #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 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_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) \ No newline at end of file diff --git a/ubl-settings-kernel-additions-table-row.glade b/ubl-settings-kernel-additions-table-row.glade index bff6294..f38075f 100644 --- a/ubl-settings-kernel-additions-table-row.glade +++ b/ubl-settings-kernel-additions-table-row.glade @@ -98,7 +98,7 @@ 0 - True + False True 1 @@ -138,7 +138,7 @@ 0 - True + False True 1 diff --git a/ubl-settings-kernel-table-row.glade b/ubl-settings-kernel-table-row.glade index cb13bd0..e1c255e 100644 --- a/ubl-settings-kernel-table-row.glade +++ b/ubl-settings-kernel-table-row.glade @@ -92,12 +92,13 @@ True - False + True Module + False 0 - True + False True 1 @@ -136,7 +137,7 @@ 0 - True + False True 1 diff --git a/ubl-settings-kernel.css b/ubl-settings-kernel.css index 641275f..ef67a0e 100644 --- a/ubl-settings-kernel.css +++ b/ubl-settings-kernel.css @@ -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; + + } \ No newline at end of file diff --git a/ubl-settings-kernel.glade b/ubl-settings-kernel.glade index 7828ee0..f90024f 100644 --- a/ubl-settings-kernel.glade +++ b/ubl-settings-kernel.glade @@ -1,5 +1,5 @@ - + @@ -112,11 +112,6 @@ False com.ublinux.libublsettingsui-gtk3.sync-symbolic - - True - False - com.ublinux.libublsettingsui-gtk3.important-symbolic - True False @@ -157,22 +152,7 @@ - - True - False - True - True - Open package information - image2 - - - - False - True - 1 - + diff --git a/ubl-settings-kernel.pot b/ubl-settings-kernel.pot index 9e759ff..e3a25c3 100644 --- a/ubl-settings-kernel.pot +++ b/ubl-settings-kernel.pot @@ -214,26 +214,54 @@ 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 "Are you sure want to remove kernel package" +msgstr "" + +#: source/ubl-strings.h:70 source/ubl-strings.h:71 +msgid "Are you sure want to install kernel addition package" +msgstr "" + +#: source/ubl-strings.h:72 +msgid "Are you sure want to update kernel addition module" +msgstr "" + +#: source/ubl-strings.h:73 +msgid "Are you sure want to update kernel addition package" +msgstr "" + +#: source/ubl-strings.h:74 +msgid "Are you sure want to remove kernel addition module" +msgstr "" + +#: source/ubl-strings.h:75 +msgid "Are you sure want to remove kernel addition package" +msgstr "" + +#: source/ubl-strings.h:76 msgid "Are you sure want to launch" msgstr "" -#: source/ubl-strings.h:68 +#: source/ubl-strings.h:76 msgid "" "for boot?\n" "\n" diff --git a/ubl-settings-kernel_ru.po b/ubl-settings-kernel_ru.po index 8e92a22..db36757 100644 --- a/ubl-settings-kernel_ru.po +++ b/ubl-settings-kernel_ru.po @@ -218,26 +218,54 @@ 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 "Are you sure want to remove kernel package" +msgstr "Вы действительно хотите удалить из системы пакет с ядром" + +#: source/ubl-strings.h:70 source/ubl-strings.h:71 +msgid "Are you sure want to install kernel addition package" +msgstr "Вы хотите установить в систему пакет с модулем дополнения" + +#: source/ubl-strings.h:72 +msgid "Are you sure want to update kernel addition module" +msgstr "Вы хотите обновить пакет с модулем дополнения" + +#: source/ubl-strings.h:73 +msgid "Are you sure want to update kernel addition package" +msgstr "Вы действительно хотите обновить пакет с дополнением" + +#: source/ubl-strings.h:74 +msgid "Are you sure want to remove kernel addition module" +msgstr "Вы действительно хотите удалить из системы пакет с модулем дополнения" + +#: source/ubl-strings.h:75 +msgid "Are you sure want to remove kernel addition package" +msgstr "Вы действительно хотите удалить из системы пакет с дополнением" + +#: source/ubl-strings.h:76 msgid "Are you sure want to launch" msgstr "Выбрать ядро" -#: source/ubl-strings.h:68 +#: source/ubl-strings.h:76 msgid "" "for boot?\n" "\n" -- 2.35.1 From c154fafda3a7659027dd3ee914978fe37db0822c Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 26 Nov 2024 17:14:24 +0600 Subject: [PATCH 3/8] If kernel has empty module or package space in csv, buttons for installing/uninstalling won't be shown. If both are empty, kernel will not be shown at all --- source/ubl-settings-kernel.c | 84 +++++++++++++++++++++++------------- 1 file changed, 54 insertions(+), 30 deletions(-) diff --git a/source/ubl-settings-kernel.c b/source/ubl-settings-kernel.c index 71e3fd3..2be8423 100644 --- a/source/ubl-settings-kernel.c +++ b/source/ubl-settings-kernel.c @@ -125,7 +125,8 @@ 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); @@ -133,23 +134,36 @@ gboolean yon_tab_create_tags(kernels_tab *tab){ gtk_widget_show(tab->update_module_button); gtk_widget_hide(tab->install_module_button); - } else { + } 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); + } 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 { + } 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); } } if (tab->package_installed||tab->module_installed){ @@ -198,31 +212,41 @@ char *yon_package_string_set(char *target){ void *yon_tab_set_installed(kernels_tab *tab){ 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; } -- 2.35.1 From 057650b9ab2c1237f4204d28e3b51f799540d6af Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 26 Nov 2024 17:59:23 +0600 Subject: [PATCH 4/8] Fixed showing empty module and package labels; Kernel lists changes --- kernel-list-addon.csv | 6 ++--- kernel-list.csv | 6 ++--- source/ubl-settings-kernel.c | 22 +++++++++---------- ubl-settings-kernel-additions-table-row.glade | 4 ++++ ubl-settings-kernel-table-row.glade | 4 ++++ ubl-settings-kernel.glade | 10 ++++++++- 6 files changed, 34 insertions(+), 18 deletions(-) diff --git a/kernel-list-addon.csv b/kernel-list-addon.csv index 7337cdf..ef9f6f4 100644 --- a/kernel-list-addon.csv +++ b/kernel-list-addon.csv @@ -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 \ No newline at end of file +Linux 6.6 DKMS modules;ubm-linux66-dkms;;The Linux kernel DKMS modules v6.6 : v4l2loopback, r8168-8136, rtl88x2bu, r8125, rtl8192eu \ No newline at end of file diff --git a/kernel-list.csv b/kernel-list.csv index eb5ba2f..06d5c91 100644 --- a/kernel-list.csv +++ b/kernel-list.csv @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/source/ubl-settings-kernel.c b/source/ubl-settings-kernel.c index 04b73ec..6e1bd07 100644 --- a/source/ubl-settings-kernel.c +++ b/source/ubl-settings-kernel.c @@ -130,21 +130,20 @@ gboolean yon_tab_create_tags(kernels_tab *tab){ 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); + gtk_widget_show(tab->remove_module_button); + gtk_widget_show(tab->update_module_button); + gtk_widget_hide(tab->install_module_button); } break; case 0:{ - gtk_widget_hide(tab->remove_module_button); - gtk_widget_hide(tab->update_module_button); - - gtk_widget_show(tab->install_module_button); + 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->remove_module_button); + gtk_widget_hide(tab->update_module_button); + gtk_widget_hide(tab->install_module_button); + gtk_widget_hide(tab->module_label); } break; } switch (tab->package_installed){ @@ -164,6 +163,7 @@ gboolean yon_tab_create_tags(kernels_tab *tab){ 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){ diff --git a/ubl-settings-kernel-additions-table-row.glade b/ubl-settings-kernel-additions-table-row.glade index f38075f..8a12943 100644 --- a/ubl-settings-kernel-additions-table-row.glade +++ b/ubl-settings-kernel-additions-table-row.glade @@ -79,6 +79,7 @@ True False + Module installed @@ -119,6 +120,7 @@ True False + Package installed @@ -210,6 +212,7 @@ True True + Update 5 image1 @@ -119,6 +120,7 @@ True False + Package installed @@ -246,6 +248,7 @@ True True + Update 5 image1 @@ -120,7 +119,6 @@ True False - Package installed @@ -212,7 +210,7 @@ True True - Update + Update module 5 image1 @@ -120,7 +119,6 @@ True False - Package installed @@ -248,7 +246,7 @@ True True - Update + Update module 5 image1