Commit graph

312 commits

Author SHA1 Message Date
Automeris naranja
5f605c4d28 network: Use AdwViewStack
Doing so, the "Network Unavailable" status page can be set
in cc-network-panel.ui, as .ui files are the appropriated
place to put UI stuff as much as possible.

Also, remove cc-network-panel.c from POTFILES.in, as there
are no translatable strings in that file anymore.
2024-04-26 18:48:39 +00:00
Automeris naranja
1f0da3ca65 network: Use a placeholder widget in the VPN list box
Using a GtkStack isn't necessary to display the "Not set up"
row. Instead, use a GtkListBox placeholder widget in the main
VPN list box.

This improves consistency with the placeholders from "Privacy >
Location/Camera/Microphone" when there are no apps; same thing
in "Search > Search Locations > Custom Locations" when no custom
locations were added.

https://docs.gtk.org/gtk4/class.ListBox.html#gtklistbox-as-gtkbuildable
2024-04-15 13:06:21 +00:00
velsinki
9716575162 network: Fix missing VPN entries
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
2024-01-30 17:02:00 +00:00
Marcos Miller
5e27373700 network: Show top buttons on unsupported network daemon page
When entering the network panel without the network daemon,
the window decoration buttons do not appear because the whole panel
content was overwritten by an AdwStatusPage.

Now only the content of the AdwToolbarView is changed, preserving
the AdwHeaderBar and buttons.

Fixes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/2695
2023-11-24 10:49:08 +01:00
Alice Mikhaylenko
4680f362f3 Port to AdwNavigationSplitView 2023-08-25 08:00:43 +00:00
Christopher Davis
b28d10d60d network: Port to Adw{Navigation,ToolbarView}
See previous commits for details on the widgets.

This commit ports the network panel to these new widgets.
In addition, it moves the switch to enable the proxy into
a row within the proxy page itself, following the latest
mockups.
2023-08-25 08:00:43 +00:00
Robert Ancell
256e52b0f7 network: Fix name of parent class variable 2023-06-06 07:54:38 +00:00
Robert Ancell
89c054a31b network: Do signal handlers in swapped form 2023-05-30 08:36:22 +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
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
Mohammed Sadiq
2b3de01124 network-panel: Use AdwStatusPage to show NetworkManager error
This commit also fixes missing header bar when the error is shown
2022-12-01 01:38:44 +00:00
Mohammed Sadiq
500af8e63a network: Use the new proxy widget 2022-11-15 12:33:51 +00:00
Christopher Davis
41cc608721 network: Use AdwPreferences{Page,Group} for network panel
Uses AdwPreferences{Page,Group} where possible.
net-device-ethernet has been changed into an
AdwPreferencesGroup subclass itself.
2022-02-04 17:54:25 +00:00
Christopher Davis
ffeec81f0e network: Use AdwActionRow for NetDeviceBluetooth
Similar to the last commit, we can use a regular
GtkListBox and make the device widget an AdwActionRow.
2022-02-04 17:54:25 +00:00
Christopher Davis
de16d7bb39 network: Use AdwActionRow and GtkListBox for vpn list
Previously the widget was using a hack to show
separators and had a row nested in a listbox,
nested in a box. Instead of having a custom setup
to work around not haveing a listbox, we can use a
listbox.

See: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1587
2022-02-04 17:54:25 +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
Mohammed Sadiq
169f537e4b network: Don't show modems supported by cellular panel
Cellular panel is already handling it
2021-08-13 19:25:41 +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
15717be456 network: Correctly detect when ethernet devices are hotplugged.
Fixes https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/995
2020-11-19 23:32:16 +00:00
Carlos Garnacho
2ff526ecfb network: Update VPN empty label status after removing VPN connection
Being the VPN list actually a collection of listboxes, this function
ensures it looks alright in other places. However the case of removing
all VPN connections till we're back empty was missed.
2019-12-12 23:06:45 +01:00
Robert Ancell
36449d60c7 network: Convert NetDeviceEthernet, NetDeviceBluetooth and NetDeviceMobile to GtkTemplate
This means NetObject is now obsolete and can be removed.

