The copy button now generates a system information report with all the system information.
The information is generated by calling the same methods used when populating the System Information window.
get_gnome_version() relies on shell_proxy_ready() to provide it with shell proxy.
This means that we cant call get_gnome_version() without providing proxy as an argument which is fine normally but becomes tedious if we want to call this function multiple times in different scopes.
Fix this by creating the shell proxy inside get_gnome_version() function instead.
Since we're no longer processing the list of graphics devices inside of get_renderer_from_switcheroo, there's no need for this function
as the the list now gets passed around to a different function and automatically freed once it goes out of scope.
Default and non default GPUs were associated with a weight of 1 and -1 respectively which meant default gpus were treated
as a "bigger" entity than non default ones. It meant that when sorting a list of GpuData, the default gpu would end up
at the end of the list since it was treated as the biggest. The resultant list after sorting would end up something like
our pointer
|
|
<gpu>, <gpu>, <gpu>, <gpu>, <default gpu>
With this change the weights of these gpus have been exchanged, making the default gpu to be treated as "smaller" this
changing the order of the sorted list into something like
our pointer
|
|
<default gpu>, <gpu>, <gpu>, <gpu>, <gpu>
This is pretty useful because when creating the gpu information row entries in create_graphics_rows, the default gpu is processed first so it becomes the first element added to the gpu entry list which is how we would expect it to be.
This change brings it more inline with the mockup and it makes sense to not have a number for the default graphics device as that
s always going to be the first device.
Part 1:
Currently all graphics devices have to share a single row for their names, this method doesn't pretty well for devices with long names or computers that may have multiple GPUs.
The new mockup fixes this by having a separate entry for each graphics device.
This commit turns graphics_row into a GtkBox, graphics_row is going to act like a space where gpu entries will be placed.
graphics_row will be populated in the code using create_graphics_row() to have separate entries for each graphics device
Part 2:
Currently all graphics devices have to share a single row for their names, this method doesn't pretty well for devices with l>
The new mockup fixes this by having a separate entry for each graphics device.
This commit adds a method to popuplate graphics_row with GPU information entries.
It uses the existing logic from get_renderer_from_switcheroo to iterate over a list of graphics devices and build a CcInfoEntry for each device.
It finally appends the widget to graphics_row
Part 3:
Currently all graphics devices have to share a single row for their names, this method doesn't pretty well for devices with l>
The new mockup fixes this by having a separate entry for each graphics device.
The list of graphics devices is now processed in create_graphics_rows function, so remove that logic from get_renderer_from_switcheroo () and return a GSList instead of a string.
graphics_hardware_string has been renamed to graphics_hardware_list to imply the change.
Since create_graphics_rows expects a list, get_graphics_hardware method has been modified to create a renderer list from the outputs of get_renderer_from_session or get_renderer_from_helper in case that get_renderer_from_switcheroo fails.
In the new mockup, about page only displays a overview of information and most of the system information is presented as a seprate window.
Rewrite the info page to follow the new mockup
As of right now, we're using CcListRow to present information in the about section which is derived from AdwActionRow.
ActionRows have a certain style to them which doesn't match what the new mockup is going for.
This widget is made to closely match the requirements of the new design and will be used to replace CcListRow.
Methods to create a new InfoEntry as well as set value for a InfoEntry have also been provided.
Meson extracts them by itself and add them as dependencies for the target.
It means one less location to keep track of files, and a lot less boilerplate
around the meson files
Error building template class 'CcSearchPanel' for an instance of type 'CcSearchPanel': .:0:0 Invalid object type 'CcListRow'
Error building template class 'CcDisplayPanel' for an instance of type 'CcDisplayPanel': .:0:0 Invalid object type 'CcListRow'
Error building template class 'CcMousePanel' for an instance of type 'CcMousePanel': .:0:0 Invalid object type 'CcIllustratedRow'
Error building template class 'CcKeyboardPanel' for an instance of type 'CcKeyboardPanel': .:0:0 Invalid object type 'CcListRow'
Error building template class 'CcRegionPanel' for an instance of type 'CcRegionPanel': .:0:0 Invalid object type 'CcListRow'
Error building template class 'CcUaPanel' for an instance of type 'CcUaPanel': .:0:0 Invalid object type 'CcListRow'
Error building template class 'CcUserPanel' for an instance of type 'CcUserPanel': .:0:0 Invalid object type 'CcAvatarChooser'
Error building template class 'CcUserPanel' for an instance of type 'CcUserPanel': .:0:0 Invalid object type 'CcListRow'
Error building template class 'CcDateTimePanel' for an instance of type 'CcDateTimePanel': .:0:0 Invalid object type 'CcTzDialog'
cc_tz_dialog_get_selected_location: assertion 'CC_IS_TZ_DIALOG (self)' failed
dumped core
Error building template class 'CcDateTimePanel' for an instance of type 'CcDateTimePanel': .:0:0 Invalid object type 'CcListRow'
Error building template class 'CcInfoOverviewPanel' for an instance of type 'CcInfoOverviewPanel': .:0:0 Invalid object type 'CcHostnameEntry'
When having multiple GPUs, each GPUs are now seperated by a newline
instead of the previously used seperator: " / ".
This particular fix works ONLY for systems that use switcheroo-control.
Also, this commit allows the 'secondary_label' of 'CcListRow' to have
'lines' set to '4' and 'wrap' to 'True', along with 'hexpand'
and 'halign' set to 'True' to accommodate long strings on all labels
which previously suffered from a issue of getting truncated if
the strings are too long.
Fixes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2125
Remove "Mesa" from the start of the device name, it's data about the
driver which isn't relevant to us. It's always added before the name
of the device in `src/gallium/drivers/iris/iris_screen.c` in mesa.
This value comes from systemd-hostnamed, which harvests it from
/sys/class/dmi/id/bios_version, which happens to be empty/invalid
in virtual machines (at least KVM powered virtualization).
For this reason, we are better off hiding the "Firmware Version"
row when gnome-control-center is running in a VM.
Fixes#2181
Users often need information like Firmware version, serial number. Hence, it's
better to provide it by default in GNOME.
This changes is to display Firmware version only in "About" menu.
Reference: #1543
The `X-GNOME-Bugzilla-*` entries were for use by bug-buddy, a GNOME 2
technology that's been gone for over a decade. These entries are
obsolete and can be removed from all desktop files.
The `X-GNOME-Settings-Panel` entry is also obsolete as far as I can
tell and only these panels had it in their desktop file: notifications,
sharing, sound and user-accounts. These entries can also be removed.
After removing the `X-GNOME-Bugzilla-*` entries, the desktop files have
no more variables in them. The meson `configure_file` step is therefor
pointless—there are no variables to configure. As such the
`*.desktop.in.in` files are renamed to `*.desktop.in` to reflect this
and `meson.build` files are modified to remove `configure_file` step.
Previously, if os-release included the BUILD_ID field, it was smushed
into the OS Name row as follows:
OS Name Endless OS 5.0.0; Build ID: 220810-230009
This is unsightly in English; and in languages where the translations of
"OS Name" and "Build ID" are long, the build ID may be ellipsised and
hence useless:
Nom du système Endless OS 5.0.0 ; (identifiant de construction ...
d'exploitation
Instead, display the build ID in a separate row, and hide it if not
present.
Fixes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1347
Commit 61908b02 ("
info-overview: change fetch order for consistency") introduces
undesired whitespace. While remaking the commit is not necessary, as it
will not affect bisecting, the whitespace should be eliminated.
This patch removes the whitespace, leaving only one preceding and
proceeding line for the get_hardware_model call.
Currently, the order in which info_overview_panel_setup_overview fetches
data is essentially random. For ease of maintainability and
understanding, the fetches should be ordered by their appearance as rows
in the panel.
This patch changes the order so that it corresponds with the panel's UI
order.
Currently, we display a 256x256 version of the OS icon from
/etc/os-release. This is too big for my taste, and it's also not
sufficient for distros that want to display a logo that is not an icon.
For instance, because we no longer display the operating system name
immediately beneath the logo, it may be desirable to use a logo variant
that includes text. This patch adds a meson build option that
distributions can use to override the logo, and a second build option to
specify a different logo for use in dark mode.