Commit graph

83 commits

Author SHA1 Message Date
Jonathan Kang
f0d04a180f network-connection-editor: Close the editor when nm-connection-editor exits
Previously, when editing a connection that doesn't have native editor
support, nm-connection-editor is spawned to do the work. But after
closing nm-connection-editor, an empty editor dialog still exists.

Fix that in this commit.
2023-11-29 10:28:18 +00:00
Florian Müllner
38cac20497 network: Handle BT device connections ourselves
Bluetooth connections are among those that we still delegate to
nm-connection-editor. Luckily they are fairly simple connections
without any options on their own, so the built-in connection editor
can handle them just fine.

https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1157

Part-of: <https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/2044>
2023-11-21 13:38:32 +00:00
Ondřej Pohořelský
88ce1f97b3 network: show details page when creating new connection
Resolves #2536

When creating new vpn/wired connection, the user doesn't have a choice
to change `Make available to other users` option. This commit adds it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/1996>
2023-11-05 08:59:11 +00:00
Maximiliano Sandoval R
4ee4fa3428 network: Port connection editor to AdwWindow
GtkDialog is deprecated. We also took the opportunity to use AdwToolbarView.

See https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2624.
2023-10-23 14:25:12 +00:00
Maximiliano Sandoval R
92d0a5d50c network: Port add VPN connection to action rows
By using action rows we can actually use the boxed-list class.
2023-10-23 14:25:12 +00:00
Michael Catanzaro
6219cbdca5 network: fix editing connections without a device
For example, fix adding new VPN connections.

In 60b4956c05 I correctly observed that we
need to not run code that requires a device when there is no device.
NetConnectionEditor is a multipurpose dialog and self->device is
optional when creating the dialog. E.g. when modifying VPN
configuration, we update just the configuration, not an NMDevice.

However, I added this check too soon, before updating the connection
configuration. We need to update the configuration first, then only bail
before proceeding to update the device, not sooner.

Fix #2668
2023-10-03 11:03:06 +00:00
Michael Catanzaro
be535df39b Don't warn about failure to apply changes on inactive device
If the NMDevice is not active (i.e. if we are editing a connection that
is not active) then don't warn when failing to reapply changes to the
device. That's expected and not something we should warn about.

We could perhaps not even try, but the device could become inactive
between the time of our check and this error, so better ignore the error
regardless.
2023-08-30 08:44:55 +00:00
Michael Catanzaro
60b4956c05 network: don't try to update device if it doesn't exist
All of the following code assumes that self->device is valid, so we need
to skip over it. It's confusing, but this is a multipurpose dialog and
self->device is optional when creating the dialog. E.g. when modifying
VPN configuration, we update just the configuration, not an NMDevice.
2023-08-30 08:44:55 +00:00
Michael Catanzaro
3f6737dbf7 network: fix criticals when updating connection
If the operation is cancelled (because the dialog was closed, because
the Apply button was pressed), then trying to make further use of the
source_object is a use after free, which is bad. At first I tried to fix
this by simply avoiding the use after free when the operation is
canceled, but then I realized it is ridiculous to always try committing
connection changes when closing the dialog, then immediately cancel the
operation by destroying the dialog.

So instead I've decided to not pass the cancellable along to these
operations, and instead ref the dialog to keep it alive until the
operations complete. Instead, let's just hide the window.

This commit also removes an inaccurate comment /* Leave the editor open
*/ placed right before the call to the function that hides the editor.
There's no need to leave the editor open when updating the device fails.
The connection properties at least are still saved.

Fixes #2618
2023-08-30 08:44:55 +00:00
Lukáš Tyrychtr
b706f1261b network-connection-editor: Fix a keyboard trapped on the Cancel button when adding a VPN connection
It required two changes:
* Setting the stack page only after all pages are initialized
* And removing the VPN choices list from its bin only after that
2023-06-30 09:37:21 +00:00
Felipe Borges
b80f154f80 network: Close Connection Editor dialog when clicking Apply button
Fixes #2499
2023-05-31 08:15:32 +00:00
Felipe Borges
e6336ec433 network: Add ToastOverlay to connection-editor 2023-05-26 02:04:52 +00: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
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
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
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
Lubomir Rintel
6c26647154 network: replace wireless-security with libnma's NMAWs
panels/network/wireless-security is essentially an old fork of the part
of nm-connection-editor that is now part of libnma.

The UI elements provided by libnma adhere to the same look as the rest
of gnome-control-center for quite some time now. The functinality they
implement the same functionality and more. In particular, libnma uses
Gcr to provide Smart Card access for keys and certificates.

