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.
AdwNavigationView is a new widget meant to be used specifically
for navigation, unlike AdwLeaflet which was multipurpose.
AdwNavigationView provides a cleaner API and gives us automatic
titles, back buttons, gestures, actions, and windowcontrols.
AdwToolbarView is a utility widget that simplifies setting the
top and bottom bars for simple views, giving us styling with
undershoots, the ability to use flat headers in scrolling views,
and proper styling when used with the new sidebar widgets.
This commit ports the Accessibility panel to AdwNavigationView
and AdwToolbarView. Subpages now subclass AdwNavigationPage
and contain toolbar views - meaning their headers are joined with
their content. Their titles and their back buttons are automatically
handled by libadwaita, with proper accessibility.
The actions provided by AdwNavigationPage allow us to remove
the custom listbox we used for the `row-activated` signal. Rows
now use the `navigation.push` action in order to push a subpage
by tag.
Currently our AdwToolbarViews use the `raised` style, as we
have not ported to the new sidebar widget yet.
AdwNavigationView is a new widget meant to be used specifically
for navigation, unlike AdwLeaflet which was multipurpose.
AdwNavigationView provides a cleaner API, and when used in
conjuction with the new AdwToolbarView widget we get automatic
titles, back buttons, gestures, actions, and window controls.
In addition, AdwToolbarView provides a new style with flat headers
and an undershoot.
This commit ports the keyboard shortcut dialog to use both of
these new widgets, allowing us to simplify our navigation.
The worst-case size of the normalized printer name is twice the
original length (if a space is inserted between each character) plus one
byte for the terminating null byte.
Fixes#2619
Signed-off-by: Tobias Wiese <tobias@tobiaswiese.com>