Commit graph

8 commits

Author SHA1 Message Date
Adrian Vovk
87a62a7c4a users: Fixup buggy AdwNavigation behavior
Previously, events from accountsservice would be used to change the
state of the AdwNavigation in ways that don't correspond to the event
that happened. For example, deleting an account would pop the top page
off the stack, even if that page didn't belong to that account.

Especially buggy is the behavior of replacing the currently visible page
with the contents of an account that just changed. systemd-homed changes
the user record whenever authentication happens successfully. So, user
Foo might be trying to edit user Bar, type in their password at the
polkit prompt, and end up looking at a broken version of their own
settings page again: the title would be "Bar", there'd be no list of
users, and hitting the back button would take Foo back to the same
settings page they're currently looking at.

This commits refactors the handling of the accountsservice signals to
fix all the bugs

Fixes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2911
2024-03-03 09:19:13 +00:00
Philip Withnall
ff29f1c95e build: Fix use of deprecated libmalcontent symbols
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>
2024-02-16 09:23:54 +00:00
Jeremy Bícha
21b5a64786 users: Close language dialog when Select is clicked
Closes: #2841
2024-01-13 10:19:17 +00:00
Automeris naranja
4062329119 users: Use AdwSwitchRow in the remove user dialog
Also, add a mnemonic.
2024-01-10 09:58:38 +00:00
Julian Sparber
d0062954fa user: Ensure that the user avatar is regenerated when needed
If a user uses a a generated avatar we need to regenerated it every time
the full name changes.
2024-01-09 15:47:17 +00:00
Julian Sparber
7b0df415c3 user: Add remove button to user avatar 2024-01-09 15:47:17 +00:00
Julian Sparber
6f53522d90 user: Remove old craft work from CcAvatarChooser
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
2024-01-09 15:47:17 +00:00
Felipe Borges
d52ec68f8d system: Add "Users" panel
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.
2024-01-08 13:59:26 +01:00