This allows us to open subpages of the "System" panel. The arguments/
parameters are expected to match the panel's subpage tags (as in
AdwNavigationPage.tag).
With this, a future change could reintroduce desktop files for the
subpages, and just change the Exec line to accomodate the new format.
Graphics labels under system details did not have enough padding
between them similar to other labels in the panel
Add a default spacing of 10 to children rows of gtk_box that sets the
graphic rows dynamically to fix the issue
Fixes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2916
These symbols were soft-renamed in libmalcontent 0.5.0 (released in
February 2020), and we already depend on 0.7.0.
Signed-off-by: Philip Withnall <pwithnall@gnome.org>
- refresh the symbolic icons to sync some style changes and update the source sheet
- rename assets for the privacy subpanel's symbolic icons
- delete deprecated/unused symbolic icons
- add new icon for system panel
- add new icon for remote desktop so it isn't using displays icons
Using `g_clear_handle_id()` in combination with `g_source_remove()` can
save a lot of boiler plate code.
This removes about 110 lines of code for free.
The CcSystemDetailsWindow is fairly slow to create, making the first
opening of it feel slightly unresponsive.
Resolve this by creating the window when idle.
The window should be destroyed and unreferenced when the About page is
disposed to prevent leaking it.
We need to take the reference in order to not repeat #2823, since the
AdwWindow is initially floating.
Initializing the About page involves creating a CcSystemDetailsWindow
too. This costs time, making the System panel open slower because it has
to wait for the About page to finish initializing.
By creating the CcSystemDetailsWindow only when it should be opened, we
save at least 0.1 s when opening the System panel.
Commit f3f81d37 added a signal connection between dark mode changes and
updating the OS logo in the About page. However, this signal was not
disconnected, causing a crash when changing the dark mode after leaving
the About page.
Fix this by using `g_signal_connect_object ()` instead.
Fixes#2854
Let's not show the page neither crash when there are issues with
finding the remote desktop gsettings in the system, or when the
RemoteDesktop name didn't appear on dbus.
Fixes#2874
Also, change the mnemonic of the System Details
row, so the Device Name entry mnemonic can use
the letter "D". This will be consistent
with the mnemonic of the Device Name entry
from the Sharing panel, added in
d3ca140cafd83398db6f587250120fe7f891e9e2
Add mnemonics to Users and About rows.
Also, fix the mnemonic of the Remote Desktop
row, which was using the same letter that
the Region & Language row uses.
We can store whether we generated the user avatar inside the PNG
itself. Unfortunately this won't work for old installations but in future
we can use the metadata introduced by this commit.
Recent used list of avatars form the popover wasn't populated with any avatars
other then the generated one, so it's only used to remove a set avatar.
In a future commit a remove button is added therefore this section will lose
all of it's purpose.
The object had a lot of old code and was not following the typical
GObject boilerplate.
- This moves code to initialize CcAvatarChooser to *_init()
- Removes unused code
- This removes `transient_for` property since it's not needed, this
is probably a remanence of the Chooser being a Dialog instead of a
Popover
This moves the UserAccounts panel to a page in the System panel.
This simplifies a lot of the existing code in the UserAccounts panel.
I did minimal changes to the sub dialogs so that those can be touched
in following changes, making it easier to review this one alone.
The main panel widget is now CcUsersPage, and is an AdwNavigationView
widget that has a default "current_user_page" page. Each page is a
CcUserPage (careful with the one-character difference between these
two classes).
Each CcUserPage has an associated ActUser object.
Row subtitles in Settings are typically a description of the main label or setting.
You can see this in Mouse & Touchpad, Privacy, Sharing, and Wi-Fi.
For the System panel we did something a bit different and used the subtitle to show
the status of each panel.
Given the standard use of subtitles elsewhere, this feels a bit surprising which,
as a result, makes the panel harder to read. I think that a standard description
would probably also be more useful than the current labels.
Mockups https://gitlab.gnome.org/Teams/Design/settings-mockups/-/blob/master/system/system-panel.png?ref_type=heads
This also removes the thin CcSystemPage abstract class because it was
only introduced to add the support for dynamic System row subtitle. Now
this abstraction is no longer necessary.
Fixes#2776
In !2051, we switch back to real locale before setting the label text,
however, according to nl_langinfo's manpage, the returned pointer could
be invalid after switching locale or creating new locale, so the program
may crash.
To fix this, we save the result before switching locale, so we won't
access the invalid pointer after switching locale.