Commit graph

46 commits

Author SHA1 Message Date
Automeris naranja
4de79c9694 remote-desktop-page: Minor UI changes to the "Encryption Fingerprint" dialog
Make this dialog design closer to what mockups
show[1] by:

- Removing window default-width/height,
so the window size follows the content size
- Using a compact AdwStatusPage
- Using larger fingerprint label horizontal margins
and reducing vertical ones

Also:

- Port the window to AdwToolbarView, which
makes the close button position to be consistent
with other windows
- Allow closing the window with ESC
- Add window size request properties to improve
adaptiveness

[1] cbb4810936
2024-03-12 00:46:21 +01:00
Automeris naranja
329e8c8fae remote-session-page: Fix to avoid a string freeze break
A previous commit[1] attempted to prevent "How to Connect"
section string from being translated twice[2].
Desktop Sharing and Remote Login pages have this same
string, but the latter was missing a period at the
end of the phrase, which caused the duplicated issue.

The commit[1] didn't fix the issue entirely, because
the string from the Desktop Sharing page was using
a different apostrophe symbol than the Remote Login page
counterpart (which is the recommended apostrophe symbol
acc. to HIG[3]).

Fix the issue by using the same apostrophe symbol mentioned
above in the string from the Remote Login page. This will
cause the translation from the Desktop Sharing string to be
reused, thus a string freeze break won't happen.

See also: https://gitlab.gnome.org/Teams/Translation/Coordination/-/issues/133

[1] b4131d3b0a
[2] https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2936
[3] https://developer.gnome.org/hig/guidelines/typography.html
2024-03-04 12:22:39 -03:00
Automeris naranja
b4131d3b0a remote-session-page: Add missing period to a phrase
The description text from the "How to Connect" session
doesn't end with a period, unlike the same description
that is located in the Desktop Sharing page[1]. This
unnecessarily duplicate the strings in Damned Lies
and creates an inconsistency.

Add a period to that description text to fix the issue.

[1] https://gitlab.gnome.org/GNOME/gnome-control-center/-/blob/46.rc/panels/system/remote-desktop/cc-remote-session-page.ui?ref_type=tags#L42

Closes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2936
2024-03-04 05:05:34 +00:00
Ray Strode
857265c250 system, remote-desktop: Set port row insensitive when appropriate
Right now we set a subtitle of "" when the port is invalid. This
leads to the "Port" title getting center aligned vertically.

We also keep the port sensitive even when it's empty and there is
little value in copying it.

This commit changes the subtitle to " " so it serves as a
placeholder to keep the "Port" title top aligned. This commit
also makes the port insensitive in that case so the user never
copies the placeholder space.

Closes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2934
2024-03-03 09:26:52 -05:00
Ray Strode
aa99ca5b5b system, remote-desktop: Set port row insensitive when appropriate
Right now we set a subtitle of "" when the port is invalid. This
leads to the "Port" title getting center aligned vertically.

We also keep the port sensitive even when it's empty and there is
little value in copying it.

This commit changes the subtitle to " " so it serves as a
placeholder to keep the "Port" title top aligned. This commit
also makes the port insensitive in that case so the user never
copies the placeholder space.
2024-03-03 09:26:40 -05:00
Automeris naranja
bb604ad9dd remote-desktop-page: Decrease AdwBreakpoint max-width
650p is way too much and makes the bottom bar to
appear when there is still space available in
the headerbar. Use 450p so the bottom bar will only
appear when the headerbar doesn't have enough
space available.

Follow-up from a4224d9e21
2024-03-02 23:07:35 -03:00
Automeris naranja
a4224d9e21 remote-desktop-page: Use AdwBreakpointBin
When the window width is small, the view switcher
labels get very ellipsized, making them difficult
to read.

Use AdwBreakpointBin to show the view switchers
at the bottom at the page (like in the Mouse & Touchpad
panel) when the window width is small.
2024-03-02 22:50:01 -03:00
Automeris naranja
d9be89a5de remote-desktop: Fix page contents being cut when window is small
- Use halign correctly ("left" and "right" aren't
valid values) and use hexpand in the
"Verify Encryption" button, since halign needs
hexpand set to "true"

- Ditch the spacer box, as it causes the page contents
to not scale correctly when the window width is small

- Add can-shrink property to "Generate New Password" and
"Verify Encryption" buttons so they can shrink when
the window width is small

- Also, set the margin-top only in the GtkBox to avoid
redundancy

