makeHardcodeGsettingsPatch: Support other constructors
In addition to `g_settings_new`, there are three other GSettings constructors: https://docs.gtk.org/gio/ctor.Settings.new.html
This commit is contained in:
@@ -51,6 +51,7 @@ in
|
||||
schemaIdToVariableMapping = {
|
||||
"org.gnome.evolution-data-server.addressbook" = "EDS";
|
||||
"org.gnome.evolution.calendar" = "EVO";
|
||||
"org.gnome.seahorse.nautilus.window" = "SEANAUT";
|
||||
};
|
||||
expected = ./fixtures/example-project-patched;
|
||||
};
|
||||
|
||||
@@ -37,10 +37,49 @@ void schema_id_autoptr() {
|
||||
}
|
||||
}
|
||||
|
||||
void schema_id_with_backend() {
|
||||
GSettings *settings;
|
||||
{
|
||||
g_autoptr(GSettingsSchemaSource) schema_source;
|
||||
g_autoptr(GSettingsSchema) schema;
|
||||
schema_source = g_settings_schema_source_new_from_directory("@EDS@", g_settings_schema_source_get_default(), TRUE, NULL);
|
||||
schema = g_settings_schema_source_lookup(schema_source, "org.gnome.evolution-data-server.addressbook", FALSE);
|
||||
settings = g_settings_new_full(schema, g_settings_backend_get_default(), NULL);
|
||||
}
|
||||
g_object_unref(settings);
|
||||
}
|
||||
|
||||
void schema_id_with_backend_and_path() {
|
||||
GSettings *settings;
|
||||
{
|
||||
g_autoptr(GSettingsSchemaSource) schema_source;
|
||||
g_autoptr(GSettingsSchema) schema;
|
||||
schema_source = g_settings_schema_source_new_from_directory("@SEANAUT@", g_settings_schema_source_get_default(), TRUE, NULL);
|
||||
schema = g_settings_schema_source_lookup(schema_source, "org.gnome.seahorse.nautilus.window", FALSE);
|
||||
settings = g_settings_new_full(schema, g_settings_backend_get_default(), "/org/gnome/seahorse/nautilus/windows/123/");
|
||||
}
|
||||
g_object_unref(settings);
|
||||
}
|
||||
|
||||
void schema_id_with_path() {
|
||||
GSettings *settings;
|
||||
{
|
||||
g_autoptr(GSettingsSchemaSource) schema_source;
|
||||
g_autoptr(GSettingsSchema) schema;
|
||||
schema_source = g_settings_schema_source_new_from_directory("@SEANAUT@", g_settings_schema_source_get_default(), TRUE, NULL);
|
||||
schema = g_settings_schema_source_lookup(schema_source, "org.gnome.seahorse.nautilus.window", FALSE);
|
||||
settings = g_settings_new_full(schema, NULL, "/org/gnome/seahorse/nautilus/windows/123/");
|
||||
}
|
||||
g_object_unref(settings);
|
||||
}
|
||||
|
||||
int main() {
|
||||
schema_id_literal();
|
||||
schema_id_from_constant();
|
||||
schema_id_autoptr();
|
||||
schema_id_with_backend();
|
||||
schema_id_with_backend_and_path();
|
||||
schema_id_with_path();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -19,10 +19,31 @@ void schema_id_autoptr() {
|
||||
settings = g_settings_new("org.gnome.evolution.calendar");
|
||||
}
|
||||
|
||||
void schema_id_with_backend() {
|
||||
GSettings *settings;
|
||||
settings = g_settings_new_with_backend("org.gnome.evolution-data-server.addressbook", g_settings_backend_get_default());
|
||||
g_object_unref(settings);
|
||||
}
|
||||
|
||||
void schema_id_with_backend_and_path() {
|
||||
GSettings *settings;
|
||||
settings = g_settings_new_with_backend_and_path("org.gnome.seahorse.nautilus.window", g_settings_backend_get_default(), "/org/gnome/seahorse/nautilus/windows/123/");
|
||||
g_object_unref(settings);
|
||||
}
|
||||
|
||||
void schema_id_with_path() {
|
||||
GSettings *settings;
|
||||
settings = g_settings_new_with_path("org.gnome.seahorse.nautilus.window", "/org/gnome/seahorse/nautilus/windows/123/");
|
||||
g_object_unref(settings);
|
||||
}
|
||||
|
||||
int main() {
|
||||
schema_id_literal();
|
||||
schema_id_from_constant();
|
||||
schema_id_autoptr();
|
||||
schema_id_with_backend();
|
||||
schema_id_with_backend_and_path();
|
||||
schema_id_with_path();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user