The dialog gets destroyed when closing but it was only getting recreated
when g-r-d RDP credentials changed. Instead we should recreate the
dialog on demand, just like in desktop sharing.
HIG says that "Text generally shouldn’t end with a period.
This applies [...] text that is written as a complete sentence",
but the page description text isn't written as a complete sentence,
so the guideline isn't applicable in this case.
https://developer.gnome.org/hig/guidelines/writing-style.html
When using the copy buttons from Desktop Sharing/Remote Login pages,
the toasts don't show that the values were copied to the clipboard,
unlike in System > Secure Shell/About > System Details, for example.
So, fix this inconsistency.
At init it will verify whether the panel can be constructed in the
check_desktop_sharing_available call, and with that hide/show the
panel accordingly.
Fixes#2955
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
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
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
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.
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
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.
- 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
- 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
- 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
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.
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
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.
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
- 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
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
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
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.
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
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`.
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