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.
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.
According to the lastest mockups [1], the Proxy section is now
composed of a row with the state of the proxy, and a settings
button that leads to a dialog where one can configure the different
proxy settings.
This commit ports the current code to do that, and various changes
took place to made this happen. Namely:
* A new ProxyMode enum was added to improve readability and
improve the semantic of the code. No more random numbers
are present.
* The current widgets for editing proxy settings were repacked
into a GtkStack (so that we keep an homogeneous sizing), and
the GtkStack itself was moved into a new dialog. With that,
we can just set the stack page, rather than controlling the
visibility of all individual widgets.
* Many unused widgets were removed.
* The combo box was replaced by 3 radio buttons. Now, there's
no need to deal with GtkTreeIters anymore. Another refactoring
of the code that led to more readable and smaller code.
Overall, these changes made the code be more readable, smaller
codebase with a smaller surface for mistakes.
https://bugzilla.gnome.org/show_bug.cgi?id=785581
The Network panel uses a GtkNotebook internally to manage
the different setup pages of the network devices. While it
does the job, we now have a modern widget for that: GtkStack.
With GtkStack, managing the pages becomes a lot easier and
we gain almost for free the nice transition between pages,
besides of course being a widget that consumes slightly less
resources.
Besides all these gains, using a GtkStack will allow us to
implement the new Wi-Fi panel in a more cohesive manner,
sharing large portions of code and avoiding copy pasta.
This commit then turns the GtkNotebook into a GtkStack, and
renames and adapts the code to reflect that. Fortunately,
the code got actually simpler with the move.
https://bugzilla.gnome.org/show_bug.cgi?id=784818
If the ignore-hosts setting is set to an empty array we were using
unintialized memory.
This also now ignores zero length strings if there are any in the
array.
https://bugzilla.gnome.org/show_bug.cgi?id=707966
If you click the sections in the left side treeview, some of the
elements in the right page headers will move a couple of pixels.
Also, since the WPAD warning label was always visible, the alignment of
the controls section in the Proxy page was suboptimal.
https://bugzilla.gnome.org/show_bug.cgi?id=693357
In bug 689638, the designers only asked for the list icons
to be symbolic, not the big icons in the page headings. The
current code was failing on both ends: virtual devices like
vlan still had non-symbolic icons in the list, and several
pages (e.g mobile and proxy) had symbolic icons in the headings.
https://bugzilla.gnome.org/show_bug.cgi?id=693001
This is consistent with the guideline to use symbolic icons for
classes and reserve full color icons for "things" like apps, people,
documents, pages, etc.
It is also consistent with how these devices are displayed in the
network menu, notifications, and dialogs.
https://bugzilla.gnome.org/show_bug.cgi?id=689638
A source file with 4k lines of code is not understandable, and the glade file
was becoming quite a challenge for glade.
To add more features we need to split things up just to keep them maintainable.
This is the first patch that just splits out the proxy bits. Other device types
will follow in the next few days.