added ffGSettingsGetValuePath

This commit is contained in:
Linus Dierheimer
2021-05-02 21:06:01 +02:00
parent 35504b33b1
commit f47a44f47a
3 changed files with 28 additions and 16 deletions
+1
View File
@@ -180,6 +180,7 @@ __fastfetch_completion()
"--lib-PCI"
"--lib-X11"
"--lib-Xrandr"
"--lib-gio"
"--lib-DConf"
"--lib-wayland"
"--battery-dir"
+25 -15
View File
@@ -31,7 +31,7 @@ static int transformGSettingsToDConf(int c)
return c == '.' ? '/' : c;
}
static const char* getDConfValue(DConfData* data, const char* schemaName, const char* key)
static const char* getDConfValue(DConfData* data, const char* schemaName, const char* path, const char* key)
{
if(data->client == NULL)
return NULL;
@@ -41,6 +41,11 @@ static const char* getDConfValue(DConfData* data, const char* schemaName, const
ffStrbufAppendC(&dconfStyleKey, '/');
ffStrbufAppendTransformS(&dconfStyleKey, schemaName, transformGSettingsToDConf);
ffStrbufAppendC(&dconfStyleKey, '/');
if(path != NULL && *path != '\0')
{
ffStrbufAppendS(&dconfStyleKey, path);
ffStrbufAppendC(&dconfStyleKey, '/');
}
ffStrbufAppendS(&dconfStyleKey, key);
GVariant* variant = data->ffdconf_client_read_full(data->client, dconfStyleKey.chars, DCONF_READ_FLAGS_NONE, NULL);
@@ -59,7 +64,7 @@ static const char* getDConfValue(DConfData* data, const char* schemaName, const
return NULL;
}
static const char* dconfGetValue(FFinstance* instance, const char* schemaName, const char* key)
static const char* dconfGetValue(FFinstance* instance, const char* schemaName, const char* path, const char* key)
{
static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
static bool init = false;
@@ -71,7 +76,7 @@ static const char* dconfGetValue(FFinstance* instance, const char* schemaName, c
if(init)
{
pthread_mutex_unlock(&mutex);
return getDConfValue(&data, schemaName, key);
return getDConfValue(&data, schemaName, path, key);
}
init = true;
@@ -101,24 +106,24 @@ static const char* dconfGetValue(FFinstance* instance, const char* schemaName, c
}
pthread_mutex_unlock(&mutex);
return getDConfValue(&data, schemaName, key);
return getDConfValue(&data, schemaName, path, key);
}
static const char* getGSettingsValue(FFinstance* instance, GSettingsData* data, const char* schemaName, const char* key)
static const char* getGSettingsValue(FFinstance* instance, GSettingsData* data, const char* schemaName, const char* path, const char* key)
{
if(data->schemaSource == NULL)
return dconfGetValue(instance, schemaName, key);
return dconfGetValue(instance, schemaName, path, key);
GSettingsSchema* schema = data->ffg_settings_schema_source_lookup(data->schemaSource, schemaName, true);
if(schema == NULL)
return dconfGetValue(instance, schemaName, key);
return dconfGetValue(instance, schemaName, path, key);
if(data->ffg_settings_schema_has_key(schema, key) == 0)
return dconfGetValue(instance, schemaName, key);
return dconfGetValue(instance, schemaName, path, key);
GSettings* settings = data->ffg_settings_new_full(schema, NULL, NULL);
GSettings* settings = data->ffg_settings_new_full(schema, NULL, path);
if(settings == NULL)
return dconfGetValue(instance, schemaName, key);
return dconfGetValue(instance, schemaName, path, key);
GVariant* variant = data->ffg_settings_get_value(settings, key);
@@ -129,17 +134,17 @@ static const char* getGSettingsValue(FFinstance* instance, GSettingsData* data,
variant = data->ffg_settings_get_default_value(settings, key);
if(variant == NULL)
return dconfGetValue(instance, schemaName, key);
return dconfGetValue(instance, schemaName, path, key);
const char* value = data->ffg_variant_get_string(variant, NULL);
if(value == NULL || *value == '\0')
return dconfGetValue(instance, schemaName, key);
return dconfGetValue(instance, schemaName, path, key);
return value;
}
const char* ffGSettingsGetValue(FFinstance* instance, const char* schemaName, const char* key)
const char* ffGSettingsGetValuePath(FFinstance* instance, const char* schemaName, const char* path, const char* key)
{
static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
static bool init = false;
@@ -151,7 +156,7 @@ const char* ffGSettingsGetValue(FFinstance* instance, const char* schemaName, co
if(init)
{
pthread_mutex_unlock(&mutex);
return getGSettingsValue(instance, &data, schemaName, key);
return getGSettingsValue(instance, &data, schemaName, path, key);
}
init = true;
@@ -192,5 +197,10 @@ const char* ffGSettingsGetValue(FFinstance* instance, const char* schemaName, co
}
pthread_mutex_unlock(&mutex);
return getGSettingsValue(instance, &data, schemaName, key);
return getGSettingsValue(instance, &data, schemaName, path, key);
}
const char* ffGSettingsGetValue(FFinstance* instance, const char* schemaName, const char* key)
{
return ffGSettingsGetValuePath(instance, schemaName, NULL, key);
}
+2 -1
View File
@@ -249,7 +249,8 @@ void ffGetFont(const char* font, FFstrbuf* name, double* size);
void ffGetFontPretty(FFstrbuf* buffer, const FFstrbuf* name, double size);
//common/gsettings.c
const char* ffGSettingsGetValue(FFinstance* instance, const char* schema, const char* key);
const char* ffGSettingsGetValuePath(FFinstance* instance, const char* schemaName, const char* path, const char* key);
const char* ffGSettingsGetValue(FFinstance* instance, const char* schemaName, const char* key);
//common/detectPlasma.c
const FFPlasmaResult* ffDetectPlasma(FFinstance* instance);