NetworkManager 1.46.0 added support for "stable-ssid" for cloned mac,
which generates a stable MAC address based on SSID for each network.
This got accepted as the new default for Fedora 40, see
https://fedoraproject.org/wiki/Changes/StableSSIDMACAddress and
https://pagure.io/fesco/issue/3135.
However, there is no support for the connection editor for this value,
meaning if "stable-ssid" is set, changes to a WiFi network can't be
applied.
Fix this by adding support for "stable-ssid". Essentially based on
network-manager-applet!143
(network-manager-applet@202149c0843510a944afe2257cf56fbb7b4d2ef9).
Closes#2852
This allows for CcWifiConnectionList to be reused in different locations
where the placeholder might differ.
For example, the main wifi connections list vs. the saved network
connections (forget dialog).
See !2384, !2397, and !2418Fixes#2574
"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.
The Proxy row shows its value as subtitle, which is
inconsistent with other rows where the subtitle describes
the row title/what the row is.
Show the proxy value as a CcListRow secondary-label to fix
such issue.
Reference:
cfb7cae4a9
- Make all buttons as suffix widgets,
which makes unnecessary to wrap them in
a GtkBox that is set as a suffix widget
- Don't set a margin end to the Wi-Fi
icon[1]
- Remove halign from the buttons, because
it isn't necessary
- Remove halign from the buttons, as it
isn't necessary because halign works only
if hexpand is set to TRUE
- Add margin end to the spinner so it
doesn't appear misaligned with the other
widgets at the end of the row
[1] In latest mockups, the margin between
the Wi-Fi icon and network name is also
shorter: cfb7cae4a9
- 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
Merge request !2093 fixed 3 crashes in the Saved Networks Dialog, but
unfortunately added another one. Upon undoing an AdwToast after deleting
a network, Settings crashes.
Furthermore, the title of the toast is quite verbose, meaning it often
gets ellipsized. Also, deleting many networks is somewhat annoying
because many toasts get generated. Since only the latest toast is saved
in the NetDeviceWifi, mixed dismissing and undoing of multiple toasts
doesn't work properly either.
We fix all these issues by having only one toast, that either says
"Network deleted" or "%d networks deleted". The networks are kept in a
GPtrArray, for which the free function is set to either really forget
the networks or to undo forgetting them.
Commit 99b42130 introduced the `saved_networks_list` struct member, so
we do not need to set and get a "list" variable on the rows anymore
since they already contain the NetDeviceWifi.
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.
This required some archeology: 52d28579 introduced virtual device
support. This was done by getting the virtual device name and testing if
that was `NULL`. Then came 8861d440, which removed virtual devices, but
did not revert fully to the behavior before 52d28579. Combined with
9183d349, this meant that any VPN that has an interface name set, will
never be displayed.
Fix this by reverting to the behavior before 52d28579, while keeping
wireguard support. The added check from ddc35609 is left in, although it
is not clear to me if that is still needed.
Fixes#2822
- Change "Options" to "Network Options" to
provide more context
- Remove the a11y label, which is redundant,
because this button already have a tooltip (the
screen reader also reads tooltips)
- Rename "Show QR Code" to "Share Network",
since the latter is is the proper name of
this action
- Change "Options" to "Network Options" to
provide more context
- Add tooltip to the forget network button
- Removes a11y labels from buttons that already
have tooltips, since the former is redundant
due to the fact that the screen reader reads
tooltips
The CcWifiHotspotDialog is derived from GtkDialog, which is floating.
The floating reference is destroyed on closing the main window, before
the NetDeviceWifi is disposed. This causes a critical warning when the
NetDeviceWifi dispose does run, since it tries to destroy a now
non-existent window.
Fix this by sinking the floating reference, and unreffing it in the
NetDeviceWifi dispose function.
Fixes#2823
Similar to the previous crashes, if you switch panels after forgetting a
network while the toast is still alive, Settings crashes. This is
because the AdwToastOverlay is not properly disposed because the Saved
Networks dialog is also not destroyed.
However, destroying the saved networks dialog still leaves a crash,
because the overlay disposal first unreferences its child, but we still
need that for the dismissal of the waiting toasts. Therefore, we keep an
extra reference to the saved networks list.
To prevent further crashing, we cannot set "list" to NULL, because there
may be multiple async calls. Also, we have to keep a reference to self
in the async call, otherwise it does not work when you remove many
networks and then switch panels.
As an added bonus, we can now use the saved networks list inside the UI
refresh function.
It is cleaner to define the dialog in a .ui file. Moreover, since we are
initializing the main Visible Networks list in the code, we can
initialize the Saved Networks list in the same location, in the same
style.
When a network is forgotten from the Saved Networks dialog and the
dialog is closed, the toast remains active. However, when you then
quickly reopen the dialog, a new CcWifiConnectionList gets made, which
causes a crash when the toast expires or is dismissed, as the row for
the toast has now become invalid.
Fix this by only setting up the CcWifiConnectionList for saved networks
once.
When forgetting more than one network from the Saved Networks dialog,
there are multiple overlapping toasts. When the first toast expires or
is dismissed, the underlying CcWifiConnectionList is already thawed,
meaning previous rows get cleaned up and new ones generated. When the
next toast then expires or is dismissed, this results in a crash, as the
row belonging to that toast is now invalid.
Fix this by freezing the connection list earlier.
Fixes#2793
Commit ef644deb made the routes labels for the IPv4 and IPv6 center
properly. However, when stretching the dialog, this centering is lost
because the labels do not horizontally expand.
So let's make all of them horizontally expand.
In the previous commits we added scrolled windows on all pages, these
scrolled windows propagate their natural size and hence the dialog will
try to present itself with that size.
By having all pages inside of a scrolled window we can now use the
connection editor on mobile devices.
Fixes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2764