Commit graph

64 commits

Author SHA1 Message Date
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
Carlos Garnacho
6524c9a529 network: Make IPv4/v6 pages drive the scrolledwindow adjustments
Those 2 pages in the connection editor dialog are scrollable, but don't
hook focus changes so they drive the adjustments. Make them do so.
2021-05-07 04:06:35 +00:00
Igor Raits
f966c99409 network/connection-editor: Fixup creation of the netmask widget
Fixes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1274
Signed-off-by: Igor Raits <igor.raits@gmail.com>
2021-03-09 00:43:08 +00:00
Robert Ancell
d79fa68fbc network: Make CENetmaskEntry 2020-12-11 19:06:48 +00:00
Robert Ancell
c1a13ccaba network: Make CEIPAddressEntry 2020-12-11 19:06:48 +00:00
Robert Ancell
c9ea93f195 network: Use g_autoptr with GList 2020-12-11 19:06:48 +00:00
Robert Ancell
fbaa9cb607 network: Remove logic checking visibility of always visibile widget 2020-12-11 19:06:48 +00:00
Robert Ancell
53c9d4999f network: Remove unused sort function.
Nothing was setting the "first" or "last" data used in the sort.
2020-07-19 23:27:30 +00:00
Felix Riemann
cd3fa0195b network: Fix connection editor blanking when removing manual entry
To delete a manual entry row (IP addresses or routes) the remove_row
function started walking the widget hierarchy at the connection editor
widget. This caused the entire dialog box getting removed. Begin at the
GtkButton instead to actually remove the corresponding line.

Fixes #972.
2020-07-16 21:05:23 +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
e9973011b1 network: Remove unused enum 2019-11-13 15:12:46 +13:00
Carlo Caione
dfb54d0cad network: Add option for connection sharing
Introduce a new IP{4,6} config method to allow sharing the default
network (usually the Internet) through the wired interface.
This is needed because the control-panel is lacking this feature backed
by nm and currently the only way to enable the connection sharing is by
using nm-connection-editor.
2019-11-13 15:12:01 +13:00
Carlo Caione
408f2775ec network: cleanup: Rework disabled toggle button
The disable toggle button isn't special and there is no real need for it
to not be managed as all the other radio buttons.
2019-11-13 15:10:48 +13:00
Carlo Caione
5bcbe07299 network: cleanup: Avoid toggling button twice
After checking the method property of the connection settings we set the
disabled toggle button twice. One is enough.
2019-11-13 14:55:08 +13:00
Robert Ancell
eb0bac874c network: Convert CEPage widgets to GtkTemplate 2019-11-06 22:04:15 +13:00
Robert Ancell
9759121e7f network: Convert CEPage from a class to an interface 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
d46579144e network: Move GtkBuilder code from CEPage to its subclasses 2019-11-06 16:41:34 +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
f5949160c3 network: Move class property inside the two subclasses that use it 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
0106a4ab90 network: Convert class property to a virtual method 2019-11-06 16:36:06 +13:00
Robert Ancell
413f23ec99 network: Rename virtual method to standard names 2019-11-06 16:33:07 +13:00
Robert Ancell
708b1fdaf7 network: Use self variable name consistently 2019-10-22 20:11:45 +00:00
Robert Ancell
8b6e3fb736 network: Store widgets inside objects
This is a step towards replacing GtkBuilder with GtkTemplate
2019-10-22 20:11:45 +00:00
Robert Ancell
b331d75df5 network: Rename widget IDs to standard names 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
de84f7e344 network: Use g_autofree for strings 2019-09-13 14:20:50 +12: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
Bastien Nocera
c50d1adb0f network: Don't warn when setting empty IPv4 gateway
Set an empty string when there's no IPv4 gateway rather than warn.
2018-02-06 11:11:56 +01:00
Georges Basile Stavracas Neto
1d0757d288 network: Use a table-like widget in address editor
According to the latest mockups for the connection editor dialog [1],
the IPv4 and IPv6 pages are supposed to use a table-like editor to
manage the addresses, in a similar fashion of what was done to the
routes editor. This way of editing is not only easier to comprehend,
but also improves the size of the dialog, requiring much less vertical
space to present the routes.

The current implementation, however, uses a vertical layout and a toolbar,
which is inefficient in its usage of space.

Fix that by implementing the table-like editor widget, both in IPv4
and IPv6 pages.

