diff --git a/source/ubl-settings-video.c b/source/ubl-settings-video.c index 257d197..5fbd446 100644 --- a/source/ubl-settings-video.c +++ b/source/ubl-settings-video.c @@ -1562,6 +1562,52 @@ void yon_adapter_window_setup(widgets_dict *widgets){ else { gtk_widget_destroy(widgets->InformationCompanyLogoImage); } + if (size>5){ + gtk_overlay_add_overlay(GTK_OVERLAY(widgets->InformationOverlay2),widgets->InformationCompanyLogoImage2); + yon_char_parsed_rip(rtn,&size,0); + yon_char_parsed_rip(rtn,&size,1); + yon_char_parsed_rip(rtn,&size,2); + yon_char_parsed_rip(rtn,&size,3); + yon_char_parsed_rip(rtn,&size,4); + char *desc = yon_config_get_parameter(rtn,size,"description"); + yon_char_divide_search(desc,"=",-1); + char *product = yon_config_get_parameter(rtn,size,"product"); + yon_char_divide_search(product,"=",-1); + char *vendor = yon_config_get_parameter(rtn,size,"vendor"); + yon_char_divide_search(vendor,"=",-1); + char *driver_use = yon_config_get_parameter(rtn,size,"Kernel-driver-in-use"); + yon_char_divide_search(driver_use,"=",-1); + char *driver_all = yon_config_get_parameter(rtn,size,"Kernel-modules"); + yon_char_divide_search(driver_all,"=",-1); + char *final_text = yon_char_unite("",DESCRIPTION_LABEL,": ",_(desc), + "\n",VENDOR_LABEL,": ",vendor, + "\n",MODEL_LABEL,": ",product, + "\n",USED_KERNEL_DRIVER_LABEL,": ",driver_use, + "\n",AVALIABLE_KERNEL_DRIVERS_LABEL,": ",driver_all,"",NULL); + gtk_label_set_markup(GTK_LABEL(gtk_builder_get_object(widgets->builder,"InformationLabel2")),final_text); + if (strstr(vendor,"Intel")){ + GtkIconTheme *icthm=gtk_icon_theme_get_default(); + gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage2),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.intel-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL)); + } + else if (strstr(vendor,"NVIDIA")){ + GtkIconTheme *icthm=gtk_icon_theme_get_default(); + gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage2),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.nvidia-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL)); + } + else if (strstr(vendor,"AMD")){ + GtkIconTheme *icthm=gtk_icon_theme_get_default(); + gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage2),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.amd-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL)); + } + else if (strstr(vendor,"VMware")){ + GtkIconTheme *icthm=gtk_icon_theme_get_default(); + gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->InformationCompanyLogoImage2),gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, "com.ublinux.ubl-settings-video.vmware-logo",64,1,GTK_ICON_LOOKUP_FORCE_SVG),NULL)); + } + else { + gtk_widget_destroy(widgets->InformationCompanyLogoImage2); + } + } else { + gtk_widget_hide(widgets->InformationOverlay2); + gtk_widget_hide(GTK_WIDGET(gtk_builder_get_object(widgets->builder,"InformationLabel2"))); + } } /** void yon_setup_widgets(widgets_dict *widgets) @@ -1671,6 +1717,8 @@ void yon_setup_widgets(widgets_dict *widgets) widgets->InformationFrameLabel = GTK_WIDGET(gtk_builder_get_object(widgets->builder, "InformationFrameLabel")); widgets->InformationOverlay = GTK_WIDGET(gtk_builder_get_object(widgets->builder, "InformationOverlay")); widgets->InformationCompanyLogoImage = GTK_WIDGET(gtk_builder_get_object(widgets->builder, "InformationCompanyLogoImage")); + widgets->InformationOverlay2 = GTK_WIDGET(gtk_builder_get_object(widgets->builder, "InformationOverlay2")); + widgets->InformationCompanyLogoImage2 = GTK_WIDGET(gtk_builder_get_object(widgets->builder, "InformationCompanyLogoImage2")); widgets->driverInstalledColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder, "driverInstalledColumn")); widgets->driverPackageColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder, "driverPackageColumn")); diff --git a/source/ubl-settings-video.h b/source/ubl-settings-video.h index 9a629d3..8a1dd84 100644 --- a/source/ubl-settings-video.h +++ b/source/ubl-settings-video.h @@ -277,6 +277,8 @@ typedef struct GtkWidget *InformationFrameLabel; GtkWidget *InformationOverlay; GtkWidget *InformationCompanyLogoImage; + GtkWidget *InformationOverlay2; + GtkWidget *InformationCompanyLogoImage2; GtkWidget *TerminalOverlay; GtkWidget *TerminalBox; diff --git a/source/ubl-utils.c b/source/ubl-utils.c index e01d9a4..1a1d565 100644 --- a/source/ubl-utils.c +++ b/source/ubl-utils.c @@ -684,22 +684,24 @@ char **yon_char_parse(char *parameters, int *size, char *divider){ * Возвращает получившийся массив, в [size] загружается размер нового массива. */ char **yon_char_parsed_rip(char **char_string, int *size, int item_to_delete){ - char **new_char_parsed=NULL; - new_char_parsed=malloc(sizeof(char*)*((*size)-1)); - int flag = 0; - for (int i=0;i < (*size);i++){ - if (i==item_to_delete) { - flag = 1; - } - if (flag == 0) { - new_char_parsed[i]=yon_char_new(char_string[i]); - } - else if (flag == 1 && i!=item_to_delete) { - new_char_parsed[i-1]=yon_char_new(char_string[i]); + if (char_string&&(*size)>0&&(*size)>item_to_delete&&item_to_delete>=0){ + char **new_char_parsed=NULL; + new_char_parsed=malloc(sizeof(char*)*((*size)-1)); + int flag = 0; + for (int i=0;i < (*size);i++){ + if (i==item_to_delete) { + flag = 1; + } + if (flag == 0) { + new_char_parsed[i]=yon_char_new(char_string[i]); + } + else if (flag == 1 && i!=item_to_delete) { + new_char_parsed[i-1]=yon_char_new(char_string[i]); + } } - } - (*size)=(*size)-1; - return new_char_parsed; + (*size)=(*size)-1; + return new_char_parsed; + } else return NULL; } /**yon_char_parsed_check_exist(char **parameters, int size, char *param) diff --git a/ubl-settings-video.glade b/ubl-settings-video.glade index 087756c..fc405fc 100644 --- a/ubl-settings-video.glade +++ b/ubl-settings-video.glade @@ -14,6 +14,13 @@ start 64 + + True + False + end + start + 64 + True False @@ -1798,26 +1805,55 @@ translated and supported by community. False 15 15 + vertical 20 - - 177 - 159 + True False - start - start - + + 177 + 159 True False start - end - 128 - com.ublinux.ubl-settings-video.video-card + start + + + True + False + start + end + 128 + com.ublinux.ubl-settings-video.video-card + + + -1 + + - -1 + False + True + 0 + + + + + True + False + start + 30 + <span size='15pt'><span color='#1a5fb4'>sdrtjhsrtjh:</span> dfuykdftytdykkdfty</span> + True + 0 + 0 + + + False + True + 1 @@ -1828,15 +1864,54 @@ translated and supported by community. - + True False - start - 30 - <span size='15pt'><span color='#1a5fb4'>sdrtjhsrtjh:</span> dfuykdftytdykkdfty</span> - True - 0 - 0 + + + 177 + 159 + True + False + start + start + + + True + False + start + end + 128 + com.ublinux.ubl-settings-video.video-card + + + -1 + + + + + False + True + 0 + + + + + True + False + start + 30 + <span size='15pt'><span color='#1a5fb4'>sdrtjhsrtjh:</span> dfuykdftytdykkdfty</span> + True + 0 + 0 + + + False + True + 1 + + False