Commit graph

1190 commits

Author SHA1 Message Date
Felipe Borges
e6336ec433 network: Add ToastOverlay to connection-editor 2023-05-26 02:04:52 +00:00
Felipe Borges
3f482559ea network: Make "Import VPN from file" use GtkFileDialog
Since the gtk_file_chooser_dialog APIs are deprecated.
2023-05-26 02:04:52 +00:00
Felipe Borges
e580c309e8 network: Drop legacy vpn_export function
This was a leftover from the old connection-editor.
2023-05-26 02:04:52 +00:00
Ismael
497f599517 network-panel: fix crash when importing wrong vpn file 2023-05-26 02:04:52 +00:00
Pablo Correa Gómez
a2b9620b1b network: keep track of radio buttons in connection editor with action
Hooking to all the toggled signals from all the buttons for executing
the same action is inneficient, and can potenticall end up in a segmentation
 fault due to some race in the signal emmission, where the active button
 gets deactivated before the clicked button is activated

Looking at the GTK4 code, in a radio group:

- The button which was previously active gets de-activated, emitting its
corresponding toggled signal.
- The active property for the clicked button gets set.
- The clicked button emits its toggled signal.

Therefore, if the first toggle signal gets processed before the active
property is set, there can be a race condition. We are seeing this downstream
at pmOS: https://gitlab.com/postmarketOS/pmaports/-/issues/1816

Instead of this racy behavior, follow upstream recommendation and keep track
of the state through a stateful signal.
2023-05-24 08:54:06 +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
Emad Saadat
813a5f838c wi-fi: Remove extraneous list box in Airplane Mode group
and give parent AdwPreferencesGroup the id of rfkill_widget
to preserve previous behavior (hiding widget when no
airplane mode available).
2023-05-15 10:50:09 +00:00
Emad Saadat
216a7619b7 wi-fi: Have page contents clamped like other pages
Achieved by making the container widget for all other widgets
in the content section of the panel an AdwPreferencesPage and
having each group of widgets (e.g. the airplane mode toggle
and the stack that shows the list of wi-fi networks or a status
message) be in its own AdwPreferencesGroup.

Much along the lines of !1739 and !1740

Also fixes #2420
2023-05-15 10:50:09 +00:00
Automeris naranja
8dd0abeaa4 network: Rename "Other Devices" to "Bluetooth"
Fixes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2102
2023-05-04 09:54:49 +00:00
Automeris naranja
fe36282b26 network: AdwStatusPage consistency tweaks
Both Wi-Fi and Network panels shows a status page when Network Manager isn't running.
However, they don't use the same writing style:

- https://gitlab.gnome.org/GNOME/gnome-control-center/-/blob/gnome-44/panels/network/cc-wifi-panel.ui#L221
- https://gitlab.gnome.org/GNOME/gnome-control-center/-/blob/gnome-44/panels/network/cc-network-panel.c#L672

This change makes both status pages to use the same writing style.
2023-05-03 11:25:24 +00:00
Felipe Borges
58a0d8fd32 network: Add quotes to network name in Forget Connection dialog
See https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/1765#note_1726456
2023-04-20 17:30:55 +02:00
Felipe Borges
e3965a6586 wifi: Include network name in the Forget dialog
See https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/1701#note_1719089
2023-04-20 09:24:21 +00:00
Automeris naranja
9b940c27ca network: Use the "labelled-by" property to avoid repeating strings unnecessarily 2023-04-12 18:35:20 -03:00
Automeris naranja
fe5257bc9e general: Remove a11y labels when they aren't needed
A11y labels aren't needed when using the "activatable-widget"
property, because the relation is set automatically:

https://gitlab.gnome.org/GNOME/libadwaita/-/blob/main/src/adw-action-row.c#L661
2023-04-12 18:34:20 -03:00
Jonathan Kang
14b3652289 network/connection-editor: fix crash when removing a connection
This was caused by commit 6f1567f23.
2023-04-12 16:01:51 +08: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
Cyber Phantom
4b450409c5 wifi: Add a confirmation dialog when forgetting a connection
Destructive actions are supposed to have a dialog asking the user for confirmation.

This commit adds the confirmation dialog when user tries to forget a wifi network.

Fixes #2371
2023-04-11 11:28:26 +00:00
Felipe Borges
ff4394da40 Revert "cc-wifi-connection-list: Don't show empty listbox"
This causes the "Saved Networks" list to never show rows.

