Fix many warnings of the shape:
warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
Consequence of casting the pointers during g_clear_pointer
- Use AdwStatusPage
- Use .pill and .suggested-action style classes in
the button from airplane mode status page
And use valign=center, otherwise AdwStatusPage
won't be vertically centralized.
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
GtkStyleContext will be deprecated in gtk 4.10.
https://docs.gtk.org/gtk4/class.StyleContext.html
This preserves code blocks where additional GtkStyleContext operations
were used, such as gtk_style_context_save/restore.
This avoids the situation where a duplicate entry is created if
Settings is started with the wwan panel disabled, a previous connection
exists, and the panel is later enabled.
Fixes#1468
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.
It is perfectly possible for mm_sim_dup_identifier() to return NULL if
the SIM ID wasn't provided by the modem for any reason, leading to an
assertion failure:
(gnome-control-center:910641): cc-wwan-data-CRITICAL **: 12:43:51.573:
cc_wwan_data_set_default_apn: assertion 'self->sim_id != NULL' failed
Handle the NULL SIM ID gracefully.
AdwToasts replaces the GtkLabel inside revealer for notifications
and this simplifies handling the notifications and the toast-overlay
handles the complexities of when to show/withdraw them, the order
they are displayed, etc.
Since we return early, the code followed is never run.
Also, the password for GSM APNs are not actually sensitive
secrets. So Remove the lines that are never reached.
Otherwise the comparison in wwan_data_apn_are_same will always be False
due to nm_setting_gsm_get_password always returning NULL.
Helps #1468
Relates !1059
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.
[...]
AdwActionRow handles many of the properties we use
CcListRow for. We can re-use it instead of re-creating it.
CcListRow is now an AdwActionRow with three suffixes.
The `activatable-widget` is set when the switch is visible.
Since our `icon-name` property was only used for the arrow
icon, it has been replaced with a `show-arrow` property.
The `bold` property has been removed - it was only used in
one place, and it's not a pattern used in other apps.
I decided to go this route because replacing all the
instances of CcListRow with AdwActionRow directly would
end up being more code.
Since we don't use gtk_dialog_run(), the dialog was shown in a non-blocking
way. So instead of handling the APN details immidiately after the APN
dialog is shown, handle them in a signal callback.
Fixes#1465
MMModemSignal interface is used to retrieve extended signal information that
requires periodic polling. Therefore, it needs to be manually enabled in order
to use. There if a fallback to use mm_modem_get_signal_quality when MMModemSignal
interface is unavailable, but it didn't check whether it's actually enabled,
leaving the UI with empty label.