Commit graph

778 commits

Author SHA1 Message Date
Automeris naranja
b87909e3a7 users: Tweak add_unlock_tooltip to follow HIG guidelines
This tooltip doesn't follow HIG guidelines because is too long
and doesn't use header capitalization.

https://developer.gnome.org/hig/guidelines/writing-style.html
2023-10-27 12:55:49 +00:00
Maximiliano Sandoval R
527942fd9b password-dialog: Remove unneded visible=True 2023-10-23 13:41:53 +00:00
Maximiliano Sandoval R
2267c3662f password-dialog: Set minimum size. 2023-10-23 13:41:53 +00:00
Maximiliano Sandoval R
25797ff1c1 password-dialog: Remove text-button classes
These are automatically added by GtkLabel, if needed.
2023-10-23 13:41:53 +00:00
Maximiliano Sandoval R
c72c4eb5a6 password-dialog: Use AdwToolbarView
See https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2624
2023-10-23 13:41:53 +00:00
Maximiliano Sandoval R
6ecbeb2a53 user-panel: Set pill style on button bellow list 2023-10-10 09:46:28 +00:00
Maximiliano Sandoval R
5da11f739d user-panel: Add missing xml header 2023-10-10 09:46:28 +00:00
Mohammed Sadiq
6f9e1bfec0 user-accounts: Allow new password insert iff the old one is right
Since the error message label provided at the bottom only says that
the newly provided password is weak, it can be consfusing for the
users as they might not understand why they can't press 'Accept'
button.  This could be especially true for color blind people.

Fix it by allowing modification of new password entry only if the old
provided password is correctly entered.
2023-09-08 08:40:32 +00:00
Alice Mikhaylenko
4680f362f3 Port to AdwNavigationSplitView 2023-08-25 08:00:43 +00:00
Alice Mikhaylenko
0e98183540 user-accounts: Port to AdwToolbarView 2023-08-25 08:00:43 +00:00
Alice Mikhaylenko
f82515ca17 user-accounts: Fix account type row sensitivity 2023-08-25 08:00:43 +00:00
Felipe Borges
9573da47a1 user-accounts: Update status page text when no accountsservice
The text we show when Settings was unable to connect to Accountsservice
and for this reason has nothing to show in the User Accounts panel.
2023-08-14 07:55:45 +00:00
Felipe Borges
d2c456abe6 user-accounts: Show label when another user is logged in
One cannot remove an user if they are currently logged in. Before
we used to show an error message stating that this didn't work.

Now we make the "Remove User" button insensitive and show a label
next to it stating why the user cannot be deleted.

See https://gitlab.gnome.org/GNOME/gnome-control-center/uploads/a47f3ab8606227e541a176008dc7bf64/image.png
2023-08-14 07:55:45 +00:00
Felipe Borges
3449a48ab0 user-accounts: Port "error" message dialogs to AdwToasts 2023-08-14 07:55:45 +00:00
Felipe Borges
14d358740d user-accounts: Drop "Restart" notification
We have code to show the "Restart" notification when the user
would change its account-type between STANDARD/ADMIN, except that
we never allow that to happen. So this code was never used.

We have the would_demote_only_admin function that is used to set
the visibility of the Account Type row. So we won't ever display
the Account Type row if the user would demote the only admin.
2023-08-14 07:55:45 +00:00
Felipe Borges
8289c69fd8 user-accounts: Add loading page with a spinner
Otherwise the panel might look broken in the first half second it
takes to load the user data from accountsservice. The time might
get significant for enterprise/remote accounts.
2023-08-14 07:55:45 +00:00
Felipe Borges
ae98f7d834 user-accounts: Turn "no-users-box" into an error page
We only have no users when we are unable to connect to accountsservice.
2023-08-14 07:55:45 +00:00
Felipe Borges
d7ba866f01 user-accounts: Port GtkMessageDialogs in user deletion to AdwMessageDialog 2023-08-14 07:55:45 +00:00
Felipe Borges
84d3d8dc59 user-accounts: Remove MessageDialog for deleting own account
Our UI doesn't expose the Delete button when the current logged user
is the one viewing its account settings. So there's no need to have
this dialog since it never gets shown.
2023-08-14 07:55:45 +00:00
Felipe Borges
24f50295c4 user-accounts: Port CcAddUserDialog away from deprecated GtkDialog
This is a bare minimum to get rid of GtkDialog. There are upcoming
changes to modernize the dialog.
See https://gitlab.gnome.org/Teams/Design/settings-mockups/-/raw/master/users/add-user.png
2023-08-14 07:55:45 +00:00
Cyber Phantom
aec265db7d user-accounts: Only show Other Users row when there is at least one other user 2023-07-19 08:44:16 +00:00
Felipe Borges
2bfc70782c user-accounts: Set widget sensitivities when we can't obtain GPermission
The banner will show a message indicating a failure to Unlock the panel,
but we still should "lock" widgets by making them sensitive accordingly
to the current permission.

Fixes !1708
2023-07-12 15:57:06 +00:00
velsinki
38ed5ec2df users: close CcAvatarChooser before GtkFileDialog
This makes sure the focus is immediately on the GtkFileDialog instead of
the CcAvatarChooser behind it. This was already added in !1685, but was
accidentally removed in !1822.

