diff --git a/source/ubl-settings-kernel.c b/source/ubl-settings-kernel.c index 44443a3..5545402 100644 --- a/source/ubl-settings-kernel.c +++ b/source/ubl-settings-kernel.c @@ -92,7 +92,7 @@ GtkWidget *yon_tab_row_new(GtkListBox *target, char *target_string, main_window config_str types_parsed = yon_char_parse(parsed[3],&types_size,", "); for (int k=0;kwindow),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->KernelsTree; + current_tree = widgets->KernelsPackageBox; } else { - current_tree = widgets->AdditionsTree; + current_tree = widgets->AdditionsPackageBox; } - GtkTreeModel *model; - GtkTreeIter iter; - if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(current_tree)),&model,&iter)){ - char *target; - gtk_tree_model_get(model,&iter,4,&target,-1); + 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,1))); + char * target_str = yon_char_new((char*)gtk_label_get_text(GTK_LABEL(g_list_nth_data(list3,0)))); int size; - config_str ret = yon_config_load(yon_get_info_command(target),&size); - if (size){ - char *final_text = yon_char_parsed_to_string(ret,size,""); + char *parameter = yon_char_divide_search(target_str,"\n",-1); + free(parameter); + parameter = yon_char_replace(target_str,"\n",","); + int sz; + config_str parsed = yon_char_parse(parameter,&sz,","); + free(parameter); + parameter = yon_char_parsed_to_string(parsed,sz," "); + config_str info = yon_config_load(get_package_info_command(parameter),&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); - yon_char_parsed_free(ret,size); + yon_char_parsed_free(info,size); + } else { + gtk_label_set_text(GTK_LABEL(window->InfoLabel),PACKAGE_NOT_FOUND_LABEL); } } gtk_widget_show(window->window); } void on_changelog_clicked(GtkWidget *, main_window *widgets){ - if (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,"changelog_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; + } + 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,1))); + char * target_str = yon_char_new((char*)gtk_label_get_text(GTK_LABEL(g_list_nth_data(list3,0)))); + int size; + char *parameter = yon_char_divide_search(target_str,"\n",-1); + free(parameter); + parameter = yon_char_replace(target_str,"\n",","); + int sz; + config_str parsed = yon_char_parse(parameter,&sz,","); + config_str info = yon_config_load(yon_debug_output("%s\n",get_kernel_changelog_command(parsed[0])),&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); + yon_char_parsed_free(info,size); + } else { + gtk_label_set_text(GTK_LABEL(window->InfoLabel),PACKAGE_NOT_FOUND_LABEL); + } + } gtk_widget_show(window->window); } @@ -246,9 +283,9 @@ void yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->InfoButton),"clicked",G_CALLBACK(on_info_clicked),widgets); g_signal_connect(G_OBJECT(widgets->LogButton),"clicked",G_CALLBACK(on_changelog_clicked),widgets); g_signal_connect(G_OBJECT(widgets->BuildingButton),"clicked",G_CALLBACK(on_building_clicked),widgets); - g_signal_connect(G_OBJECT(widgets->BuildingButton),"clicked",G_CALLBACK(on_install_module_toggled),widgets); - g_signal_connect(G_OBJECT(widgets->BuildingButton),"clicked",G_CALLBACK(on_install_package_toggled),widgets); - g_signal_connect(G_OBJECT(widgets->BuildingButton),"clicked",G_CALLBACK(on_boot_toggled),widgets); + // g_signal_connect(G_OBJECT(widgets->BuildingButton),"clicked",G_CALLBACK(on_install_module_toggled),widgets); + // g_signal_connect(G_OBJECT(widgets->BuildingButton),"clicked",G_CALLBACK(on_install_package_toggled),widgets); + // g_signal_connect(G_OBJECT(widgets->BuildingButton),"clicked",G_CALLBACK(on_boot_toggled),widgets); GtkWidget *radio_group=NULL; int kernels_size; @@ -256,9 +293,12 @@ void yon_main_window_complete(main_window *widgets){ for (int i=1;iKernelsPackageBox),kernels[i],widgets); GList *list = gtk_container_get_children(GTK_CONTAINER(current)); - GtkWidget *radio = GTK_WIDGET(g_list_nth_data(list,5)); + GList *list2 = gtk_container_get_children(GTK_CONTAINER(g_list_nth_data(list,5))); + GtkWidget *radio = GTK_WIDGET(g_list_nth_data(list2,0)); if (radio_group) gtk_radio_button_join_group(GTK_RADIO_BUTTON(radio),GTK_RADIO_BUTTON(radio_group)); radio_group = radio; + g_list_free(list); + g_list_free(list2); } } } diff --git a/source/ubl-settings-kernel.h b/source/ubl-settings-kernel.h index d3822b7..c7125ad 100644 --- a/source/ubl-settings-kernel.h +++ b/source/ubl-settings-kernel.h @@ -35,6 +35,9 @@ #define icon_path "com.ublinux.ubl-settings-kernel" +#define get_kernel_changelog_command(target) yon_char_unite("find /usr/lib/modules/ -maxdepth 2 -type f -iname \"pkgbase\" -exec grep -il \"",target,"\" {} + | xargs dirname | xargs -I {} cat \"{}/changelog\"", NULL) +#define get_package_info_command(target) yon_char_append("pacman -Q --info ",target) + #define yon_config_get_custom_command(target) yon_char_unite("ubconfig --source ",target," get system PARAMETERS",NULL) #define config_get_local_command "ubconfig --source system get system PARAMETERS" #define config_get_global_command "ubconfig --source global get system PARAMETERS" @@ -43,8 +46,6 @@ #define config_get_global_only_parameters "" #define config_get_local_only_parameters "" -#define yon_get_info_command(target) yon_char_append("pacman ",target) - typedef char* string; string version_application; diff --git a/source/ubl-strings.h b/source/ubl-strings.h index 3547b2e..a54523f 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -3,3 +3,6 @@ #define TITLE_INFO_LABEL _("kernel configuration") #define INFO_TITLE_LABEL _("Information") + +#define PACKAGE_NOT_FOUND_LABEL _("Packages were not found") +#define CHANGELOG_NOT_FOUND_LABEL _("Changelog was not found") \ No newline at end of file diff --git a/ubl-settings-kernel-info.glade b/ubl-settings-kernel-info.glade index 952306d..716fa82 100644 --- a/ubl-settings-kernel-info.glade +++ b/ubl-settings-kernel-info.glade @@ -18,33 +18,30 @@ 5 vertical - + True - False - 0 + True in - + True False - 5 - 5 - 5 - 5 + 5 + 5 + 5 + 4 True False label + True 0 0 - - - True diff --git a/ubl-settings-kernel-table-row.glade b/ubl-settings-kernel-table-row.glade index c6a162f..cf6621e 100644 --- a/ubl-settings-kernel-table-row.glade +++ b/ubl-settings-kernel-table-row.glade @@ -6,144 +6,172 @@ True False + vertical + 5 - + True False - 5 + 15 - + + True + False + + + True + False + + + True + False + + + True + True + 0 + + + + + False + True + 1 + - - - - True - True - 0 - - - - - True - False - True - False - - - - True - True - 1 - - - - - True - False - vertical - + + True + False + vertical + + + + + + False + True + 2 + - - - - True - True - 2 - - - - - True - True - False - True - + + True + False + vertical + + + + + + False + True + 3 + + + + + True + False + center + vertical + 5 + + + True + True + False + True + + + True + False + Install + + + + + False + True + 0 + + + + + True + False + True + + + True + False + Remove + + + + + False + True + 1 + + + + + Changelog + True + True + True + + + False + True + 2 + + + + + False + True + end + 6 + - - True + False True - 3 + 0 - + True - True - False - True + False + 5 + + + Expand + True + True + True + + + False + True + 0 + + - - - - True - True - 4 - - - - - True - True - False - True - True - - True + False True - 5 - - - - - True - False - label - True - True - - - - True - True - 6 + 1 diff --git a/ubl-settings-kernel.glade b/ubl-settings-kernel.glade index 4ef5717..5451c58 100644 --- a/ubl-settings-kernel.glade +++ b/ubl-settings-kernel.glade @@ -16,29 +16,6 @@ - - - feasf - feasfge - False - False - - - - - grdtbrftgbh - False - False - - - - - - False - False - - - @@ -119,6 +96,7 @@ True True True + Open package information image2