https://bugzilla.redhat.com/show_bug.cgi?id=1992836
2022-11-30 13:40:09 +01:00
Christian Glombek
0fbe2ada5a network/ce: Provide error tooltip in connection editor
Pass through localized libnm error messages as tooltips
to the apply button. That way, users can easily identify
configuration errors.
2022-06-20 23:37:44 +00:00
Jonathan Kang
6f1567f236 network/connection-editor: destroy the editor when closing
If an user opens an connection editor and then closes it, repeat this
multiple times causes lots of unused hidden editor windows.

Fix that by destroying the connection editor instead of hiding them
when closing.
2022-03-18 21:37:48 +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
aef13948eb network: Remove duplicate list
We can just iterate over the GtkNotebook - no need to mantain a list of pages.
2020-12-17 21:27:51 +00:00
Robert Ancell
362548fbd1 network: Don't explicitly disconnect signals that are automatically disconnected. 2020-12-17 21:27:51 +00: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
5b14e16e9c network: Connect signals with g_signal_connect_object in swapped form 2020-03-30 16:18:50 +13:00
Robert Ancell
7ea59681e9 network: Remove unused method 2019-11-06 22:04:15 +13:00
Robert Ancell
eb0bac874c network: Convert CEPage widgets to GtkTemplate 2019-11-06 22:04:15 +13:00
Robert Ancell
eb7372d83b network: Move connection reference outside of CEPage 2019-11-06 22:04:15 +13:00
Robert Ancell
fc25e17a9f network: Replace GtkNotebook with GtkStack 2019-11-06 22:04:15 +13:00
Robert Ancell
eb4e124b04 network: Get connection editor root widget from a virtual method 2019-11-06 16:36:55 +13:00
Robert Ancell
d327e20a10 network: Replace GObject boilerplate with modern macros 2019-11-06 16:36:06 +13:00
Robert Ancell
6ab75da5c6 network: Use g_clear_pointer 2019-11-06 10:16:20 +13:00
Robert Ancell
708b1fdaf7 network: Use self variable name consistently 2019-10-22 20:11:45 +00:00
Robert Ancell
54f8fce47f network: Connect signals in swapped form 2019-10-22 20:11:44 +00:00
Robert Ancell
e70610fe74 network: Use g_autoptr for unref code 2019-09-13 14:20:50 +12:00
Robert Ancell
de84f7e344 network: Use g_autofree for strings 2019-09-13 14:20:50 +12:00
Robert Ancell
01190db349 network: Use g_autoptr for GError handling 2019-09-13 14:20:50 +12:00
Adrien Plazas
91af270cce connection-editor: Use GtkTemplate 2019-01-27 21:03:13 +00:00
Benjamin Berg
417624cdab wifi: Fix invalid variant unref in connection editor
If the WiFi secret is not set, then a NULL variant is passed back. We
should not free this variant. Fix this by using g_autoptr instead.
2019-01-07 15:28:38 +01:00
Benjamin Berg
c2f601a9d4 Move common panel code from shell/ to panel/common
This creates a new static library called libwidget which the shell links
against.
2018-04-17 15:26:59 +02:00
Benjamin Berg
72ef675a36 network: Fix warning about missing cast to GtkWidget*
https://bugzilla.gnome.org/show_bug.cgi?id=794171
2018-03-12 16:15:19 +01:00
Scott Cohen
87c69ed955 network: Fix typo in error message
Replaced "conneciton" with "connection" (both without quotes) in
panels/network/connection-editor/net-connection-editor.c:860.

https://bugzilla.gnome.org/show_bug.cgi?id=785100
2017-08-18 11:36:21 -03:00
Georges Basile Stavracas Neto
18a42a00b8 network: Move Security page to the end
Per the mockups at [1], the Security page is the last
visible page.

This patch also adds a small code refactoring to avoid
multiple string comparisons.

[1] https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/system-settings/network/aday2/network-wires.png

https://bugzilla.gnome.org/show_bug.cgi?id=779841
2017-06-14 16:41:10 -03:00
Georges Basile Stavracas Neto
8137036675 network: Drop Reset page
Following the latest mockups [1], the "Forget" button
is now available in the Details page, and the Reset page
is gone.

This patch then removes the Reset page, and moves the
functionality to the Details page.

[1] https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/system-settings/network/aday2/network-wires.png

https://bugzilla.gnome.org/show_bug.cgi?id=779841
2017-06-14 16:41:10 -03:00
Georges Basile Stavracas Neto
b62ed2f87b network: Rely on notebook tabs to switch connection editor pages
Instead of using a sidebar, which is what the current implementation
uses to switch pages, the latest mockups [1] rely on the notebook
tabs.

This patch then updates the connection editor dialog to use the
notebook tabs as the page switcher widget.

[1] https://github.com/gnome-design-team/gnome-mockups/blob/master/system-settings/network/aday2/network-wires.png

https://bugzilla.gnome.org/show_bug.cgi?id=779841
2017-06-13 10:40:03 -03:00