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.
Move the page description to AdwPreferencesPage, since
it's the correct place to put the page description.
Also, set up the page description in the C code to
help translators.
- Use the up-to-date style for symbolics (2px outline). Notifications, Printers and Info/About
work fine as outlines.
- filled silouehette symbolic are only to be used where a 2px outline is impossible
to cram to 16x16px canvas.
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
So that the main switch and the page summary are updated when the
backend changes.
With this, the UI reacts to external calls such as
`grdctl rdp enable`.
The Remote Desktop page subtitle was updated asynchronously when
the System panel was loaded but after the following steps:
1. Connection established to `org.gnome.SettingsDaemon.Sharing`
(handled on `sharing_proxy_ready`).
2. Then a check whether Remote Desktop is available by watching
the `org.gnome.Mutter.RemoteDesktop` bus name appear.
3. Then we are finally populating the UI (and updating the
subtitle).
Now we bypass the panel initialization and check directly for the
"enable" state of the backend GSetting and the availability of the
gnome-remote-desktop.service, using `is_remote_desktop_enabled()`.
Fixes#2772
The Formats preview tries to find the measurement format of the locale
to preview, and then displays it. However, it displays the text in the
default locale, instead of in the real current locale, as newlocale ()
with base = (locale_t) 0 will use the default locale.
This is fixed by switching back to the real locale before setting the
label text.
Fixes#2458
Part-of: <https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/2051>
"Language" and "Formats" rows from the "Login Screen" section
have the same mnemonics of their counterparts from the "Your Account"
section. Use other letters for mnemonics to fix that.