Commit graph

86 commits

Author SHA1 Message Date
Mohammed Sadiq
d4dee45d76 user-accounts: Fix some memory leaks 2023-07-03 01:56:24 +00:00
Felipe Borges
f6d5080ffd user-accounts: Fix pointer cast in sort_users function
Part-of: <https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/1812>
2023-06-01 01:38:20 +00:00
Felipe Borges
c8fe38c4f1 user-accounts: Move "Add User" button out of the user listbox
Per mockups at
78b6a0506b/users/users.png

Part-of: <https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/1812>
2023-06-01 01:38:20 +00:00
Robert Ancell
39ccf2c610 user-accounts: Do signal handlers in swapped form 2023-05-30 08:36:22 +00:00
Gotam Gorabh
f9c75e6694 user-accounts:updated the remove user dialog with AdwMessageDialog
This commit will update the GUI of remove user dialog with AdwMessageDialog which
doesn't follow design guidelines. Re-desined according to https://gitlab.gnome.org/Teams/Design/settings-mockups/-/blob/master/users/users.png

Fixes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2093
, https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2341
2023-05-24 08:57:30 +00:00
Mpho Jele
483a5f3e8d user-accounts: Use AdwEntryRow for user full name 2023-05-17 11:14:29 +02:00
Felipe Borges
d586df5c87 user-accounts: Add a popover describing the autologin functionality
Fixes #2235
2023-05-16 13:32:21 +00:00
Felipe Borges
61ba210c99 user-accounts: Remove autologin row tooltip when unlocked
Fixes #2451
2023-04-20 09:24:48 +00:00
Chris Mayo
92c4b6a706 Fix panel crashes due to unknown types in UI descriptions
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'
2023-04-17 12:14:58 +00:00
Christopher Davis
d25c0e345d general: Use AdwBanner in CcPermissionInfobar
AdwBanner is a new adaptive widget that replaces GtkInfoBar.
AdwBanner adapts better to mobile sizes and has an API
that fits with how we use infobars.

This commit changes CcPermissionInfobar to use an AdwBanner
internally instead of a GtkInfoBar. It also re-implements
part of GtkLockButton, as AdwBanner does not support adding
arbitrary widgets.
2023-04-11 12:23:16 +00:00
Maksym Hazevych
9b155f6c5c user-accounts: Set language-chooser to hide on close 2023-03-29 14:26:55 +13:00
Maksym Hazevych
08c2e69851 Resolving suggestions 2023-03-29 14:26:55 +13:00
Maksym Hazevych
5b988a6943 Replace all occurrences of 'gtk_widget_hide'
Replace all occurrences of 'gtk_widget_hide(smth)' with
'gtk_widget_set_visible(smth, FALSE)'.
2023-03-29 14:26:55 +13:00
Maksym Hazevych
d831e5cb48 Replace all occurrences of 'gtk_widget_show'
Replace all occurrences of 'gtk_widget_show(smth)' with
'gtk_widget_set_visible(smth, TRUE)'.
2023-03-29 14:26:55 +13:00
Gotam Gorabh
a14a4513a2 removed dead variable 2023-03-24 08:38:03 +00:00
Gotam Gorabh
19d611ad03 user-accounts: Removed account activity window
This changes remove the account activity window or
login history as it is less used or no use.

Fixes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2096
2023-03-24 08:38:03 +00:00
Ray Strode
8a98497fb0 user-accounts: Don't access user before it's loaded
libaccountsservice documents that it is undefined to access an
ActUser object's properties before the 'is-loaded' property is
set to try.

Control-center unfortunately sometimes accesses objects that
aren't fully loaded, leading to log spew and memory corruption.

This commit fixes the problem by setting up a signal handler
to listen for the is-loaded notification when necessary.

Closes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2348
Closes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2349
2023-02-17 09:45:18 +00:00
Nelson Benítez León
d1e64d0f13 user-accounts: Initialize CcAvatarChooser a bit earlier
Fixes following warning when activating Users panel:
user-accounts-cc-panel-WARNING **: Error retrieving app filter for user (null): User 4294967295 does not exist

Initialize CcAvatarChooser a bit earlier so it does
not get used by show_user() before creation.

Fixes #2219
2023-02-11 23:10:30 -04:00
Felipe Borges
294156c0f9 Drop most uses of deprecated gtk_style_context_add/remove_class
GtkStyleContext will be deprecated in gtk 4.10.
https://docs.gtk.org/gtk4/class.StyleContext.html

