* Set the right accessibility relations, as
AdwPreferencesGroup does not manage it
for custom listboxes
* Handle `keynav-failed` for proper behavior with arrow keys
* Set `selection-mode` to none
GtkModelButton is an implementation detail of GTK.
It should not be used by applications. Instead, we
should use menu models to create menus, which are
consistently styled by libadwaita.
This should significantly simplify these panels, by not forcing
them to override GObject.constructed all the time. Most panels
were quite straightfoward.
Ignored in Meson < 0.60.0, deprecated since 0.60.1 and fatal since 0.61.0.
panels/applications/meson.build:10:5: ERROR: Function does not take positional arguments.
panels/background/meson.build:10:5: ERROR: Function does not take positional arguments.
panels/camera/meson.build:10:5: ERROR: Function does not take positional arguments.
[...]
The Tracker3 schema points to the same dconf path and is backwards
compatible with Tracker 2.x settings. Check for either here, with a
preference to Tracker 3.x.
Eventually, Tracker 2.x will be fully phased out, and this will not
be necessary.
Fixes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1173
Make the panel class provide a cancellable that will be cancelled when the panel
is destroyed. Panel implementations can use this and not have to mangage the
cancellable themselves. Consolidate cases where panels had multiple cancellables
that were all being used for this behaviour.
We store the list of "Search Locations" in a gsetting. When a location
gets added and then removed, the gsetting still stores its path.
These changes verify the existance of a file before loading it in the UI,
and also removes the path from the gsetting when the location can't
be found.
Fixes#812
While dragging a row in order to reoder the search list, we create
a fake copy of the row that gets dragged into the position where
the user wants the row to be in. This fake row should have its
switch matching the state of its master copy.
Fixes#810
When creating a Page, the dialog variable wasn't set and thus
dereferencing a NULL in a later code resulting a crash.
This was introduced in 14b9f65ba4
Tracker GSettings were previously stored in a global variable. This
seems to have been done to avoid difficulty passing the settings via
callbacks. Global variables are easy to leak and make mistakes with.
Update the code to have better callback handling so the variable can
be stored inside the object.
This decouples the user interface parts from the control logic,
making it easy for designers to tweak the look & feel of the rows.
Besides, it makes it easier to introduce Drag & Drop capabilities.