diff --git a/gresource.xml b/gresource.xml
index eaee9ad..4c2b01f 100644
--- a/gresource.xml
+++ b/gresource.xml
@@ -22,6 +22,7 @@
ubinstall-gtk-layouts.glade
ubinstall-gtk-keyboard-layouts.glade
ubinstall-gtk-slider.glade
+ ubinstall-gtk-package-info.glade
ubinstall-gtk.css
diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
index d4ce9e5..0c2e995 100644
--- a/source/CMakeLists.txt
+++ b/source/CMakeLists.txt
@@ -62,6 +62,7 @@ set(DEPENDFILES
../ubinstall-gtk-layouts.glade
../ubinstall-gtk-keyboard-layouts.glade
../ubinstall-gtk-slider.glade
+ ../ubinstall-gtk-package-info.glade
../gresource.xml
../ubinstall-gtk.css
../modules.csv
diff --git a/source/ubinstall-gtk-kernel.c b/source/ubinstall-gtk-kernel.c
index 3b4dd71..7cefc09 100644
--- a/source/ubinstall-gtk-kernel.c
+++ b/source/ubinstall-gtk-kernel.c
@@ -240,13 +240,41 @@ void on_kernel_addon_install_enabled(GtkWidget *, kernel_addon_row *row){
}
}
+void yon_gtk_label_set_font(GtkLabel *label);
+void yon_gtk_label_set_font(GtkLabel *label){
+ g_return_if_fail(GTK_IS_LABEL(label));
+ PangoAttrList *attributes = pango_attr_list_new();
+ PangoFontDescription *font_descr = pango_font_description_new();
+ pango_font_description_set_family(font_descr,"Source Code Pro 10");
+ PangoAttribute *font_attr = pango_attr_font_desc_new(font_descr);
+ pango_attr_list_insert(attributes,font_attr);
+ gtk_label_set_attributes(GTK_LABEL(label),attributes);
+}
+
+typedef struct {
+ GtkWidget *MainBox;
+ GtkWidget *InfoTree;
+ GtkListStore *InfoList;
+} info_element;
+
+info_element *yon_package_info_element_new();
+info_element *yon_package_info_element_new(){
+ info_element *element = malloc(sizeof(info_element));
+ memset(element,0,sizeof(info_element));
+ GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_package_info);
+ element->MainBox = yon_gtk_builder_get_widget(builder,"MainBox");
+ element->InfoTree = yon_gtk_builder_get_widget(builder,"InfoTree");
+ element->InfoList = GTK_LIST_STORE(gtk_builder_get_object(builder,"InfoList"));
+
+ return element;
+}
void on_kernel_addon_info(GtkLabel *self){
yon_window *window = yon_window_new();
yon_gtk_window_setup(GTK_WINDOW(window->Window),NULL,PACKAGE_INFO_LABEL,icon_path,"info-label");
char *package=NULL;
package = yon_char_new(gtk_label_get_text(self));
- // int size;
+ int size;
if (strstr(package,",")){
@@ -256,35 +284,44 @@ void on_kernel_addon_info(GtkLabel *self){
}
GtkWidget *label = NULL;
- {
- yon_packages_info *info = yon_packages_get_info_struct(YON_PACKAGES_ALL,package);
- char *info_string = yon_packages_get_info_string(info);
+ // {
+ // yon_packages_info *info = yon_packages_get_info_struct(YON_PACKAGES_ALL,package);
+ // char *info_string = yon_packages_get_info_string(info);
- if (!yon_char_is_empty(info_string)){
- label = gtk_label_new(NULL);
- char *temp = yon_char_replace(info_string,"@","");
- gtk_label_set_markup(GTK_LABEL(label),temp);
- gtk_widget_show(label);
- gtk_box_pack_start(GTK_BOX(window->MainBox),label,0,0,0);
- } else {
- label = gtk_label_new(PACKAGE_NOT_FOUND_LABEL);
- gtk_widget_show(label);
- gtk_box_pack_start(GTK_BOX(window->MainBox),label,0,0,0);
- }
- }
- // 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,"");
- // label = gtk_label_new(final_text);
- // gtk_widget_show(label);
- // gtk_box_pack_start(GTK_BOX(window->MainBox),label,0,0,0);
- // free(final_text);
- // } else {
- // label = gtk_label_new(PACKAGE_NOT_FOUND_LABEL);
- // gtk_widget_show(label);
- // gtk_box_pack_start(GTK_BOX(window->MainBox),label,0,0,0);
+ // if (!yon_char_is_empty(info_string)){
+ // label = gtk_label_new(NULL);
+ // yon_gtk_label_set_font(GTK_LABEL(label));
+ // char *temp = info_string;
+ // gtk_label_set_markup(GTK_LABEL(label),temp);
+ // gtk_widget_show(label);
+ // gtk_box_pack_start(GTK_BOX(window->MainBox),label,0,0,0);
+ // } else {
+ // label = gtk_label_new(PACKAGE_NOT_FOUND_LABEL);
+ // yon_gtk_label_set_font(GTK_LABEL(label));
+ // gtk_widget_show(label);
+ // gtk_box_pack_start(GTK_BOX(window->MainBox),label,0,0,0);
+ // }
// }
+ config_str info = yon_config_load(get_package_info_command(package),&size);
+ if (size!=-1){
+ info_element *element = yon_package_info_element_new();
+ gtk_box_pack_start(GTK_BOX(window->MainBox),element->MainBox,1,1,0);
+ for (int i=0;iInfoList,&iter);
+ gtk_list_store_set(element->InfoList,&iter,0,parsed[0],1,parsed[1],-1);
+
+ }
+ } else {
+ label = gtk_label_new(PACKAGE_NOT_FOUND_LABEL);
+ yon_gtk_label_set_font(GTK_LABEL(label));
+ gtk_widget_show(label);
+ gtk_box_pack_start(GTK_BOX(window->MainBox),label,0,0,0);
gtk_label_set_xalign(GTK_LABEL(label),0);
+ }
gtk_widget_show(window->Window);
}
diff --git a/source/ubinstall-gtk.h b/source/ubinstall-gtk.h
index bc8a49a..a8be308 100755
--- a/source/ubinstall-gtk.h
+++ b/source/ubinstall-gtk.h
@@ -39,6 +39,7 @@
#define glade_locales_path "/com/ublinux/ui/ubinstall-gtk-layouts.glade"
#define glade_layouts_path "/com/ublinux/ui/ubinstall-gtk-keyboard-layouts.glade"
#define glade_path_slider "/com/ublinux/ui/ubinstall-gtk-slider.glade"
+#define glade_path_package_info "/com/ublinux/ui/ubinstall-gtk-package-info.glade"
#define CssPath "/com/ublinux/css/ubinstall-gtk.css"
#define config_path yon_char_unite(yon_ubl_user_get_home_directory(), "/.config/", LocaleName, "/", LocaleName, ".conf", NULL)
@@ -298,7 +299,7 @@ layout && /description:/ {\
#define languages_command "while IFS= read -ru3 SELECT_LOCALE; do SELECT_LOCALE=\"${SELECT_LOCALE% *}\"; [[ $(< /usr/share/i18n/locales/${SELECT_LOCALE%.*}) =~ (\"language\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"territory\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"country_name\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"lang_name\"[[:blank:]]*\\\"([^\\\"]*)\\\")|(\"language\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"territory\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"lang_name\"[[:blank:]]*\\\"([^\\\"]*)\\\")|(\"language\"[[:blank:]]*\\\"([^\\\"]*)\\\".*\"territory\"[[:blank:]]*\\\"([^\\\"]*)\\\") ]] && echo \"${SELECT_LOCALE}|${BASH_REMATCH[2]}${BASH_REMATCH[7]}${BASH_REMATCH[11]}${BASH_REMATCH[5]:+ (${BASH_REMATCH[5]})}${BASH_REMATCH[9]:+ (${BASH_REMATCH[9]})}|${BASH_REMATCH[3]}${BASH_REMATCH[8]}${BASH_REMATCH[12]}${BASH_REMATCH[4]:+ (${BASH_REMATCH[4]})}\" || echo \"${SELECT_LOCALE}\"; done 3< \"/usr/share/i18n/SUPPORTED\""
-#define get_package_info_command(target) yon_char_append("pacman -Si ", target)
+#define get_package_info_command(target) yon_char_unite("pacman -Si ", target,"| sed 's/ */ /g'",NULL)
#define layouts_command "sed -En '/^! layout$/,/^ *$/!d;s/[[:blank:]]+([^ ]+)[[:blank:]]+(.*)/\\1|\\2/p' /usr/share/X11/xkb/rules/evdev.lst"
#define layouts_variant_command "sed -En '/^! variant$/,/^ *$/!d;s/[[:blank:]]+([^ ]+)[[:blank:]]+([^ :]+):[[:blank:]]+(.*)/\\2|\\1|\\3/p' /usr/share/X11/xkb/rules/evdev.lst"
diff --git a/ubinstall-gtk-package-info.glade b/ubinstall-gtk-package-info.glade
new file mode 100644
index 0000000..4d537d2
--- /dev/null
+++ b/ubinstall-gtk-package-info.glade
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+