[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-08-09 19:34:03 +02:00
Georges Basile Stavracas Neto
08657fac44 network: Use a table-like widget to edit routes
According to the latest mockups for the connection editor dialog [1],
the IPv4 and IPv6 pages are supposed to use a table-like editor to
manage the routes. This editor is not only easier to comprehend, but
also improves the size of the dialog, requiring much less vertical
space to present the routes.

The current implementation, however, uses a vertical layout and a toolbar,
which is inefficient in its usage of space.

Fix that by implementing the table-like editor widget, both in IPv4
and IPv6 pages.

[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-08-09 19:34:03 +02:00
Georges Basile Stavracas Neto
2e570099f6 network: Simplify DNS management in connection editor
When editing the DNS servers of a given connection, a simple
entry is enough to display and edit the DNS servers. The user
can separate IP addresses with commas. This is exemplified
by the mockup at [1].

This, however, is not the current implementation, which uses
a combination of listbox rows, entries and buttons to manage
that with added complexity.

Fix that by using an entry to handle the DNS servers.

[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-08-09 19:34:03 +02:00
Georges Basile Stavracas Neto
8f78b27299 network: Use radio buttons instead of a combobox in IP pages
Per the latest mockups [1], the IP pages use a set of four radio
buttons to control the method, rather than a switch + a combobox,
which is what the current implementation uses.

This patch, then, adapts the IP pages of the connection editor
dialog to use a set of radio buttons at the top of the 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
Andreas Henriksson
bb4b83360b network: drop unneeded null-check for ip4 address
The pointer has already been dereferenced. Might have made more sense
to check if it's the empty string and treat that as error, but
nm_utils_ipaddr_valid also returns error on empty string so lets just
rely on the utility function doing the right thing here.

https://bugzilla.gnome.org/show_bug.cgi?id=708500
2016-11-11 17:55:04 +01:00
Andreas Henriksson
898d0aa4e9 network: allow empty ip4 default gateway
Null-checking the text_gateway makes no sense as it has already been
dereferenced earlier. Instead check if it's the empty string and
treat that as not-an-error. Also prevent the empty string from
being set in default_gateway.

https://bugzilla.gnome.org/show_bug.cgi?id=708500
2016-11-11 17:55:04 +01:00
Bastien Nocera
7dfc6a6c23 network: Fix application of the default gateway
Now that we ensured that only the first address has a gateway entry,
read it and apply it.

See https://bugzilla.gnome.org/show_bug.cgi?id=765969

https://bugzilla.gnome.org/show_bug.cgi?id=771515
2016-09-20 10:30:27 +02:00
Bastien Nocera
d28ffc9902 network: Fix gateway entry visibility
From https://bugzilla.gnome.org/show_bug.cgi?id=765969 as explained by
Dan Winship:
"
libnm-util/libnm-glib had a buggy data model, which nm-connection-editor
(and then gnome-control-center) copied, in which each manually-configured
IP address has an associated gateway address. In reality, NM always just
took the first non-empty gateway value from the address array, and
completely ignored any other gateway values.
libnm represents this more accurately, by having a single gateway
value which is separate from the address array. Ideally, the editors should
show it this way as well (eg, like nmtui does). Failing that, it would
be nice to at least make it so that only the first row in the address
table can have a non-empty gateway value.
"

We went for the second option, only showing a gateway entry for the
first address in the list.

This isn't related to route-specific gateway addresses.

https://bugzilla.gnome.org/show_bug.cgi?id=765969
2016-09-20 10:30:27 +02:00
Bastien Nocera
ab2b13cacd network: Fix compilation warnings
Those come from the fixes made in commits 981c354 and 7f601cf.

https://bugzilla.gnome.org/show_bug.cgi?id=771538
2016-09-20 10:30:27 +02:00
Bastien Nocera
da7be92093 network: Fix warning when opening IPv4 connection editor
https://bugzilla.gnome.org/show_bug.cgi?id=771515
2016-09-20 10:30:27 +02:00
Bastien Nocera
981c354ebb network: Fix crash entering IPv4 routes
The wrong destructor was used for a GPtrArray of NMIPRoute.

See https://bugzilla.gnome.org/show_bug.cgi?id=771251
See https://bugzilla.gnome.org/show_bug.cgi?id=771432
2016-09-14 17:18:32 +02:00
Bastien Nocera
7f601cfed4 network: Fix crash entering IPv4 Gateway
The wrong destructor was used for a GPtrArray of NMIPAddress.

https://bugzilla.gnome.org/show_bug.cgi?id=771432
2016-09-14 17:18:32 +02:00
Bastien Nocera
ca47ff295a network: Fix crash when changing IPv4 DNS
The dns_servers GStrv was not NULL-terminated because we forgot to
append a NULL item to the GPtrArray that we used to construct it.

https://bugzilla.gnome.org/show_bug.cgi?id=771251
2016-09-13 11:45:20 +02:00
Bastien Nocera
9183d34947 network: Port to libnm 1.2
We also remove support for WiMAX (now unsupported by NetworkManager),
and InfiniBand (Enterprise feature), and the use of
the deprecated NM_SETTING_WIRELESS_SEC property.

With help from network-manager-applet patches by Jiří Klimeš and
Dan Winship.

https://bugzilla.gnome.org/show_bug.cgi?id=765910
2016-05-27 18:23:33 +02:00
Bastien Nocera
219a94ed1e network: Fix GtkListStore leak in IPv{4,6} dialogues
https://bugzilla.gnome.org/show_bug.cgi?id=746411
2015-03-19 16:32:44 +01:00
Bastien Nocera
33b1858787 network: Don't save hidden configuration options
When switching from a particular IPv4 or IPv6 "addresses" method to
another, make sure that "address", "DNS" and "routes" are applied or
ignored depending on that method's capabilities.

For example, when switching from manual to automatic IPv4 "addresses"
method, we need to make sure that the old IP address, gateway, etc.
aren't actually used in the new setting.

https://bugzilla.gnome.org/show_bug.cgi?id=734337
2015-03-09 16:07:15 +01:00
Rui Matos
cd5316b7a7 network: Drop deprecated API usage
https://bugzilla.gnome.org/show_bug.cgi?id=740986
2014-12-05 16:13:29 +01:00
Bastien Nocera
d9d5124997 network: Don't stop validating when we get an error
The previous code would stop validating when an error occurred which
meant that when a page contained multiple errors, only the first one(s)
to be checked would appear in red.

Now, all the errors will appear in red.

https://bugzilla.gnome.org/show_bug.cgi?id=734472
2014-08-13 18:38:31 +02:00
Bastien Nocera
62db29b387 network: Make broken configuration entries red
When a configuration setting is wrong, set the entry or file chooser
that contains the incorrect information to be surrounded by red.

This makes it easier for users to find where the error was made that
disallows them to click the "Apply" button.

https://bugzilla.gnome.org/show_bug.cgi?id=734446
2014-08-08 12:00:40 +02:00
Bastien Nocera
55fe239e99 network: Use new listbox helpers
https://bugzilla.gnome.org/show_bug.cgi?id=732106
2014-06-24 11:35:31 +02:00