This preserves code blocks where additional GtkStyleContext operations
were used, such as gtk_style_context_save/restore.
2023-01-05 18:55:51 +00:00
Mohammed Sadiq
150fc13a84 user-accounts: Reduce avatar size in "Other users"
See https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/1498#note_1600864
2022-11-28 11:00:04 +00:00
Mohammed Sadiq
45656c4212 user-accounts: Fix account list styling
Fixes #1926
2022-11-28 11:00:04 +00:00
Mohammed Sadiq
14f2d0e6ef user: Use CcListRow where appropriate 2022-11-25 20:37:49 +05:30
Mohammed Sadiq
38d62974b6 user-panel: Fix possible invalid free
The selected_user variable is unref on dispose(), and show_user()
is likely executed with self->selected_user already set to user,
but it's inconsistent, and so to be on the safer side, use
g_set_object()
2022-08-17 08:21:34 +00:00
Felipe Borges
c381c633af user-accounts: Show "automatic login" option when locked
It should be made insensitive when the panel is locked, and sensitive
when locked.

We only hide this row for non-local users, where this setting doesn't
make much sense.

Fixes #1944
2022-08-03 09:39:59 +00:00
Mpho Jele
272b73795d user-accounts: Make back button switch to current user or panels list
When the window AdwLeaflet is folded the back button should either
switch to the panels list if the selected user is the current user
or switch to the current user if the selected user is from the
"other users" list
2022-07-24 15:29:46 +00:00
Mpho Jele
311268c4f7 user-accounts: Show the back button when window leaflet folds
Currently the back button is only shown when viewing a user from the
"other users" list.
These changes show the back button when the window AdwLeaflet is
folded or when the selected is from the "other users" list but never
when the window is not folded and the selected user is the current
user.

Fixes: #1719
2022-07-24 15:29:46 +00:00
Felipe Borges
dfb2fa31af users: Make FileChooser inside AvatarChooser transient to main window
Depends on
https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/1253

Fixes #1677
2022-03-03 17:22:38 +01:00
Felipe Borges
dc032c338d user-accounts: Explicitly initialize CcAvatarChooser
Setting the Gtk.MenuButton.popover property to a CcAvatarChooser
object doesn't initialize the CcAvatarChooser object.

Fixes #1689
2022-03-03 16:13:46 +00:00
Felipe Borges
4b21c5b056 user-accounts: Load avatar image files in "Other users" list
We were checking for the existance of an image file as avatar when
setting up the main avatar widget in the page, but the same wasn't
done for the avatars displayed in the "Other users" list. These
were AdwAvatars simply initialized to use the user initials.

Now we load the user image (if it exists) and it will fallback to
initials when an image isn't set.

Fixes #1658
2022-03-02 16:04:26 +00:00
Felipe Borges
0019b0869a user-accounts: Reinstate fingerprint dialog
The port of the Fingerprint dialog to gtk4 wasn't completed.
Now the dialog is expected to function again.
2022-02-28 15:47:42 +00:00
Felipe Borges
1f693be757 user-accounts: Reset avatar widget when changing user pages
Otherwise the same source image is going to be used for other users
that don't have their own avatar image set.
2022-02-15 13:57:55 +00:00
Felipe Borges
26cc82c754 user-accounts: Always populate other users list
We were not re-populating the list when switching panels.

Related #1631
2022-02-09 15:04:32 +00:00
Felipe Borges
7f8e90a966 user-accounts: Port to gtk4/libadwaita implementing the new design
https://gitlab.gnome.org/Teams/Design/settings-mockups/-/raw/master/users/users.png
2022-02-08 13:29:56 +00:00
Philip Withnall
d46601d590 user-accounts: Make malcontent-control optional
Hide the button to open the parental controls UI if it’s not installed.
This will allow distributions to split the dependency, making
gnome-control-center suggest (rather than require) malcontent-ui, while
still requiring libmalcontent.

