Spaces aren’t supported in .desktop file keywords, as gnome-shell splits
the search term by spaces, and then prefix-matches each word separately
against the candidate keywords.
So a search term of ‘parental’ would match the ‘Parental Controls’
keyword, but a search term of ‘parental controls’ would not, as
‘controls’ doesn’t prefix-match anything.
Avoid that by removing spaces from the keywords.
Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Helps: https://gitlab.freedesktop.org/pwithnall/malcontent/-/issues/48
"Computer" isn't a suitable term for other device
form factors. Also, there are several strings in
Settings that already use "device", and cc-color-panel.ui
uses a mix of "computer" and "device" strings, which is
weird.
When the Users panel got moved to System, the original .desktop file was
also moved. However, that is now obsolute with
`panels/system/users/gnome-users-panel.desktop.in`. This old file is
also not referenced in any `meson.build` and contains an outdated `Exec`
line.
So, remove it.
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
Currently, the generic "Failed to log into domain" error is shown when
joining domain with invalid hostname. It is hard for user to guess what
is going on. Let's fail with "That hostname didn’t work" instead.
Related: https://gitlab.freedesktop.org/realmd/realmd/-/merge_requests/39
Currently, the previous cc_realm_manager_discover calls are not cancelled
when validating domain field. This might lead to the situation when valid
domain might be mislabeled as invalid and vice versa. Let's simply cancel
the cancellable to avoid this situation.
The `source_object` parameter for the callback functions called from
the `realm_join_as_user` and `real_join_as_admin` resp. `realm_join_as_owner`
functions is not `CC_REALM_OBJECT` type as one would expect, but
`CC_REALM_KERBEROS_MEMBERSHIP` type. Let's modify the code to ensure that
it is `CC_REALM_OBJECT` type.
The implementation is based on the cc-add-user-dialog.c codes, but it is
not a pure copy&paste. It has to be changed to fit the skeleton and reflect
changes from the mockup. I've also tried to simplify the code where possible.
It also fixes some memory leaks.
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.
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.