This reverts commit ba13ca1f4a.
2023-04-07 13:37:23 +00: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
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
Maksym Hazevych
d831e5cb48 Replace all occurrences of 'gtk_widget_show'
Replace all occurrences of 'gtk_widget_show(smth)' with
'gtk_widget_set_visible(smth, TRUE)'.
2023-03-29 14:26:55 +13:00
Lukáš Tyrychtr
ded85c5423 panels/wifi: Make the security status and signal strength read by screen readers
Before this MR, the signal level was not available at all, and the security
status only as an a11y description of an image. Now, these pieces of information
are part of the description of the item itself.
2023-03-28 08:18:27 +00:00
Cyber Phantom
524ffefdea cc-wifi-connection-list: Fix incorrect styling
There should be a space before opening parenthesis.
2023-03-24 21:28:45 +05:30
Simon Arlott
019cbc6a54 network: Increase maximum MTU value from 10000 to 65536
The maximum MTU value of 10000 is too low for USB Ethernet, which has a
maximum (for Linux USB gadgets) of 15412 bytes (although the upper limit
is the USB wMaxPacketSize which goes up to 4294967295 bytes):
  linux/drivers/usb/gadget/function/u_ether.c:#define GETHER_MAX_MTU_SIZE 15412

Multiple Intel NICs can use an MTU of 16110 bytes:
  linux/drivers/net/ethernet/intel/e1000/e1000_hw.h:#define MAX_JUMBO_FRAME_SIZE         0x3F00
  linux/drivers/net/ethernet/intel/e1000e/defines.h:#define MAX_JUMBO_FRAME_SIZE    0x3F00
  linux/drivers/net/ethernet/intel/igbvf/defines.h:#define MAX_JUMBO_FRAME_SIZE         0x3F00

The NetworkManager limit is 4294967295 bytes but this is unreasonable
in a typical enivornment because of the memory required for packets of
that size.

The maximum IPv4 and IPv6 (without using Jumbograms) packet size is 65535
bytes so increase the maximum MTU value to 65536 allow full size IP
packets to be used.

There is a corresponding change in network-manager-applet.
2023-03-24 01:47:09 +00:00
Mohammed Sadiq
c2e3de4086 network: proxy: Keep current mode when enabling proxy
Don't force 'automatic' proxy mode when the user enables proxy.

Closes #2401
2023-03-24 00:40:33 +00:00
Mohammed Sadiq
842438b6e1 network: proxy: Add a method to get selected proxy mode
Also replace the code with the method where it's used.
We shall use this elsewhere in the next commit
2023-03-24 00:40:33 +00:00
Cyber Phantom
ba13ca1f4a cc-wifi-connection-list: Don't show empty listbox
When there are no wifi networks, the wifi listbox is still visible as a thin line which doesn't look good.

Fix this by setting the visibility based on the number of networks.
2023-03-23 23:17:46 +00:00
Athul Iddya
09d8ab968d network: Validate max length of hotspot SSID
Added validation for maximum length of hotspot SSID, which cannot exceed
32 bytes. As this error might be unintuitive, an error message was also
added below the entry row similar to the password entry row. The error
messages are generic as some characters can require multiple bytes and
mentioning the byte limitation might be too technical.

Fixes #1065
2023-03-23 22:36:00 +00:00
Markus Göllnitz
98f7a40d24 multiple panels: show start title buttons in header bar
The start title buttons of the main window should be displayed if and
only if the end title buttons are. Only the left-most header bar should have
the start title button set and only right-most header bar the end title buttons.

Therefore, the title buttons property should be bound to the leaflet state:
When unfolded the start title buttons of the sidebar's header bar are
the only ones visible then, and not a second pair in the panel's header bar.
Likewise, in a folded state of the leaflet, the panel's header bar displays
all availble title buttons – start and end – as the panel is the only widget
displaying a header bar.

Signed-off-by: Markus Göllnitz <camelcasenick@bewares.it>
2023-03-16 13:18:37 +00:00
Bastien Nocera
2417cd5e6e wifi: Handle open networks in QR code
Fix empty dialogue when the current Wi-Fi network is an open network.

Closes: #2372
2023-02-27 20:00:15 +00:00
Hendrik Müller
0a5f0d16e3 wifi: Allow QR code dialog to be closed by pressing ESC
Being able to close the QR code dialog by pressing the ESC
key would be a handy feature.

By switching from GtkWindow to GtkDialog, the QR code
dialog is closed when pressing ESC.

