Commit graph

242 commits

Author SHA1 Message Date
Felipe Borges
9d24aed45a network: Set adw_dialog_present as handler for saved_networks_row 2024-04-09 11:36:51 +02:00
Automeris naranja
08ea9efe77 wifi: Port "Saved Wi-Fi Networks" dialog to AdwDialog 2024-04-02 16:25:46 +00:00
Automeris naranja
fef18e73b6 qr-code-dialog: Port to AdwDialog 2024-04-02 16:03:43 +00:00
Felipe Borges
d1c3711fe6 network: Add CcWifiConnectionList.set_placeholder_text
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 !2418

Fixes #2574
2024-04-02 12:09:57 +02:00
Felipe Borges
f54558d58e wifi: Add translator comment to "Saved Networks" dialog 2024-02-16 09:50:20 +00:00
shruti2522
e289a8b3b6 wifi: pluralize string using ngettext 2024-02-16 09:50:20 +00:00
velsinki
9309b65f3d wifi: Change existing toast at each forget network
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.
2024-02-06 12:35:46 +00:00
velsinki
cbd2b7b988 wifi: Start using saved_networks_list more
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.
2024-02-06 12:35:46 +00:00
Matthijs Velsink
3a253bc4b1 general: Use g_clear_handle_id to remove GSources
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.
2024-02-06 09:22:07 +00:00
Felipe Borges
69a6abd0fa network: Make NetDeviceWifi use CcHostname to obtain the display name 2024-01-30 13:34:10 +00:00
velsinki
0b3c670ed4 wifi: Avoid critical warning for hotspot dialog
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
2024-01-08 09:38:55 +00:00
velsinki
99b42130b0 wifi: Fix crash when switching to other panel after forget network
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.
2023-12-19 09:33:26 +00:00
velsinki
794d8f5135 wifi: Move Saved Network mostly to .ui and clean up
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.
2023-12-19 09:33:26 +00:00
velsinki
74279db43f wifi: Clean up net-device-wifi
There is a lot of unused code for the saved networks dialog. We can
remove all of that.

We furthermore format the code a litte better.
2023-12-19 09:33:26 +00:00
velsinki
91771c4c31 wifi: Avoid casting of Adw and GTK types
This reduces some of the casting noise in the code.
2023-12-19 09:33:26 +00:00
velsinki
218adbd306 wifi: Fix crash on reopen of Saved Networks after forget
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.
2023-12-19 09:33:26 +00:00
velsinki
7a4869017e wifi: Fix "forget multiple networks" crash
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
2023-12-19 09:33:26 +00:00
Felipe Borges
fd4b45c84e wifi: Close "Saved Wi-Fi Networks" dialog when last item is removed
Otherwise we are left with an empty dialog again.

Fixes #2715
2023-11-13 10:58:50 +00:00
Felipe Borges
7e7cb4a2de wifi: Don't show "Saved Wi-Fi Networks" row when there's nothing to show
Fixes #2715
2023-11-13 10:58:50 +00:00
Ondřej Pohořelský
7f104fb9c8 network: remove wpa-none from key_mgmt
Network Manager dropped `wpa-none` value from `key_mgmt` a while ago[0]
There is no need to test for this option anymore.

[0]c97e0ce30b
2023-11-13 10:02:31 +00:00
Felipe Borges
8172f638e0 network: Show "Undo" toast when forgetting network in "Saved Wi-Fi Networks"
Fixes #2670
2023-11-02 11:22:18 +01:00
Marco Melorio
13c939659a misc: Fix incompatible type warnings 2023-10-12 10:09:44 +02:00
Felipe Borges
2397db38c3 network: Replace use of deprecated gtk_widget_hide
In favor of gtk_widget_set_visible
2023-10-03 11:41:07 +02:00
Ondřej Pohořelský
9d1af3de28 wifi: disable hotspot row when Wi-Fi is not active
There is no point in showing hotspot creation dialog when it can't
enable the hotspot without Wi-Fi adapter enabled.
2023-10-03 09:33:08 +00:00
Alice Mikhaylenko
5a3fd40bc8 network: Stop leaking the hotspot dialog 2023-08-25 08:00:43 +00:00
Alice Mikhaylenko
52f4919c94 network: Stop using AdwPreferencesWindow for the saved networks dialog 2023-08-02 12:51:48 +00:00
Felipe Borges
fd1ac377ae network: Use AdwSwitchRow for wifi device enable row
In commit 2a33247f52 the
cc_list_row_get_active() method got removed despite still being
used in the network settings. This was breaking our build.
2023-06-30 11:52:42 +02:00
Fareed
1b70d766d6 wi-fi: Move controls out of headerbar
Enable switch and dropdown taken out of header bar.
Follow order of Network mockups for row order. Wifi hotspot
remains here until full network panel redesign completed.

Fixes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2413
2023-06-12 19:40:04 -04:00
Fareed
eccc4d304e wi-fi: Add delete icon in saved connections list
Each connection now has a delete icon to forget a saved connection.
List can still be generated to include the checkbox to forget multiple.
Follows mockups for wi-fi panel. Add translation comments.
2023-06-07 22:58:37 +00:00
Gotam Gorabh
ad063dfa55 wi-fi:Updated Forget Connection dialog of saved networks with AdwMessageDialog
This changes update the Forget Connection dialog of saved networks
using AdwMessageDialog instead of GtkMessageDialog. And set Cancel
as a default responce instead of Forget to overcome accidental forget.
2023-04-11 11:56:05 +00:00
iampkumar02
27d5e7dd26 wifi: Center panel title when subtitle isn't visible
We used to have a custom title widget containing a label for the
title and another for the subtitle (status). When the subtitle label
wasn't visible, the title label wouldn't get centered vertically in
the headerbar.