In turn, this will allow malcontent-ui to be uninstalled without
requiring gnome-control-center to be uninstalled, which will satisfy
users who feel the need to uninstall it because it’s not useful to them.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2022-02-03 14:18:25 +00:00
Bastien Nocera
51500e38a8 user-accounts: Add debug when launching malcontent-control 2021-09-05 21:55:06 +00:00
Bastien Nocera
3e26f594fc user-accounts: Avoid double password prompt
Don't require a password to be typed just to be able to launch the
parental controls app which itself will ask for a password to be typed.
2021-09-05 21:55:06 +00:00
Bastien Nocera
97e858d697 user-accounts: Hide parental controls row if unavailable
Don't show the parental controls line for administrator accounts.
2021-09-05 21:55:06 +00:00
Mohammed Sadiq
179d6aeb2d user: Use content style for listboxes 2021-05-19 03:25:47 +00:00
Robert Ancell
cbb2d31a38 user-accounts: Add missing GTK_WIDGET cast
Was missing in 77df081fec
2021-02-11 16:14:47 +13:00
Philip Withnall
77df081fec user-accounts: Make dim-label behaviour better for parental controls row
This makes it behave a bit more like other rows.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Helps: https://gitlab.freedesktop.org/pwithnall/malcontent/-/issues/26
2021-02-01 03:46:14 +00:00
Robert Ancell
ff6aabb511 user-accounts: Use consistent whitespace 2021-01-08 15:25:07 +13:00
Robert Ancell
c690e921ca user-accounts: Use g_autoptr/g_autofree 2021-01-08 15:25:07 +13:00
Philip Withnall
2809316fd1 user-accounts: Show ‘Add User’ button when panel is locked
Rather than hiding the ‘Add User’ button when the panel is locked, show
it in an insensitive state. This gives the user a hint that in order to
add a new user, they will need to unlock the panel.

See: https://gitlab.freedesktop.org/pwithnall/malcontent/-/issues/26#note_705945

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2020-12-11 17:19:11 +00:00
Philip Withnall
a9bb55c3c4 user-accounts: Make infobar label more relevant
Highlight that the panel needs to be unlocked in order to add new users.
Currently, while the panel is locked, it’s not at all obvious how to add
new users.

In particular, this helps improve the flow from the parental controls
application, which opens g-c-c to allow new users to be added.

See: https://gitlab.freedesktop.org/pwithnall/malcontent/-/issues/26#note_705945

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2020-12-11 17:19:11 +00:00
Philip Withnall
e8d9fc565b user-accounts: Pass --user argument to select user in malcontent-control
This eases the transition from g-c-c to malcontent-control a little.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Helps: https://gitlab.freedesktop.org/pwithnall/malcontent/-/issues/19
2020-10-20 12:50:48 +01:00
Marco Trevisan (Treviño)
d517a092aa user-accounts: Implement new designed fingerprint dialog
Implement the new designed interface for fingerprint enrollment, so that the
dialog is now based on a stack of views:
 - A list of devices to choose (shown only if multiple are available)
 - A gallery of enrolled prints available where manage them
 - An enrollment progress view when enrolling a new finger

Move part of the logic into a new FingerprintManager (to manage gdbus proxies
generated via gdbus-codegen) that is created when configuring the current
user and that tracks the devices states, while move most of the UI into a new
CcFingerprintDialog that does all the operations in async way.

Due to fprintd lack of APIs, there are few features missing, compared to
the final design (none is a regression):
 - Identify the finger when the enroll dialog is visible
 - Delete a single fingerprint
 - Highlight the finger when the sensor is touched during enrollment
 - Add customized labels to fingerprints
 - Devices hotpluging

However most of the code has been written considering these, and so they could
be easily implemented in future re-iterations once newer APIs are defined for
such bits.

Closes https://gitlab.gnome.org/Teams/Design/settings-mockups/-/issues/18
2020-06-26 01:54:04 +00:00
Marco Trevisan (Treviño)
840b906efe fingerprint-manager: Add state for state updating
Add add an "updating" state to the fingerprint manager so that the UI can
adapt the widgets depending on it, as the dbus calls might be a bit slow at
times.
2020-06-26 01:54:04 +00:00
Marco Trevisan (Treviño)
e935cb9d74 fingerprint-dialog: Use fingerprint manager to notify state changes 2020-06-26 01:54:03 +00:00
Marco Trevisan (Treviño)
25079fc505 user-panel: Use fingerprint manager to track the enrollment state 2020-06-26 01:54:03 +00:00
Umang Jain
cd391b4942 user-accounts: Add a launcher for parental controls app
malcontent ships malcontent-control[1] which is the user interface
to interact with various parental-control settings. Add a launcher
as per the design mockups[2] to launch malcontent-control.

[1]: https://gitlab.freedesktop.org/pwithnall/malcontent/-/blob/master/README.md
[2]: https://gitlab.gnome.org/Teams/Design/settings-mockups/blob/master/users/users.png
2020-06-17 12:56:43 +01:00