diff options
author | Javier Fernández <jfernandz1290@gmail.com> | 2020-12-19 21:53:24 +0100 |
---|---|---|
committer | Javier Fernández <jfernandz1290@gmail.com> | 2021-02-11 14:04:14 +0100 |
commit | f39cd5a93b0dcddda9911586820ed55bbbe2eb3d (patch) | |
tree | 1c9885da4b97337c07a472242d61eb285fe204e4 | |
parent | cbb2d31a3811032bad36f582ba3552f4e4fc9324 (diff) | |
download | gnome-control-center-f39cd5a93b0dcddda9911586820ed55bbbe2eb3d.tar.gz |
info-overview: Implements usage of os-release to search for the OS logo
By default info-overview panel shows the Gnome logo from a static
resource, currently every distro patches this component to show their logos
info-overview panel could use `/etc/os-release` file to fetch the OS logo
instead this static resource
-rw-r--r-- | panels/info-overview/cc-info-overview-panel.c | 19 | ||||
-rw-r--r-- | panels/info-overview/cc-info-overview-panel.ui | 3 |
2 files changed, 20 insertions, 2 deletions
diff --git a/panels/info-overview/cc-info-overview-panel.c b/panels/info-overview/cc-info-overview-panel.c index f0e554114..bd0e07762 100644 --- a/panels/info-overview/cc-info-overview-panel.c +++ b/panels/info-overview/cc-info-overview-panel.c @@ -69,6 +69,7 @@ struct _CcInfoOverviewPanel CcListRow *hostname_row; CcListRow *memory_row; GtkListBox *os_box; + GtkImage *os_logo; CcListRow *os_name_row; CcListRow *os_type_row; CcListRow *processor_row; @@ -866,6 +867,21 @@ cc_info_panel_row_activated_cb (CcInfoOverviewPanel *self, } static void +setup_os_logo (CcInfoOverviewPanel *panel) +{ + g_autofree char *logo_name = g_get_os_info ("LOGO"); + if (logo_name != NULL) + { + gtk_image_set_from_icon_name (panel->os_logo, logo_name, GTK_ICON_SIZE_INVALID); + gtk_image_set_pixel_size (panel->os_logo, 256); + } + else + { + gtk_image_set_from_resource (panel->os_logo, "/org/gnome/control-center/info-overview/GnomeLogoVerticalMedium.svg"); + } +} + +static void cc_info_overview_panel_class_init (CcInfoOverviewPanelClass *klass) { GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); @@ -883,6 +899,7 @@ cc_info_overview_panel_class_init (CcInfoOverviewPanelClass *klass) gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, hostname_row); gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, memory_row); gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, os_box); + gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, os_logo); gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, os_name_row); gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, os_type_row); gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, processor_row); @@ -912,6 +929,8 @@ cc_info_overview_panel_init (CcInfoOverviewPanel *self) info_overview_panel_setup_overview (self); info_overview_panel_setup_virt (self); + + setup_os_logo (self); } GtkWidget * diff --git a/panels/info-overview/cc-info-overview-panel.ui b/panels/info-overview/cc-info-overview-panel.ui index 24e419fa4..2f5d3cf8b 100644 --- a/panels/info-overview/cc-info-overview-panel.ui +++ b/panels/info-overview/cc-info-overview-panel.ui @@ -25,10 +25,9 @@ <property name="spacing">30</property> <property name="orientation">vertical</property> <child> - <object class="GtkImage"> + <object class="GtkImage" id="os_logo"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="resource">/org/gnome/control-center/info-overview/GnomeLogoVerticalMedium.svg</property> </object> <packing> <property name="expand">False</property> |