By porting the custom title widget to AdwWindowTitle we get the title
centered for free.

Fixes #1891
2023-04-11 13:49:09 +02: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
Hendrik Müller
add2f0d2f7 wifi: Add QR code to share Wi-Fi networks
Many devices are able to scan a specifically formatted QR code to
connect to a wifi network.
To make sharing of wifi connections easier, it would be helpful to
display such a QR code in the wifi settings.

A button is added to the wifi connection row. This row is shown in
the general wifi settings panel, as well as in the "Known Wi-Fi Network"
dialog. Clicking the button opens an additional dialog, which shows the
QR code.
2023-02-14 19:11:07 -03:00
sunflowerskater
8e43d2c53d wi-fi: Rename "Known Networks" to "Saved Networks"
This change follows the latest mockups, which use the term "Saved Networks":
https://gitlab.gnome.org/Teams/Design/settings-mockups/-/blob/master/network/wifi-settings.png
2023-01-06 12:26:37 +00: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
Hendrik Müller
48497080b3 wifi: Fix bug in Known Wi-Fi Networks dialog
The "Forget" button would only update it's sensitivity after the first
select and deselect, when selecting and deselecting rows in the
"Known Wi-Fi Networks" dialog.
When selecting the first row, it would go from disabled to enabled.
Then deselecting that row would cause the button to go from enabled to
disabled.
Selecting any rows after that would no longer update the sensitivity and
make the dialog essentially useless.

The issue was, that the signals "add" and "remove" where being
expected to be emitted when the connection list updates its rows.
However, neither CcWifiConnectionList nor GtkListBox emit these signals.
The fix was, to emit these two signals at the appropriate locations.
The signals have also been renamed to "add-row" and "remove-row" to
make their purpose more clear.

Closes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1824
2022-08-03 11:05:16 +00:00
Hendrik Müller
c44ee6fa80 wifi: Add padding to Known Wi-Fi Networks dialog
The "Known Wi-Fi Networks" dialog is missing some padding to really
make it look polished.

By switching from a normal dialog to an AdwPreferencesWindow, we can
take advantage of libadwaita's automatic padding.
This will make sure the dialog is more in line with the rest of the
GNOME ecosystem.

Closes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1956
2022-08-03 09:18:39 +00:00
Hendrik Müller
f0890ca1b6 wifi: Allow accessing settings of known wifi networks
Currently it is only possible to access the settings for the currently
connected wifi network.
Being able to configure a wifi network, even though it is not connected,
would be useful for example to share the password for a network that is
not in range.

To achieve this, a new property was added to CcWifiConnectionRow.
The new property "known_connection" signals whether this connection is
known and thus whether the options button for configuring it should be
displayed.

The property "known_connections" will be set to TRUE in two cases:
- when the list of connections is shown in the "Known Networks" dialog
- when the connection is known, but not the active connection

Closes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1906
2022-07-06 19:34:56 +00:00
Robert Ancell
4159a5ca68 network: Replace deprecated nm_client_wireless_set_enabled 2022-06-20 02:29:39 +00:00
Robert Ancell
6911110111 network: Replace deprecated nm_client_deactivate_connection 2022-06-20 02:29:39 +00:00
Maximiliano Sandoval R
7cb4dc4ff0 network-wifi: Use ListBox in popover
This gives us the correct style on the popover.
2022-06-01 02:17:13 +00:00
Mohammed Sadiq
5855b661fe wifi: Fix to use the updated details to create hotspot
Let the callback to "response" signal run after the default
so that we use the updated details to create hotspot.
Otherwise, the changes made won't be used.

This is required as the default handler updates the connection
details in cc-wifi-hotspot-dialog.
2022-02-01 17:29:54 +00:00
Georges Basile Stavracas Neto
efbad6eb50 network: Port to GTK4
Boy this was hard.

To ease the pain of porting wireless-security to GTK4, add
a new WsFileChooserButton class that mimics the behavior of
a button that triggers a filechooser, as per the migration
guide suggests.

There were lots of GtkGrids, so the diff is particularly
horrendous. Sorry.

This needs serious testing before landing.
2021-12-14 22:34:21 -03:00
Robert Ancell
8ded3d956f network: Show spinner instead of delaying dialog
It's better to respond to the user immediately rather than delay the window opening.
2020-12-17 21:27:51 +00:00
Robert Ancell
a1e26cdac1 network: Set transient window from outside NetConnectionEditor constructor 2020-12-17 21:27:51 +00:00
Robert Ancell
25963ccf8c network: Fix small memory leak 2020-11-24 20:59:58 +00:00
Robert Ancell
e58a504174 network: Remove unused function prototypes 2020-11-24 20:59:58 +00:00
Robert Ancell
83925b3e41 network: Sort Wifi connections
Sort connected first, then configured, then by strength.

Fixes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/736
2020-11-08 20:06:42 +00:00
Dmitry Sharshakov
b31520ae8b Disable the button for hidded Wi-Fi when Wi-Fi is turned off 2020-09-25 03:35:56 +00:00
Bastien Nocera
eb79846c53 network: Fix missing prototype error
gnome-control-center/panels/network/net-device-wifi.c:1179:1: warning: no previous prototype for ‘nm_client_on_permission_change’ [-Wmissing-prototypes]
 1179 | nm_client_on_permission_change (NetDeviceWifi *self) {
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2020-09-16 10:11:48 -03:00