libnm: use G_PARAM_EXPLICIT_NOTIFY for direct flags properties

For doing this, it's important to review that no set_property()
implementation exists, which now would miss to emit the notification.
This commit is contained in:
Thomas Haller 2023-12-11 12:09:13 +01:00
parent dee0530087
commit 026c92c30d
No known key found for this signature in database
GPG key ID: 29C2366E4DFC5728
3 changed files with 15 additions and 10 deletions

View file

@ -959,13 +959,13 @@ _nm_properties_override(GArray *properties_override, const NMSettInfoProperty *p
!NM_FLAGS_ANY((param_flags), \
~(NM_SETTING_PARAM_FUZZY_IGNORE | NM_SETTING_PARAM_INFERRABLE))); \
\
_param_spec = \
g_param_spec_flags("" prop_name "", \
"", \
"", \
(gtype_flags), \
(default_value), \
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | (param_flags)); \
_param_spec = g_param_spec_flags("" prop_name "", \
"", \
"", \
(gtype_flags), \
(default_value), \
G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY \
| G_PARAM_STATIC_STRINGS | (param_flags)); \
\
(obj_properties)[(prop_id)] = _param_spec; \
\

View file

@ -5676,9 +5676,13 @@ test_setting_wireless_security_changed_signal(void)
"wep-key0",
NM_SETTING_SECRET_FLAG_AGENT_OWNED,
NULL)));
ASSERT_UNCHANGED(g_assert(nm_setting_set_secret_flags(NM_SETTING(s_wsec),
"wep-key1",
NM_SETTING_SECRET_FLAG_AGENT_OWNED,
NULL)));
ASSERT_CHANGED(g_assert(nm_setting_set_secret_flags(NM_SETTING(s_wsec),
"wep-key1",
NM_SETTING_SECRET_FLAG_AGENT_OWNED,
NM_SETTING_SECRET_FLAG_NOT_SAVED,
NULL)));
ASSERT_CHANGED(g_assert(nm_setting_set_secret_flags(NM_SETTING(s_wsec),
"wep-key2",
@ -5686,7 +5690,7 @@ test_setting_wireless_security_changed_signal(void)
NULL)));
ASSERT_CHANGED(g_assert(nm_setting_set_secret_flags(NM_SETTING(s_wsec),
"wep-key3",
NM_SETTING_SECRET_FLAG_AGENT_OWNED,
NM_SETTING_SECRET_FLAG_NOT_SAVED,
NULL)));
g_object_unref(connection);

View file

@ -4922,7 +4922,8 @@ check_done:;
NM_VALUE_TYPE_STRING,
NM_VALUE_TYPE_BYTES,
NM_VALUE_TYPE_STRV,
NM_VALUE_TYPE_ENUM);
NM_VALUE_TYPE_ENUM,
NM_VALUE_TYPE_FLAGS);
if (NM_FLAGS_HAS(sip->param_spec->flags, G_PARAM_EXPLICIT_NOTIFY)) {
g_assert(expected);