gdm r5878 - in trunk: . daemon
- From: halfline svn gnome org
- To: svn-commits-list gnome org
- Subject: gdm r5878 - in trunk: . daemon
- Date: Tue, 26 Feb 2008 21:10:11 +0000 (GMT)
Author: halfline
Date: Tue Feb 26 21:10:10 2008
New Revision: 5878
URL: http://svn.gnome.org/viewvc/gdm?rev=5878&view=rev
Log:
2008-02-26 Ray Strode <rstrode redhat com>
* daemon/gdm-session-settings.[ch]:
(gdm_session_settings_save):
Add save support to GdmSessionSettings object, so
~/.dmrc changes can be saved out.
Modified:
trunk/ChangeLog
trunk/daemon/gdm-session-settings.c
trunk/daemon/gdm-session-settings.h
Modified: trunk/daemon/gdm-session-settings.c
==============================================================================
--- trunk/daemon/gdm-session-settings.c (original)
+++ trunk/daemon/gdm-session-settings.c Tue Feb 26 21:10:10 2008
@@ -288,7 +288,63 @@
g_key_file_free (key_file);
g_free (filename);
- settings->priv->is_loaded = is_loaded;
-
return is_loaded;
}
+
+gboolean
+gdm_session_settings_save (GdmSessionSettings *settings,
+ const char *home_directory,
+ GError **error)
+{
+ GKeyFile *key_file;
+ GError *file_error;
+ gboolean is_saved;
+ char *filename;
+ gsize length;
+ gchar *contents;
+
+ g_return_val_if_fail (GDM_IS_SESSION_SETTINGS (settings), FALSE);
+ g_return_val_if_fail (home_directory != NULL, FALSE);
+ g_return_val_if_fail (gdm_session_settings_is_loaded (settings), FALSE);
+ filename = g_build_filename (home_directory, ".dmrc", NULL);
+
+ is_saved = FALSE;
+ key_file = g_key_file_new ();
+
+ file_error = NULL;
+ g_key_file_load_from_file (key_file, filename,
+ G_KEY_FILE_KEEP_COMMENTS |
+ G_KEY_FILE_KEEP_TRANSLATIONS,
+ NULL);
+
+ if (settings->priv->session_name != NULL) {
+ g_key_file_set_string (key_file, "Desktop", "Session",
+ settings->priv->session_name);
+ }
+
+ if (settings->priv->language_name != NULL) {
+ g_key_file_set_string (key_file, "Desktop", "Language",
+ settings->priv->language_name);
+ }
+
+ contents = g_key_file_to_data (key_file, &length, &file_error);
+
+ if (contents == NULL) {
+ g_propagate_error (error, file_error);
+ goto out;
+ }
+
+ if (!g_file_set_contents (filename, contents, length, &file_error)) {
+ g_free (contents);
+ g_propagate_error (error, file_error);
+ goto out;
+ }
+ g_free (contents);
+
+ is_saved = TRUE;
+out:
+ g_key_file_free (key_file);
+ g_free (filename);
+
+ return is_saved;
+}
Modified: trunk/daemon/gdm-session-settings.h
==============================================================================
--- trunk/daemon/gdm-session-settings.h (original)
+++ trunk/daemon/gdm-session-settings.h Tue Feb 26 21:10:10 2008
@@ -56,6 +56,9 @@
gboolean gdm_session_settings_load (GdmSessionSettings *settings,
const char *home_directory,
GError **error);
+gboolean gdm_session_settings_save (GdmSessionSettings *settings,
+ const char *home_directory,
+ GError **error);
gboolean gdm_session_settings_is_loaded (GdmSessionSettings *settings);
char *gdm_session_settings_get_language_name (GdmSessionSettings *settings);
char *gdm_session_settings_get_session_name (GdmSessionSettings *settings);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]