332
329
return user->priv->shell;
336
user_get_locale (User *user)
338
g_return_val_if_fail (user != NULL, NULL);
340
g_free (user->priv->locale);
341
if (user->priv->proxy)
342
user->priv->locale = NULL;
344
user->priv->locale = get_string_from_dmrc (user->priv->name, "Desktop", "Language");
346
/* Treat a blank locale as unset */
347
if (g_strcmp0 (user->priv->locale, "") == 0)
349
g_free (user->priv->locale);
350
user->priv->locale = NULL;
353
return user->priv->locale;
357
333
user_set_language (User *user, const gchar *language)
359
335
g_return_if_fail (user != NULL);
337
call_method (user->priv->proxy, "SetLanguage", g_variant_new ("(s)", language), "()", NULL);
338
save_string_to_dmrc (user->priv->name, "Desktop", "Language", language);
342
user_get_language (User *user)
344
GVariant *variant, *inner;
347
g_return_val_if_fail (user != NULL, NULL);
349
g_free (user->priv->language);
361
350
if (user->priv->proxy)
362
call_method (user->priv->proxy, "SetLanguage", g_variant_new ("(s)", language), "()", NULL);
352
/* the "Language" property cannot be retrieved with get_property () here since it
353
* uses g_dbus_proxy_get_cached_property () which would return the previous (cached) value
354
* of the "Language" property
356
success = call_method (user->priv->proxy, "org.freedesktop.DBus.Properties.Get", g_variant_new ("(ss)", g_dbus_proxy_get_interface_name(user->priv->proxy), "Language"), "(v)", &variant);
359
g_variant_get (variant, "(v)", &inner);
360
user->priv->language = g_variant_dup_string (inner, NULL);
361
g_variant_unref (inner);
362
g_variant_unref (variant);
365
user->priv->language = NULL;
364
save_string_to_dmrc (user->priv->name, "Desktop", "Language", language);
368
user->priv->language = get_string_from_dmrc (user->priv->name, "Desktop", "Language");
370
/* Treat a blank language as unset */
371
if (g_strcmp0 (user->priv->language, "") == 0)
373
g_free (user->priv->language);
374
user->priv->language = NULL;
377
return user->priv->language;