Closes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2933
2024-03-02 22:49:45 -03:00
Automeris naranja
e84623473c remote-session-page: Several small fixes
- Fix the activatable-widget from port_row,
which was pointing to copy_address_button

- Remove a11y labels from copy buttons
because Orca also reads tooltips

- Remove .property style class from entry rows
since this class is only meant to be used
in AdwActionRow and AdwExpanderRow[1]

- Set the copy buttons as suffix widgets
directly, because wrapping them in a GtkBox
is unnecessary

- Fix indentation

[1] https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/style-classes.html#property-rows
2024-03-02 19:58:47 -03:00
Automeris naranja
7ec7e98df6 desktop-sharing-page: Several small fixes
- Fix the activatable-widget from port_row,
which was pointing to copy_address_button

- Remove a11y labels from copy buttons
because Orca also reads tooltips

- Remove .property style class from entry rows
since this class is only meant to be used
in AdwActionRow and AdwExpanderRow[1]

- Set the copy buttons as suffix widgets
directly, because wrapping them in a GtkBox
is unnecessary

- Fix indentation

[1] https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/style-classes.html#property-rows
2024-03-02 19:58:39 -03:00
Ray Strode
2f66bd7ab5 system, remote-session: Stop critical if no fingerprint
The code currently assumes that if the fingerprint is non-null it's
valid, but gnome-remote-desktop can also set the fingerprint to an
empty string if there's no certificate yet.

This commit makes sure to handle both NULL and empty fingerprints.
2024-03-02 17:43:48 +00:00
Ray Strode
f3b966ba5b system, remote-session: Fix fingerprint dialog when first setting user/pass
If the username and password get set then the certificate fingerprint
isn't updated even if that lets the service start.

This commit fixes things by doing a round trip through the service after
setting the username/password to

1. Make sure the change actually worked
2. Trigger our fingerprint dialog setting code that currently only runs
on reading username/password
2024-03-02 17:43:48 +00:00
Ray Strode
10ac3e8440 system, remote-desktop: Add Generate New Password button
The designs for remote desktop include a generate password
button, so this commit adds one.
2024-03-02 11:10:54 -05:00
Felipe Borges
b001b2dde5 system, remote-desktop: Add "Remote Session" settings
See 85110609cd/remote-desktop/remote-desktop.png
2024-03-02 11:10:54 -05:00
Felipe Borges
524742acec system, remote-desktop: Update strings and styling for "Desktop Sharing"
Following the updates on the mokcups at
85110609cd/remote-desktop/remote-desktop.png
2024-03-02 10:58:35 -05:00
Ray Strode
4b35dd5b8c system, remote-desktop: Generate D-Bus proxy code for gnome-remote-desktop
We'll need this to query the status of the service for
Remote Session support.
2024-03-02 10:54:18 -05:00
Ray Strode
cf39376cca system, remote-desktop: Add new polkit policy
Remote session support needs to be able to start systemd units
and also manage gnome-remote-desktop.

This commit adds a polkit policy to accomodate both subactions
with one overarching action that only needs to be unlocked one time.
2024-03-02 10:54:18 -05:00
Felipe Borges
aee53419f5 system, remote-desktop: Add CcEncryptionFingerprintDialog widget
So that we can reuse the same widget in both Desktop Sharing and
Remote Login pages.
2024-03-02 10:54:18 -05:00
Felipe Borges
71f9073c9a system, remote-desktop: Split Desktop Sharing on its own class 2024-03-02 10:54:18 -05:00
Felipe Borges
b82edb7621 remote-desktop: Consolidate the "Desktop Sharing" term
This change will update the UI and internal reference names to use
the "Desktop Sharing" term, which refers to sharing a user's screen
with remote connections.

This differentiation is being introduced now so that we can avoid
conflict with "Remote Session", which will refer to headless/dedicated
remote desktop sessions.

Mockups
https://gitlab.gnome.org/Teams/Design/settings-mockups/-/raw/master/remote-desktop/remote-desktop.png

See #2827
2024-03-02 10:54:18 -05:00
Felipe Borges
9c94d55505 system: Rename subpage tags to their expected cmdline arguments 2024-02-22 09:57:01 +00:00
Sam Hewitt
a5f6efaddb Update and clean up symbolic icon assets
- 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
2024-02-10 16:17:35 +00:00
Monster
1b339a8d72 system: Remove periods from subtitles and labels 2024-02-05 10:55:18 +00:00
Felipe Borges
484866e27e system, wwan: Depend on gcr4 2024-01-31 10:38:07 +01:00
Felipe Borges
196987d7ad system, remote-desktop: Use a single rdp_settings object
A GSettings object was being created in multiple places when that
could be simplified.
2024-01-31 09:37:20 +00:00
Felipe Borges
590513352a system, remote-desktop: Don't show the panel when backend is unavailable
Let's not show the page neither crash when there are issues with
finding the remote desktop gsettings in the system, or when the
RemoteDesktop name didn't appear on dbus.