Closes #2357
2023-02-25 13:00:15 +00:00
Georges Basile Stavracas Neto
b2363b6847 network: Improve QR code appearance
Replace the 'frame' style class with 'card'.
2023-02-14 19:52:47 -03: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
9b24810b80 wi-fi: Use AdwStatusPage for the "NetworkManager needs to be running" status page
The Wi-Fi panel displays an old fashioned status page when NM isn't running. Also, it shows a generic error message instead of explaining why the error occurred.

This commit updates this status page to an AdwStatusPage, Also, it makes clear that the error happens because of NM not running.
2023-02-10 13:43:43 +00:00
Aryan Kaushik
8a4a80b7b2 network: Disable DNS entry if the automatic option is enabled
Fixes: #2243
2023-02-07 22:51:45 +00:00
Georges Basile Stavracas Neto
284ff9fa0d network: Cosmetics 2023-02-06 10:38:43 -03:00
Gotam Gorabh
820a204853 wi-fi: updated stop hotspot dialog
This changes update the UI of current outdated stop hotspot dialog.
Using AdwMessageDialog instead of GtkMessageDialog to update it.

Fixes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2291
2023-02-06 13:34:23 +00:00
faultline
fee8351c67 network: Init editor when secrets are missing
When NetworkManager doesn't give us any secrets for a connection, the
connection editor still needs to be opened. This change ensures that
initialization of the editor completes even when there's an error when
fetching secrets.

Fixes #2329
2023-02-05 16:59:45 +00:00
Alynx Zhou
ebc986030d network: Make metered connection label a child of its check button
GtkCheckButton accepts a widget as its child and will toggle when
clicking its child, currently we put check button and label of metered
connection into a box, then clicking the label won't toggle the check
button, this differs from the other two check buttons.

This commit makes the label a child widget of the check button, so the
three check buttons behave the same.
2023-01-30 11:47:02 +00:00
Martin Pobaschnig
8c7a286511 network: Remove "close-request" signal handler for VPN file import dialog
When the dialog is closed using ESC key, the "close-request" signal is
emitted in addition to the "response" signal. When the "close-request"
is handled, it frees the memory to which info points. In the "response"
signal handler, the memory of info pointer is accessed again, leading
to a segmentation fault.

Fix this by removing the "close-request" function callback, which shares
the same behaviour as the "response" callback function.

Fixes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2320
2023-01-30 11:39:11 +00:00
Dylan Van Assche
571a69d36e
network: fix tabs/spaces mixing
Some functions were using tabs instead of spaces, unify the file to use spaces everywhere.
2023-01-27 18:39:19 +01:00
Dylan Van Assche
9b08433599
network: add missing cancellable
Add missing GCancellables to resolve the FIXME statements and
avoid possible crashes if the properties in NetConnectionEditor
outlive themselves.
2023-01-27 18:39:12 +01:00
Dylan Van Assche
3c4939bdbd
network: reapply connection on device
Changing an active connection applies the changes onto the
NetworkManager connection, but not on the device. This is because
NetworkManager clones the connection when it is applied on a device.
This behavior is expected and documented in the NetworkManager
documentation [1]. To effectively apply the connection changes onto a
device, a reapply operation must be performed. This will make NetworkManager
apply the new connection onto the active device without having to
disable and re-enable the device.

Perform this reapply operation when the Apply button is pressed in the
Connection Editor so the changes effectively propagate to the network
device.

[1] https://networkmanager.dev/docs/api/1.32.10/gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-method-org-freedesktop-NetworkManager-Device.Reapply
2023-01-27 18:39:07 +01:00
Christian Glombek
fcc092430f network: Mark imported VPN conn as private to user, and non-autoconnect 2023-01-16 20:35:02 +00:00
Christian Glombek
475faaf26b network: Add support for WireGuard (GNOME/gnome-control-center#982)
Adds support for managing WireGuard VPN connections:

- Listing WireGuard connections as VPN connections
- Toggling connection state
- Creating, updating and deleting WireGuard connections
- Creating, updating and deleting WireGuard peers
- Importing WireGuard config files

Co-authored-by: Nathan-J. Hirschauer <nathanhi@deepserve.info>
2023-01-16 20:35:02 +00:00
sunflowerskater
6bcfb28f67 wi-fi: Use AdwStatusPage for "Airplaine On" and "Wi-Fi off" states
Currently, the "Airplaine Mode On" and "Wi-Fi Off" status messages don't use AdwStatusPage.

This commit makes these messages to use AdwStatusPage.

Fixes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2217
2023-01-09 14:48:53 +00: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