diff options
author | Felipe Borges <felipeborges@gnome.org> | 2020-03-11 11:31:21 +0100 |
---|---|---|
committer | Felipe Borges <felipeborges@gnome.org> | 2020-03-11 11:31:21 +0100 |
commit | 1fe06d89a4e27083812502968da4d42978335c21 (patch) | |
tree | ba032a6317e0f84358063759a909bb01e1a61605 | |
parent | 633bb28f626185dbd502537e3d5cfffc868a5602 (diff) | |
download | gnome-control-center-info-show-hardware-name.tar.gz |
info-overview: Add hardware name (product_family)info-show-hardware-name
Showing the product_family helps hardware vendors debug user problems.
See https://teams.fedoraproject.org/project/silverblue/us/127
-rw-r--r-- | panels/info-overview/cc-info-overview-panel.c | 21 | ||||
-rw-r--r-- | panels/info-overview/cc-info-overview-panel.ui | 9 |
2 files changed, 30 insertions, 0 deletions
diff --git a/panels/info-overview/cc-info-overview-panel.c b/panels/info-overview/cc-info-overview-panel.c index af04dc660..e1906ef7e 100644 --- a/panels/info-overview/cc-info-overview-panel.c +++ b/panels/info-overview/cc-info-overview-panel.c @@ -62,6 +62,7 @@ struct _CcInfoOverviewPanel CcListRow *disk_row; CcListRow *gnome_version_row; CcListRow *graphics_row; + CcListRow *hardware_name_row; GtkListBox *hardware_box; GtkDialog *hostname_editor; CcHostnameEntry *hostname_entry; @@ -408,6 +409,21 @@ get_graphics_hardware_string (void) return g_strdup (renderer); } +static gchar * +get_hardware_name_string (void) +{ + gchar *product_family = NULL; + g_autoptr(GError) error = NULL; + + if (!g_file_get_contents ("/sys/devices/virtual/dmi/id/product_family", &product_family, NULL, &error)) + { + if (!g_error_matches (error, G_FILE_ERROR, G_FILE_ERROR_NOENT)) + return NULL; + } + + return g_strchomp (product_family); +} + static char * get_os_name (void) { @@ -683,6 +699,7 @@ info_overview_panel_setup_overview (CcInfoOverviewPanel *self) g_autofree char *os_type_text = NULL; g_autofree char *os_name_text = NULL; g_autofree gchar *graphics_hardware_string = NULL; + g_autofree gchar *hardware_name_string = NULL; if (load_gnome_version (&gnome_version, NULL, NULL)) cc_list_row_set_secondary_label (self->gnome_version_row, gnome_version); @@ -708,6 +725,9 @@ info_overview_panel_setup_overview (CcInfoOverviewPanel *self) graphics_hardware_string = get_graphics_hardware_string (); cc_list_row_set_secondary_markup (self->graphics_row, graphics_hardware_string); + + hardware_name_string = get_hardware_name_string (); + cc_list_row_set_secondary_markup (self->hardware_name_row, hardware_name_string); } static gboolean @@ -811,6 +831,7 @@ cc_info_overview_panel_class_init (CcInfoOverviewPanelClass *klass) gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, gnome_version_row); gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, graphics_row); gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, hardware_box); + gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, hardware_name_row); gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, hostname_editor); gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, hostname_entry); gtk_widget_class_bind_template_child (widget_class, CcInfoOverviewPanel, hostname_row); diff --git a/panels/info-overview/cc-info-overview-panel.ui b/panels/info-overview/cc-info-overview-panel.ui index de377bb69..7a68a5653 100644 --- a/panels/info-overview/cc-info-overview-panel.ui +++ b/panels/info-overview/cc-info-overview-panel.ui @@ -68,6 +68,15 @@ <class name="frame" /> </style> + <!-- Hardware name --> + <child> + <object class="CcListRow" id="hardware_name_row"> + <property name="visible">True</property> + <property name="activatable">False</property> + <property name="title" translatable="yes">Hardware name</property> + </object> + </child> + <!-- Memory --> <child> <object class="CcListRow" id="memory_row"> |