Fixes #2874
2024-01-31 09:37:20 +00:00
Felipe Borges
61dd1b2adf system, remote-desktop: Remove sharing proxy connection
This is a leftover from the previous implementation in the Sharing
panel and has no use here.
2024-01-31 09:37:20 +00:00
Felipe Borges
270347e66c system, remote-desktop: Use CcHostname to get the host display name 2024-01-30 13:34:10 +00:00
Automeris naranja
a2c245fc1a remote-desktop-page: Add missing mnemonics 2024-01-23 11:09:19 +00:00
Hari Rana
aa479a3bc5 remote-desktop: Port to AdwSwitchRow 2024-01-18 13:13:11 +00:00
Felipe Borges
e5568573d3 system, remote-desktop: Use "rdp" instead of "ms-rd" for hostname url
According to
https://learn.microsoft.com/en-us/windows-server/remote/remote-desktop-services/clients/remote-desktop-uri
"The ms-rd URI scheme is currently only supported with the Windows
Desktop client (MSRDC)."

Apps such as GNOME Connections and Remmina expect server hostname
addresses using the "rdp" url scheme prefix.

See also
https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2827#note_1963502

Fixes #1922
2024-01-09 13:45:06 +00:00
Felipe Borges
8da25aaef5 system: Replace dynamic System row subtitles with static text
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
2024-01-04 11:38:47 +00:00
Automeris naranja
21d93d19df remote-desktop-page: Use an en dash in the page description 2024-01-02 08:44:15 +00:00
Automeris naranja
4d6c32c187 remote-desktop-page: Add period to the page description phrase
I forgot this in !2095.

Mockups:
https://gitlab.gnome.org/Teams/Design/settings-mockups/-/blob/master/remote-desktop/remote-desktop.png
2023-12-21 09:25:57 +00:00
Automeris naranja
163791a08a remote-desktop-page: Tweak the page description
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.
2023-12-15 10:51:35 +00:00
Felipe Borges
affa60edcf Revert "system: Replace dynamic System row subtitles with static text"
This reverts commit ea224c4045.

This was accidentally included in another MR.
2023-12-05 15:17:11 +01:00
Felipe Borges
ea224c4045 system: Replace dynamic System row subtitles with static text
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
2023-12-05 14:07:13 +00:00
Felipe Borges
3a40e95dcf system: Bind Remote Desktop gsetting state to widgets
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`.
2023-11-30 12:38:14 +00:00
Felipe Borges
80d476d9d7 system: Update subtitle of Remote Desktop row earlier
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
2023-11-30 12:38:14 +00:00
Automeris naranja
85403f7563 remote-desktop-page: Add link to instruct how to use remote desktop
As shown in the following mockups:
https://gitlab.gnome.org/Teams/Design/settings-mockups/-/blob/master/remote-desktop/remote-desktop.png

Part-of: <https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/2045>
2023-11-20 02:43:46 +00:00
Automeris naranja
1d5045a5b8 remote-desktop-page: Add tooltip to copy buttons 2023-11-13 10:28:33 +00:00
Automeris naranja
bbf3e35c4b remote-desktop-page: Add missing mnemonics
Partially fixes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2541
2023-11-13 10:28:33 +00:00
Felipe Borges
91057652d4 system/remote-desktop: Initialize GCancellable and cancel it page dispose
Fixes #2733
2023-11-13 08:57:07 +00:00
Maximiliano Sandoval R
0ead2414d7 remote-desktop-page: Give pill style to button
Part-of: <https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/2000>
2023-11-06 15:20:05 +00:00
Felipe Borges
79f1b84964 system: Show page summaries as row subtitles in the main page
Per mockups in
https://gitlab.gnome.org/Teams/Design/settings-mockups/-/raw/master/system/system-panel.png

This adds a thin abstract CcSystemPage object with a "summary" property.

Each CcListRow::subtitle is binded to its corresponded
CcSystemPage::summary.

See #2241
2023-11-02 12:15:11 +00:00
Gotam Gorabh
34fcaa0654 system: Add 'Remote Desktop' panel to system panel
See #2241
2023-11-02 12:15:11 +00:00