Update the "Email" and "Calendars, Contacts, Files" to match the
GOA design for GNOME 46, as "E-mail" and "Calendar, Contacts and
Files", respectively.
See: Teams/Design/settings-mockups!68
Sorting providers and accounts by features flags makes it difficult to
thme how we like, so hard-code the sorting order based on the
non-localized provider name.
Remove the GOA subprocess helper and use GoaClient directly.
The GoaClient is loaded asynchronously, with the panel being marked
insensitive until ready. Any `CcPanel::parameters` passed while loading
are deferred until the client is ready.
!1331 (merged) introduced a custom logger as a workaround for
a not ideal design choice, but the workaround is using g_printerr,
which is not adding linebreaks, so the logs were unreadable.
This doesn't fix the whole architecture of this part, but simply
adds a line-break so that at least the logs can be read by humans.
Meson extracts them by itself and add them as dependencies for the target.
It means one less location to keep track of files, and a lot less boilerplate
around the meson files
The `X-GNOME-Bugzilla-*` entries were for use by bug-buddy, a GNOME 2
technology that's been gone for over a decade. These entries are
obsolete and can be removed from all desktop files.
The `X-GNOME-Settings-Panel` entry is also obsolete as far as I can
tell and only these panels had it in their desktop file: notifications,
sharing, sound and user-accounts. These entries can also be removed.
After removing the `X-GNOME-Bugzilla-*` entries, the desktop files have
no more variables in them. The meson `configure_file` step is therefor
pointless—there are no variables to configure. As such the
`*.desktop.in.in` files are renamed to `*.desktop.in` to reflect this
and `meson.build` files are modified to remove `configure_file` step.
If the goa helper fails to find goa helper executable (which happened when run
without install), %NULL is returned. Avoid feeding g_variant_parse(), the %NULL
variable in those case as it is not nullable and avoid the crash that follows.
Make sure to keep a reference to the GoaObject of the account around so
that the GBinding that synchronises each switch widget and the account
properties don't get finalized on startup.
#0 0x00007ffff73c6a20 in g_binding_finalize () at /lib64/libgobject-2.0.so.0
#1 0x00007ffff73d3d22 in g_object_unref () at /lib64/libgobject-2.0.so.0
#2 0x00007ffff73c68e8 in weak_unbind () at /lib64/libgobject-2.0.so.0
#3 0x00007ffff73cf117 in weak_refs_notify () at /lib64/libgobject-2.0.so.0
#4 0x00007ffff72acd6c in g_data_set_internal () at /lib64/libglib-2.0.so.0
#5 0x00007ffff73d0195 in g_object_real_dispose.lto_priv () at /lib64/libgobject-2.0.so.0
#6 0x00007ffff73d3c44 in g_object_unref () at /lib64/libgobject-2.0.so.0
#7 0x00007ffff72b6793 in g_hash_table_remove_all_nodes.part () at /lib64/libglib-2.0.so.0
#8 0x00007ffff72ba723 in g_hash_table_unref () at /lib64/libglib-2.0.so.0
#9 0x00007ffff753403d in g_dbus_object_proxy_finalize () at /lib64/libgio-2.0.so.0
#10 0x00007ffff73d3d22 in g_object_unref () at /lib64/libgobject-2.0.so.0
#11 0x0000000000402d08 in glib_autoptr_clear_GoaObject (_ptr=0x5d59f0) at /usr/include/goa-1.0/goa/goa-generated.h:3265
#12 glib_autoptr_cleanup_GoaObject (_ptr=<synthetic pointer>) at /usr/include/goa-1.0/goa/goa-generated.h:3265
#13 on_application_activate_show_account_cb (application=0x49f2f0, argv=<optimized out>) at ../../../../Projects/jhbuild/gnome-control-center/panels/online-accounts/gnome-control-center-goa-helper.c:360
Closes: #1721