Fixes #2315
2023-07-11 11:30:46 +00:00
Lukáš Tyrychtr
701f7c6cf6 users-panel, cc-awatar-chooser: Don't request a symlink target for a file info when
it is not a symlink.

That previously caused a debug message, but will cause a g_critical.
Fixes #2547
2023-07-03 10:25:41 +00:00
Mohammed Sadiq
d4dee45d76 user-accounts: Fix some memory leaks 2023-07-03 01:56:24 +00:00
velsinki
b942a4a6b4 users: Draw avatar crop corners to inside of crop
The crop corners were drawn with the center of the corner lines at the
edges of the crop. This resulted in the corners being visually cut if
the crop is dragged to the edge of the image. Instead, we can draw the
corner lines such that they are inside the edge of the crop, i.e.
shifted by half their linewidth.

We now use relative moves to draw the lines, which simplifies the
movements.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/1824>
2023-06-28 00:05:36 +00:00
velsinki
5e87979815 users: Improve rounding of avatar crop edges
If crop.x changes due to a drag, crop.x + crop.width remains fixed, as
thet is the opposite edge. However, in the mapping of paintable to
widget coordinates, crop->x + crop->width can vary due to rounding
errors. This fixes that, so that crop->x + crop->width does not vary,
with the same fix in the y direction.

However, the edges of the circle can still remain jittery due to integer
rounding, which is not fixed by using 'width / 2.0' instead of 'width /
2', since the width and height might differ by a pixel. Instead, draw an
ellipse, which removes edge jitter completely.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/1824>
2023-06-28 00:05:36 +00:00
Automeris naranja
d621855dc8 users: Add mnemonics to the "Remove User" and "Add User" buttons 2023-06-27 16:22:56 -03:00
velsinki
44e1a1228f users: Improve avatar crop mechanics
The resizing and movement mechanics for the avatar crop can be finicky,
because:

1. The crop resets to the last valid crop when you drag out of range, so
   that a somewhat quick drag does not go to the edge.
2. A corner drag only works in one direction, as the use of
   eval_radial_line is not correct.
3. A side drag acts the same as a corner drag.
4. A slow drag won't move the crop, especially if the widget is larger.

All these issues are fixed with this partial rewrite of the resize and
movement logic:

1. A drag out of range will result in a size that is guaranteed to touch
   the edge, making a crop to the edge much easier.
2. Instead of fixing eval_radial_line, we just "bind" one side to the
   pointer position, making both directions act the same for a corner
   drag.
3. A side drag now scales around the center for the orthogonal side.
4. Rounding errors in calculating the previous delta are prevented.
2023-06-20 23:13:15 +00:00
Marcos Miller
14bd84dc19 user-accounts: use GtkFileDialog for select avatar image.
The GtkFileChooser interface is deprecated in gtk 4.10.

A new GtkFileDialog api is used.

user-accounts: code improvement
2023-06-07 23:43:17 +00:00
Robert Ancell
69406c3590 user-accounts: Connect signal handlers in swapped form 2023-06-07 09:12:54 +12:00
sunflowerskater
266c55715a general: Add tooltips to headerbar controls
Acc. HIG, "controls in the header bars of primary windows should all have tooltips".

https://developer.gnome.org/hig/patterns/feedback/tooltips.html
2023-06-06 13:27:00 +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
Automeris naranja
901f395e9e user-add-dialog: Use CCListRowInfoButton for the "Administrator" AdwActionRow
Follow-up from Follow-up from https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/1571
2023-05-30 08:35:12 +00:00
Felipe Borges
e97429f0f6 Make dialogs close when pressing the Escape key
Fixes #2503
2023-05-25 23:24:00 +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
Pablo Correa Gómez
7f7b65545c all: meson: do not specify resources from gresource files as dependencies
Meson extracts them by itself and add them as dependencies for the target.
It means one less location to keep track of files, and a lot less boilerplate
around the meson files
2023-05-24 08:34:14 +00:00
Mpho Jele
483a5f3e8d user-accounts: Use AdwEntryRow for user full name 2023-05-17 11:14:29 +02:00
Felipe Borges
45931c783f user-accounts: Make Administrator row use info button widget
Instead of recreating the menu button and popover.
2023-05-16 13:32:21 +00:00
Felipe Borges
d586df5c87 user-accounts: Add a popover describing the autologin functionality
Fixes #2235
2023-05-16 13:32:21 +00:00
sunflowerskater
1300d4b2d7 add-user-dialog: Add popover explaining about the "Administrator" option
This change adds a GtkPopover to explain about the "Administrator" option like in the mockups below:
https://gitlab.gnome.org/Teams/Design/settings-mockups/-/blob/master/users/add-user.png
2023-05-10 09:37:04 +00:00
sunflowerskater
1ba63a360c user-panel: Add popover explaining about the "Administrator" option
This change adds a GtkPopover to explain about the "Administrator" option like in the mockups below:
https://gitlab.gnome.org/Teams/Design/settings-mockups/-/raw/master/users/users.png
2023-05-10 09:37:04 +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
e00f773b2f Remove unnecessary visibility change 2023-03-29 14:26:55 +13:00