There was a GtkSizeGroup that the mobile settings used, but it isn't clear if
this is still relevant. It should be added back later if found to be (this code
is likely to be removed to make way for a dedicated mobile panel).
2019-11-06 10:40:23 +13:00
Robert Ancell
a75dbf033c network: Make NetVpn constructor consistent with other constructors 2019-11-06 10:40:23 +13:00
Robert Ancell
93a269f8df network: Convert NetVpn to GtkTemplate 2019-11-06 10:40:23 +13:00
Robert Ancell
b3e372becd network: Convert NetProxy to GtkTemplate
This whole widget was added to a size group with some elements of the mobile
devices. This seems a mistake, but can be added back later if found to be
necessary.
2019-11-06 10:40:23 +13:00
Robert Ancell
a39ebd5bda network: Remove net_object_get/set_title 2019-11-06 10:40:23 +13:00
Robert Ancell
2752f38a72 network: Remove net_object_emit_removed 2019-11-06 10:40:23 +13:00
Robert Ancell
577762b60c network: Remove NetDevice class
We don't need the NetObject/NetDevice class separation anymore
2019-11-06 10:16:40 +13:00
Robert Ancell
1c92cf4844 network: Remove net_device_get_nm_device 2019-11-06 10:16:40 +13:00
Robert Ancell
aba79986a5 network: Use a hash table to map NM device objects to our objects 2019-11-06 10:16:40 +13:00
Robert Ancell
50c4c805d4 network: Store VPNs separately to other network devices
This simplifies a lot of class checks.
2019-11-06 10:16:40 +13:00
Robert Ancell
51df8ccf15 network: Remove unused enum 2019-11-06 10:16:40 +13:00
Robert Ancell
4e5b7faf23 network: Don't add proxies to the device list - nothing every reads them back 2019-11-06 10:16:40 +13:00
Robert Ancell
a88f1b1bad network: Use function instead of GObject property getter 2019-11-06 10:16:40 +13:00
Robert Ancell
5244b01326 network: Merge together methods
A method was public, and not being used. Simplify the case it's used in.
2019-11-06 10:16:40 +13:00
Robert Ancell
06e38dac90 network: Tidy up use of modem object in NetDeviceMobile 2019-11-06 10:16:40 +13:00
Robert Ancell
966cb97d45 network: Remove net_object_get_cancellable
Only a few objects need it
2019-11-06 10:16:39 +13:00
Robert Ancell
c74d26bf3a network: Remove NetObject id property
This is better handled by comparing objects.
2019-11-06 10:16:39 +13:00
Robert Ancell
0b3ce1e15d network: Remove net_object_get_panel
It was only being used for WiFi devices
2019-11-06 10:16:39 +13:00
Robert Ancell
76de0ce408 network: Simplify net_object_add_to_stack function
Except in the WiFi case it was creating a stack with one child.
All the non-WiFi cases had the same logic.
2019-11-06 10:16:39 +13:00
Robert Ancell
8335c088ec network: Simplify handling bluetooth devices 2019-11-06 10:16:39 +13:00
Robert Ancell
a7e3f314e6 network: Rename NetDeviceSimple to NetDeviceBluetooth
It's only being used for bluetooth connections.
2019-11-06 10:16:39 +13:00
Robert Ancell
e90ed2df8a network: Stop NetDeviceEthernet deriving from NetDeviceSimple
It overrode everything anyway.
2019-11-06 10:16:39 +13:00
Robert Ancell
0c92c7b461 network: Replace g_object_new with constructors 2019-11-06 10:16:20 +13:00
Robert Ancell
0b481bfb83 network: Remove if statement that is always true 2019-11-06 10:16:20 +13:00
Robert Ancell
926063acb3 network: Remove unused GObject property 2019-10-22 20:11:45 +00: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
Philip Withnall
fcefd51d7a network: Don’t suffix VPN devices with ‘VPN’
They’re already listed in a section titled ‘VPN’, and the user is likely
to have included ‘VPN’ in the device’s name already.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

Fixes: #701
2019-09-25 14:14:37 +01:00
Mohammed Sadiq
9c19eb6ead network: Fix possible invalid free 2019-09-24 21:25:44 +05:30