[nautilus] Convert desktop preferences to gsettings



commit f6697ac99280f4fd9b8920d52bcc7407fd09c15c
Author: Alexander Larsson <alexl redhat com>
Date:   Thu Jul 22 22:29:50 2010 +0200

    Convert desktop preferences to gsettings

 .../nautilus-desktop-link-monitor.c                |   59 ++++++----
 libnautilus-private/nautilus-desktop-link.c        |  126 ++++++++++++--------
 libnautilus-private/nautilus-global-preferences.c  |  110 +-----------------
 libnautilus-private/nautilus-global-preferences.h  |   21 ++--
 libnautilus-private/nautilus-icon-container.c      |   37 ++++---
 .../org.gnome.nautilus.gschema.xml.in              |    6 +-
 src/nautilus-file-management-properties.c          |    7 +-
 src/nautilus-file-management-properties.ui         |    9 ++
 8 files changed, 163 insertions(+), 212 deletions(-)
---
diff --git a/libnautilus-private/nautilus-desktop-link-monitor.c b/libnautilus-private/nautilus-desktop-link-monitor.c
index 43f713e..c2bdc6d 100644
--- a/libnautilus-private/nautilus-desktop-link-monitor.c
+++ b/libnautilus-private/nautilus-desktop-link-monitor.c
@@ -215,7 +215,8 @@ create_mount_link (NautilusDesktopLinkMonitor *monitor,
 		return;
 
 	if ((!g_mount_is_shadowed (mount)) &&
-	    eel_preferences_get_boolean (NAUTILUS_PREFERENCES_DESKTOP_VOLUMES_VISIBLE)) {
+	    g_settings_get_boolean (nautilus_desktop_preferences,
+				    NAUTILUS_PREFERENCES_DESKTOP_VOLUMES_VISIBLE)) {
 		link = nautilus_desktop_link_new_from_mount (mount);
 		monitor->details->mount_links = g_list_prepend (monitor->details->mount_links, link);
 	}
@@ -283,7 +284,7 @@ update_link_visibility (NautilusDesktopLinkMonitor *monitor,
 			NautilusDesktopLinkType     link_type,
 			const char                 *preference_key)
 {
-	if (eel_preferences_get_boolean (preference_key)) {
+	if (g_settings_get_boolean (nautilus_desktop_preferences, preference_key)) {
 		if (*link_ref == NULL) {
 			*link_ref = nautilus_desktop_link_new (link_type);
 		}
@@ -352,10 +353,11 @@ desktop_volumes_visible_changed (gpointer callback_data)
 {
 	NautilusDesktopLinkMonitor *monitor;
 	GList *l, *mounts;
-	
+
 	monitor = NAUTILUS_DESKTOP_LINK_MONITOR (callback_data);
 
-	if (eel_preferences_get_boolean (NAUTILUS_PREFERENCES_DESKTOP_VOLUMES_VISIBLE)) {
+	if (g_settings_get_boolean (nautilus_desktop_preferences,
+				    NAUTILUS_PREFERENCES_DESKTOP_VOLUMES_VISIBLE)) {
 		if (monitor->details->mount_links == NULL) {
 			mounts = g_volume_monitor_get_mounts (monitor->details->volume_monitor);
 			for (l = mounts; l != NULL; l = l->next) {
@@ -375,16 +377,21 @@ static void
 create_link_and_add_preference (NautilusDesktopLink   **link_ref,
 				NautilusDesktopLinkType link_type,
 				const char             *preference_key,
-				EelPreferencesCallback  callback,
+				GCallback               callback,
 				gpointer                callback_data)
 {
-	if (eel_preferences_get_boolean (preference_key)) {
+	char *detailed_signal;
+
+	if (g_settings_get_boolean (nautilus_desktop_preferences, preference_key)) {
 		*link_ref = nautilus_desktop_link_new (link_type);
 	}
 
-	eel_preferences_add_callback (preference_key, callback, callback_data);
+	detailed_signal = g_strconcat ("changed::", preference_key, NULL);
+	g_signal_connect_swapped (nautilus_desktop_preferences,
+				  detailed_signal,
+				  callback, callback_data);
 }
-	     
+
 static void
 nautilus_desktop_link_monitor_init (gpointer object, gpointer klass)
 {
@@ -395,7 +402,7 @@ nautilus_desktop_link_monitor_init (gpointer object, gpointer klass)
 	monitor = NAUTILUS_DESKTOP_LINK_MONITOR (object);
 
 	the_link_monitor = monitor;
-	
+
 	monitor->details = g_new0 (NautilusDesktopLinkMonitorDetails, 1);
 
 	monitor->details->volume_monitor = g_volume_monitor_get ();
@@ -408,25 +415,25 @@ nautilus_desktop_link_monitor_init (gpointer object, gpointer klass)
 	create_link_and_add_preference (&monitor->details->home_link,
 					NAUTILUS_DESKTOP_LINK_HOME,
 					NAUTILUS_PREFERENCES_DESKTOP_HOME_VISIBLE,
-					desktop_home_visible_changed,
+					G_CALLBACK (desktop_home_visible_changed),
 					monitor);
 
 	create_link_and_add_preference (&monitor->details->computer_link,
 					NAUTILUS_DESKTOP_LINK_COMPUTER,
 					NAUTILUS_PREFERENCES_DESKTOP_COMPUTER_VISIBLE,
-					desktop_computer_visible_changed,
+					G_CALLBACK (desktop_computer_visible_changed),
 					monitor);
-	
+
 	create_link_and_add_preference (&monitor->details->trash_link,
 					NAUTILUS_DESKTOP_LINK_TRASH,
 					NAUTILUS_PREFERENCES_DESKTOP_TRASH_VISIBLE,
-					desktop_trash_visible_changed,
+					G_CALLBACK (desktop_trash_visible_changed),
 					monitor);
 
 	create_link_and_add_preference (&monitor->details->network_link,
 					NAUTILUS_DESKTOP_LINK_NETWORK,
 					NAUTILUS_PREFERENCES_DESKTOP_NETWORK_VISIBLE,
-					desktop_network_visible_changed,
+					G_CALLBACK (desktop_network_visible_changed),
 					monitor);
 
 	/* Mount links */
@@ -439,9 +446,10 @@ nautilus_desktop_link_monitor_init (gpointer object, gpointer klass)
 	}
 	g_list_free (mounts);
 
-	eel_preferences_add_callback (NAUTILUS_PREFERENCES_DESKTOP_VOLUMES_VISIBLE,
-				      desktop_volumes_visible_changed,
-				      monitor);
+	g_signal_connect_swapped (nautilus_desktop_preferences,
+				  "changed::" NAUTILUS_PREFERENCES_DESKTOP_VOLUMES_VISIBLE,
+				  G_CALLBACK (desktop_volumes_visible_changed),
+				  monitor);
 
 	monitor->details->mount_id =
 		g_signal_connect_object (monitor->details->volume_monitor, "mount_added",
@@ -466,7 +474,8 @@ remove_link_and_preference (NautilusDesktopLink   **link_ref,
 		*link_ref = NULL;
 	}
 
-	eel_preferences_remove_callback (preference_key, callback, callback_data);
+	g_signal_handlers_disconnect_by_func (nautilus_desktop_preferences,
+					      callback, callback_data);
 }
 
 static void
@@ -477,7 +486,7 @@ desktop_link_monitor_finalize (GObject *object)
 	monitor = NAUTILUS_DESKTOP_LINK_MONITOR (object);
 
 	g_object_unref (monitor->details->volume_monitor);
-	
+
 	/* Default links */
 
 	remove_link_and_preference (&monitor->details->home_link,
@@ -505,13 +514,13 @@ desktop_link_monitor_finalize (GObject *object)
 	g_list_foreach (monitor->details->mount_links, (GFunc)g_object_unref, NULL);
 	g_list_free (monitor->details->mount_links);
 	monitor->details->mount_links = NULL;
-		
+
 	nautilus_directory_unref (monitor->details->desktop_dir);
 	monitor->details->desktop_dir = NULL;
 
-	eel_preferences_remove_callback (NAUTILUS_PREFERENCES_DESKTOP_VOLUMES_VISIBLE,
-					 desktop_volumes_visible_changed,
-					 monitor);
+	g_signal_handlers_disconnect_by_func (nautilus_desktop_preferences,
+					      desktop_volumes_visible_changed,
+					      monitor);
 
 	if (monitor->details->mount_id != 0) {
 		g_source_remove (monitor->details->mount_id);
@@ -522,7 +531,7 @@ desktop_link_monitor_finalize (GObject *object)
 	if (monitor->details->changed_id != 0) {
 		g_source_remove (monitor->details->changed_id);
 	}
-	
+
 	g_free (monitor->details);
 
 	EEL_CALL_PARENT (G_OBJECT_CLASS, finalize, (object));
@@ -534,7 +543,7 @@ nautilus_desktop_link_monitor_class_init (gpointer klass)
 	GObjectClass *object_class;
 
 	object_class = G_OBJECT_CLASS (klass);
-	
+
 	object_class->finalize = desktop_link_monitor_finalize;
 
 }
diff --git a/libnautilus-private/nautilus-desktop-link.c b/libnautilus-private/nautilus-desktop-link.c
index 9951bf9..220401d 100644
--- a/libnautilus-private/nautilus-desktop-link.c
+++ b/libnautilus-private/nautilus-desktop-link.c
@@ -113,8 +113,21 @@ home_name_changed (gpointer callback_data)
 	g_assert (link->details->type == NAUTILUS_DESKTOP_LINK_HOME);
 
 	g_free (link->details->display_name);
-	link->details->display_name = eel_preferences_get (NAUTILUS_PREFERENCES_DESKTOP_HOME_NAME);
-	
+	link->details->display_name = g_settings_get_string (nautilus_desktop_preferences,
+							     NAUTILUS_PREFERENCES_DESKTOP_HOME_NAME);
+	if (link->details->display_name[0] == 0) {
+		g_free (link->details->display_name);
+		/* Note to translators: If it's hard to compose a good home
+		 * icon name from the user name, you can use a string without
+		 * an "%s" here, in which case the home icon name will not
+		 * include the user's name, which should be fine. To avoid a
+		 * warning, put "%.0s" somewhere in the string, which will
+		 * match the user name string passed by the C code, but not
+		 * put the user name in the final string.
+		 */
+		link->details->display_name = g_strdup_printf (_("%s's Home"), g_get_user_name ());
+	}
+
 	nautilus_desktop_link_changed (link);
 }
 
@@ -127,8 +140,9 @@ computer_name_changed (gpointer callback_data)
 	g_assert (link->details->type == NAUTILUS_DESKTOP_LINK_COMPUTER);
 
 	g_free (link->details->display_name);
-	link->details->display_name = eel_preferences_get (NAUTILUS_PREFERENCES_DESKTOP_COMPUTER_NAME);
-	
+	link->details->display_name = g_settings_get_string (nautilus_desktop_preferences,
+							     NAUTILUS_PREFERENCES_DESKTOP_COMPUTER_NAME);
+
 	nautilus_desktop_link_changed (link);
 }
 
@@ -141,7 +155,8 @@ trash_name_changed (gpointer callback_data)
 	g_assert (link->details->type == NAUTILUS_DESKTOP_LINK_TRASH);
 
 	g_free (link->details->display_name);
-	link->details->display_name = eel_preferences_get (NAUTILUS_PREFERENCES_DESKTOP_TRASH_NAME);
+	link->details->display_name = g_settings_get_string (nautilus_desktop_preferences,
+							     NAUTILUS_PREFERENCES_DESKTOP_TRASH_NAME);
 	nautilus_desktop_link_changed (link);
 }
 
@@ -154,7 +169,8 @@ network_name_changed (gpointer callback_data)
 	g_assert (link->details->type == NAUTILUS_DESKTOP_LINK_NETWORK);
 
 	g_free (link->details->display_name);
-	link->details->display_name = eel_preferences_get (NAUTILUS_PREFERENCES_DESKTOP_NETWORK_NAME);
+	link->details->display_name = g_settings_get_string (nautilus_desktop_preferences,
+							     NAUTILUS_PREFERENCES_DESKTOP_NETWORK_NAME);
 	nautilus_desktop_link_changed (link);
 }
 
@@ -169,53 +185,59 @@ nautilus_desktop_link_new (NautilusDesktopLinkType type)
 	switch (type) {
 	case NAUTILUS_DESKTOP_LINK_HOME:
 		link->details->filename = g_strdup ("home");
-		link->details->display_name = eel_preferences_get (NAUTILUS_PREFERENCES_DESKTOP_HOME_NAME);
+		link->details->display_name = g_settings_get_string (nautilus_desktop_preferences,
+								     NAUTILUS_PREFERENCES_DESKTOP_HOME_NAME);
 		link->details->activation_location = g_file_new_for_path (g_get_home_dir ());
 		link->details->icon = g_themed_icon_new (NAUTILUS_ICON_HOME);
 
-		eel_preferences_add_callback (NAUTILUS_PREFERENCES_DESKTOP_HOME_NAME,
-					      home_name_changed,
-					      link);
-		
+		g_signal_connect_swapped (nautilus_desktop_preferences,
+					  "changed::" NAUTILUS_PREFERENCES_DESKTOP_HOME_NAME,
+					  G_CALLBACK (home_name_changed),
+					  link);
 		break;
-		
+
 	case NAUTILUS_DESKTOP_LINK_COMPUTER:
 		link->details->filename = g_strdup ("computer");
-		link->details->display_name = eel_preferences_get (NAUTILUS_PREFERENCES_DESKTOP_COMPUTER_NAME);
+		link->details->display_name = g_settings_get_string (nautilus_desktop_preferences,
+								     NAUTILUS_PREFERENCES_DESKTOP_COMPUTER_NAME);
 		link->details->activation_location = g_file_new_for_uri ("computer:///");
 		/* TODO: This might need a different icon: */
 		link->details->icon = g_themed_icon_new (NAUTILUS_ICON_COMPUTER);
 
-		eel_preferences_add_callback (NAUTILUS_PREFERENCES_DESKTOP_COMPUTER_NAME,
-					      computer_name_changed,
-					      link);
-		
+		g_signal_connect_swapped (nautilus_desktop_preferences,
+					  "changed::" NAUTILUS_PREFERENCES_DESKTOP_COMPUTER_NAME,
+					  G_CALLBACK (computer_name_changed),
+					  link);
 		break;
-		
+
 	case NAUTILUS_DESKTOP_LINK_TRASH:
 		link->details->filename = g_strdup ("trash");
-		link->details->display_name = eel_preferences_get (NAUTILUS_PREFERENCES_DESKTOP_TRASH_NAME);
+		link->details->display_name = g_settings_get_string (nautilus_desktop_preferences,
+								     NAUTILUS_PREFERENCES_DESKTOP_TRASH_NAME);
 		link->details->activation_location = g_file_new_for_uri (EEL_TRASH_URI);
 		link->details->icon = nautilus_trash_monitor_get_icon ();
-		
-		eel_preferences_add_callback (NAUTILUS_PREFERENCES_DESKTOP_TRASH_NAME,
-					      trash_name_changed,
-					      link);
+
+		g_signal_connect_swapped (nautilus_desktop_preferences,
+					  "changed::" NAUTILUS_PREFERENCES_DESKTOP_TRASH_NAME,
+					  G_CALLBACK (trash_name_changed),
+					  link);
 		link->details->signal_handler_obj = G_OBJECT (nautilus_trash_monitor_get ());
 		link->details->signal_handler =
 			g_signal_connect_object (nautilus_trash_monitor_get (), "trash_state_changed",
-						 G_CALLBACK (trash_state_changed_callback), link, 0);	
+						 G_CALLBACK (trash_state_changed_callback), link, 0);
 		break;
 
 	case NAUTILUS_DESKTOP_LINK_NETWORK:
 		link->details->filename = g_strdup ("network");
-		link->details->display_name = eel_preferences_get (NAUTILUS_PREFERENCES_DESKTOP_NETWORK_NAME);
+		link->details->display_name = g_settings_get_string (nautilus_desktop_preferences,
+								     NAUTILUS_PREFERENCES_DESKTOP_NETWORK_NAME);
 		link->details->activation_location = g_file_new_for_uri ("network:///");
 		link->details->icon = g_themed_icon_new (NAUTILUS_ICON_NETWORK);
 
-		eel_preferences_add_callback (NAUTILUS_PREFERENCES_DESKTOP_NETWORK_NAME,
-					      network_name_changed,
-					      link);
+		g_signal_connect_swapped (nautilus_desktop_preferences,
+					  "changed::" NAUTILUS_PREFERENCES_DESKTOP_NETWORK_NAME,
+					  G_CALLBACK (network_name_changed),
+					  link);
 		break;
 
 	default:
@@ -236,7 +258,7 @@ nautilus_desktop_link_new_from_mount (GMount *mount)
 	char *name, *filename;
 
 	link = NAUTILUS_DESKTOP_LINK (g_object_new (NAUTILUS_TYPE_DESKTOP_LINK, NULL));
-	
+
 	link->details->type = NAUTILUS_DESKTOP_LINK_MOUNT;
 
 	link->details->mount = g_object_ref (mount);
@@ -352,20 +374,24 @@ nautilus_desktop_link_rename (NautilusDesktopLink     *link,
 {
 	switch (link->details->type) {
 	case NAUTILUS_DESKTOP_LINK_HOME:
-		eel_preferences_set (NAUTILUS_PREFERENCES_DESKTOP_HOME_NAME,
-				     name);
+		g_settings_set_string (nautilus_desktop_preferences,
+				       NAUTILUS_PREFERENCES_DESKTOP_HOME_NAME,
+				       name);
 		break;
 	case NAUTILUS_DESKTOP_LINK_COMPUTER:
-		eel_preferences_set (NAUTILUS_PREFERENCES_DESKTOP_COMPUTER_NAME,
-				     name);
+		g_settings_set_string (nautilus_desktop_preferences,
+				       NAUTILUS_PREFERENCES_DESKTOP_COMPUTER_NAME,
+				       name);
 		break;
 	case NAUTILUS_DESKTOP_LINK_TRASH:
-		eel_preferences_set (NAUTILUS_PREFERENCES_DESKTOP_TRASH_NAME,
-				     name);
+		g_settings_set_string (nautilus_desktop_preferences,
+				       NAUTILUS_PREFERENCES_DESKTOP_TRASH_NAME,
+				       name);
 		break;
 	case NAUTILUS_DESKTOP_LINK_NETWORK:
-		eel_preferences_set (NAUTILUS_PREFERENCES_DESKTOP_NETWORK_NAME,
-				     name);
+		g_settings_set_string (nautilus_desktop_preferences,
+				       NAUTILUS_PREFERENCES_DESKTOP_NETWORK_NAME,
+				       name);
 		break;
 	default:
 		g_assert_not_reached ();
@@ -373,7 +399,7 @@ nautilus_desktop_link_rename (NautilusDesktopLink     *link,
 		 * We didn't support that before. */
 		break;
 	}
-	
+
 	return TRUE;
 }
 
@@ -404,27 +430,27 @@ desktop_link_finalize (GObject *object)
 	}
 
 	if (link->details->type == NAUTILUS_DESKTOP_LINK_HOME) {
-		eel_preferences_remove_callback (NAUTILUS_PREFERENCES_DESKTOP_HOME_NAME,
+		g_signal_handlers_disconnect_by_func (nautilus_desktop_preferences,
 						 home_name_changed,
 						 link);
 	}
-	
+
 	if (link->details->type == NAUTILUS_DESKTOP_LINK_COMPUTER) {
-		eel_preferences_remove_callback (NAUTILUS_PREFERENCES_DESKTOP_COMPUTER_NAME,
-						 computer_name_changed,
-						 link);
+		g_signal_handlers_disconnect_by_func (nautilus_desktop_preferences,
+						      computer_name_changed,
+						      link);
 	}
-	
+
 	if (link->details->type == NAUTILUS_DESKTOP_LINK_TRASH) {
-		eel_preferences_remove_callback (NAUTILUS_PREFERENCES_DESKTOP_TRASH_NAME,
-						 trash_name_changed,
-						 link);
+		g_signal_handlers_disconnect_by_func (nautilus_desktop_preferences,
+						      trash_name_changed,
+						      link);
 	}
 
 	if (link->details->type == NAUTILUS_DESKTOP_LINK_NETWORK) {
-		eel_preferences_remove_callback (NAUTILUS_PREFERENCES_DESKTOP_NETWORK_NAME,
-						 network_name_changed,
-						 link);
+		g_signal_handlers_disconnect_by_func (nautilus_desktop_preferences,
+						      network_name_changed,
+						      link);
 	}
 
 	if (link->details->type == NAUTILUS_DESKTOP_LINK_MOUNT) {
diff --git a/libnautilus-private/nautilus-global-preferences.c b/libnautilus-private/nautilus-global-preferences.c
index d284fff..2e5948a 100644
--- a/libnautilus-private/nautilus-global-preferences.c
+++ b/libnautilus-private/nautilus-global-preferences.c
@@ -48,10 +48,6 @@ static const char *EXTRA_MONITOR_PATHS[] = { "/desktop/gnome/file_views",
 /* Forward declarations */
 static void     global_preferences_install_defaults      (void);
 static void     global_preferences_register_enumerations (void);
-static gpointer default_home_link_name                   (void);
-static gpointer default_computer_link_name               (void);
-static gpointer default_trash_link_name                  (void);
-static gpointer default_network_link_name                (void);
 
 
 /* An enumeration used for installing type specific preferences defaults. */
@@ -90,17 +86,7 @@ static EelEnumerationEntry file_size_enum_entries[] = {
 	{ "104857600",	    N_("100 MB"),	104857600 },
 	{ "1073741824",     N_("1 GB"),         1073741824 },
 	{ "2147483648",     N_("2 GB"),         2147483648U },
- 	{ "4294967295",     N_("4 GB"),         4294967295U }
-};
-
-static EelEnumerationEntry default_icon_view_sort_order_enum_entries[] = {
-	{ "manually",	       N_("Manually"),		    PREFERENCES_SORT_ORDER_MANUALLY },
-	{ "--------",             "--------" },
-	{ "name",	       N_("By Name"),		    NAUTILUS_FILE_SORT_BY_DISPLAY_NAME },
-	{ "size",	       N_("By Size"),		    NAUTILUS_FILE_SORT_BY_SIZE },
-	{ "type",	       N_("By Type"),		    NAUTILUS_FILE_SORT_BY_TYPE },
-	{ "modification_date", N_("By Modification Date"),  NAUTILUS_FILE_SORT_BY_MTIME }, 
-	{ "emblems",	       N_("By Emblems"),	    NAUTILUS_FILE_SORT_BY_EMBLEMS }
+	{ "4294967295",     N_("4 GB"),         4294967295U }
 };
 
 static EelEnumerationEntry standard_font_size_entries[] = {
@@ -191,7 +177,7 @@ static const PreferenceDefault preference_defaults[] = {
 	  NULL, NULL,
 	  "default_zoom_level"
 	},
-	
+
 	/* List View Default Preferences */
 	{ NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_SORT_ORDER,
 	  PREFERENCE_STRING,
@@ -210,60 +196,6 @@ static const PreferenceDefault preference_defaults[] = {
 	  "default_zoom_level"
 	},
 
-	/* Desktop Preferences */
-	{ NAUTILUS_PREFERENCES_DESKTOP_HOME_VISIBLE,
-	  PREFERENCE_BOOLEAN,
-	  GINT_TO_POINTER (FALSE)
-	},
-	
-	{ NAUTILUS_PREFERENCES_DESKTOP_HOME_NAME,
-	  PREFERENCE_STRING,
-	  NULL,
-	  default_home_link_name, g_free,
-	},
-	
-	{ NAUTILUS_PREFERENCES_DESKTOP_COMPUTER_VISIBLE,
-	  PREFERENCE_BOOLEAN,
-	  GINT_TO_POINTER (TRUE)
-	},
-	
-	{ NAUTILUS_PREFERENCES_DESKTOP_COMPUTER_NAME,
-	  PREFERENCE_STRING,
-	  NULL,
-	  default_computer_link_name, g_free,
-	},
-	
-	{ NAUTILUS_PREFERENCES_DESKTOP_TRASH_VISIBLE,
-	  PREFERENCE_BOOLEAN,
-	  GINT_TO_POINTER (TRUE)
-	},
-	
-	{ NAUTILUS_PREFERENCES_DESKTOP_TRASH_NAME,
-	  PREFERENCE_STRING,
-	  NULL,
-	  default_trash_link_name, g_free,
-	},
-	
-	{ NAUTILUS_PREFERENCES_DESKTOP_VOLUMES_VISIBLE,
-	  PREFERENCE_BOOLEAN,
-	  GINT_TO_POINTER (TRUE)
-	},
-
-	{ NAUTILUS_PREFERENCES_DESKTOP_NETWORK_VISIBLE,
-	  PREFERENCE_BOOLEAN,
-	  GINT_TO_POINTER (FALSE)
-	},
-
-	{ NAUTILUS_PREFERENCES_DESKTOP_NETWORK_NAME,
-	  PREFERENCE_STRING,
-	  NULL,
-	  default_network_link_name, g_free,
-	},
-
-	{ NAUTILUS_PREFERENCES_DESKTOP_TEXT_ELLIPSIS_LIMIT,
-	  PREFERENCE_INTEGER,
-	  GINT_TO_POINTER (3)
-	},
 	{ NAUTILUS_PREFERENCES_LOCKDOWN_COMMAND_LINE,
 	  PREFERENCE_BOOLEAN,
 	  GINT_TO_POINTER (FALSE)
@@ -271,40 +203,6 @@ static const PreferenceDefault preference_defaults[] = {
 	{ NULL }
 };
 
-static gpointer
-default_home_link_name (void)
-{
-	/* Note to translators: If it's hard to compose a good home
-	 * icon name from the user name, you can use a string without
-	 * an "%s" here, in which case the home icon name will not
-	 * include the user's name, which should be fine. To avoid a
-	 * warning, put "%.0s" somewhere in the string, which will
-	 * match the user name string passed by the C code, but not
-	 * put the user name in the final string.
-	 */
-	return g_strdup_printf (_("%s's Home"), g_get_user_name ());
-}
-
-static gpointer
-default_computer_link_name (void)
-{
-	return g_strdup (_("Computer"));
-}
-
-static gpointer
-default_trash_link_name (void)
-{
-	return g_strdup (_("Trash"));
-}
-
-static gpointer
-default_network_link_name (void)
-{
-	return g_strdup (_("Network Servers"));
-}
-
-
-
 /**
  * global_preferences_register_enumerations
  *
@@ -324,9 +222,6 @@ global_preferences_register_enumerations (void)
 	 * populate widgets and route preferences changes between the
 	 * storage (GConf) and the displayed values.
 	 */
-	eel_enumeration_register ("default_icon_view_sort_order",
-				  default_icon_view_sort_order_enum_entries,
-				  G_N_ELEMENTS (default_icon_view_sort_order_enum_entries));
 	eel_enumeration_register ("default_zoom_level",
 				  default_zoom_level_enum_entries,
 				  G_N_ELEMENTS (default_zoom_level_enum_entries));
@@ -511,6 +406,7 @@ nautilus_global_preferences_init (void)
 	nautilus_media_preferences = g_settings_new("org.gnome.media-handling");
 	nautilus_window_state = g_settings_new("org.gnome.nautilus.window-state");
 	nautilus_icon_view_preferences = g_settings_new("org.gnome.nautilus.icon-view");
+	nautilus_desktop_preferences = g_settings_new("org.gnome.nautilus.desktop");
 
 	/* Set up storage for values accessed in this file */
 	g_signal_connect_swapped (nautilus_icon_view_preferences,
diff --git a/libnautilus-private/nautilus-global-preferences.h b/libnautilus-private/nautilus-global-preferences.h
index fdd4690..ab96a43 100644
--- a/libnautilus-private/nautilus-global-preferences.h
+++ b/libnautilus-private/nautilus-global-preferences.h
@@ -161,7 +161,7 @@ enum
 
 /* ellipsization preferences */
 #define NAUTILUS_PREFERENCES_ICON_VIEW_TEXT_ELLIPSIS_LIMIT		"text-ellipsis-limit"
-#define NAUTILUS_PREFERENCES_DESKTOP_TEXT_ELLIPSIS_LIMIT		"desktop/text_ellipsis_limit"
+#define NAUTILUS_PREFERENCES_DESKTOP_TEXT_ELLIPSIS_LIMIT		"text-ellipsis-limit"
 
 /* Compact View */
 #define NAUTILUS_PREFERENCES_COMPACT_VIEW_DEFAULT_ZOOM_LEVEL		"compact_view/default_zoom_level"
@@ -210,15 +210,15 @@ typedef enum
 	NAUTILUS_SIMPLE_SEARCH_BAR
 } NautilusSearchBarMode;
 
-#define NAUTILUS_PREFERENCES_DESKTOP_HOME_VISIBLE          "desktop/home_icon_visible"
-#define NAUTILUS_PREFERENCES_DESKTOP_HOME_NAME             "desktop/home_icon_name"
-#define NAUTILUS_PREFERENCES_DESKTOP_COMPUTER_VISIBLE      "desktop/computer_icon_visible"
-#define NAUTILUS_PREFERENCES_DESKTOP_COMPUTER_NAME         "desktop/computer_icon_name"
-#define NAUTILUS_PREFERENCES_DESKTOP_TRASH_VISIBLE         "desktop/trash_icon_visible"
-#define NAUTILUS_PREFERENCES_DESKTOP_TRASH_NAME            "desktop/trash_icon_name"
-#define NAUTILUS_PREFERENCES_DESKTOP_VOLUMES_VISIBLE	   "desktop/volumes_visible"
-#define NAUTILUS_PREFERENCES_DESKTOP_NETWORK_VISIBLE       "desktop/network_icon_visible"
-#define NAUTILUS_PREFERENCES_DESKTOP_NETWORK_NAME          "desktop/network_icon_name"
+#define NAUTILUS_PREFERENCES_DESKTOP_HOME_VISIBLE          "home-icon-visible"
+#define NAUTILUS_PREFERENCES_DESKTOP_HOME_NAME             "home-icon-name"
+#define NAUTILUS_PREFERENCES_DESKTOP_COMPUTER_VISIBLE      "computer-icon-visible"
+#define NAUTILUS_PREFERENCES_DESKTOP_COMPUTER_NAME         "computer-icon-name"
+#define NAUTILUS_PREFERENCES_DESKTOP_TRASH_VISIBLE         "trash-icon-visible"
+#define NAUTILUS_PREFERENCES_DESKTOP_TRASH_NAME            "trash-icon-name"
+#define NAUTILUS_PREFERENCES_DESKTOP_VOLUMES_VISIBLE	   "volumes-visible"
+#define NAUTILUS_PREFERENCES_DESKTOP_NETWORK_VISIBLE       "network-icon-visible"
+#define NAUTILUS_PREFERENCES_DESKTOP_NETWORK_NAME          "network-icon-name"
 
 /* Lockdown */
 #define NAUTILUS_PREFERENCES_LOCKDOWN_COMMAND_LINE         "/desktop/gnome/lockdown/disable_command_line"
@@ -228,6 +228,7 @@ char *nautilus_global_preferences_get_default_folder_viewer_preference_as_iid (v
 
 GSettings *nautilus_preferences;
 GSettings *nautilus_icon_view_preferences;
+GSettings *nautilus_desktop_preferences;
 GSettings *nautilus_media_preferences;
 GSettings *nautilus_window_state;
 
diff --git a/libnautilus-private/nautilus-icon-container.c b/libnautilus-private/nautilus-icon-container.c
index d4bb109..7106312 100644
--- a/libnautilus-private/nautilus-icon-container.c
+++ b/libnautilus-private/nautilus-icon-container.c
@@ -4054,6 +4054,9 @@ finalize (GObject *object)
 	g_signal_handlers_disconnect_by_func (nautilus_icon_view_preferences,
 					      text_ellipsis_limit_changed_container_callback,
 					      object);
+	g_signal_handlers_disconnect_by_func (nautilus_desktop_preferences,
+					      text_ellipsis_limit_changed_container_callback,
+					      object);
 
 	g_hash_table_destroy (details->icon_set);
 	details->icon_set = NULL;
@@ -5653,9 +5656,10 @@ nautilus_icon_container_constructor (GType                  type,
 
 	container = NAUTILUS_ICON_CONTAINER (object);
 	if (nautilus_icon_container_get_is_desktop (container)) {
-		eel_preferences_add_callback_while_alive (NAUTILUS_PREFERENCES_DESKTOP_TEXT_ELLIPSIS_LIMIT,
-							  text_ellipsis_limit_changed_container_callback,
-							  container, G_OBJECT (container));
+		g_signal_connect_swapped (nautilus_desktop_preferences,
+					  "changed::" NAUTILUS_PREFERENCES_DESKTOP_TEXT_ELLIPSIS_LIMIT,
+					  G_CALLBACK (text_ellipsis_limit_changed_container_callback),
+					  container);
 	} else {
 		g_signal_connect_swapped (nautilus_icon_view_preferences,
 					  "changed::" NAUTILUS_PREFERENCES_ICON_VIEW_TEXT_ELLIPSIS_LIMIT,
@@ -6289,7 +6293,7 @@ desktop_text_ellipsis_limit_changed_callback (gpointer callback_data)
 {
 	int pref;
 
-	pref = eel_preferences_get_integer (NAUTILUS_PREFERENCES_DESKTOP_TEXT_ELLIPSIS_LIMIT);
+	pref = g_settings_get_int (nautilus_desktop_preferences, NAUTILUS_PREFERENCES_DESKTOP_TEXT_ELLIPSIS_LIMIT);
 	desktop_text_ellipsis_limit = pref;
 }
 
@@ -6299,27 +6303,27 @@ nautilus_icon_container_init (NautilusIconContainer *container)
 	NautilusIconContainerDetails *details;
 	EelBackground *background;
 	static gboolean setup_prefs = FALSE;
-	
+
 	details = g_new0 (NautilusIconContainerDetails, 1);
 
 	details->icon_set = g_hash_table_new (g_direct_hash, g_direct_equal);
 	details->layout_timestamp = UNDEFINED_TIME;
 
-        details->zoom_level = NAUTILUS_ZOOM_LEVEL_STANDARD;
+	details->zoom_level = NAUTILUS_ZOOM_LEVEL_STANDARD;
 
 	details->font_size_table[NAUTILUS_ZOOM_LEVEL_SMALLEST] = -2 * PANGO_SCALE;
-        details->font_size_table[NAUTILUS_ZOOM_LEVEL_SMALLER] = -2 * PANGO_SCALE;
-        details->font_size_table[NAUTILUS_ZOOM_LEVEL_SMALL] = -0 * PANGO_SCALE;
-        details->font_size_table[NAUTILUS_ZOOM_LEVEL_STANDARD] = 0 * PANGO_SCALE;
-        details->font_size_table[NAUTILUS_ZOOM_LEVEL_LARGE] = 0 * PANGO_SCALE;
-        details->font_size_table[NAUTILUS_ZOOM_LEVEL_LARGER] = 0 * PANGO_SCALE;
-        details->font_size_table[NAUTILUS_ZOOM_LEVEL_LARGEST] = 0 * PANGO_SCALE;
+	details->font_size_table[NAUTILUS_ZOOM_LEVEL_SMALLER] = -2 * PANGO_SCALE;
+	details->font_size_table[NAUTILUS_ZOOM_LEVEL_SMALL] = -0 * PANGO_SCALE;
+	details->font_size_table[NAUTILUS_ZOOM_LEVEL_STANDARD] = 0 * PANGO_SCALE;
+	details->font_size_table[NAUTILUS_ZOOM_LEVEL_LARGE] = 0 * PANGO_SCALE;
+	details->font_size_table[NAUTILUS_ZOOM_LEVEL_LARGER] = 0 * PANGO_SCALE;
+	details->font_size_table[NAUTILUS_ZOOM_LEVEL_LARGEST] = 0 * PANGO_SCALE;
 
 	container->details = details;
 
 	/* when the background changes, we must set up the label text color */
 	background = eel_get_widget_background (GTK_WIDGET (container));
-	
+
 	g_signal_connect_object (background, "appearance_changed",
 				 G_CALLBACK (update_label_color), container, 0);
 
@@ -6340,9 +6344,10 @@ nautilus_icon_container_init (NautilusIconContainer *container)
 					  NULL);
 		text_ellipsis_limit_changed_callback (NULL);
 
-		eel_preferences_add_callback (NAUTILUS_PREFERENCES_DESKTOP_TEXT_ELLIPSIS_LIMIT,
-					      desktop_text_ellipsis_limit_changed_callback,
-					      NULL);
+		g_signal_connect_swapped (nautilus_icon_view_preferences,
+					  "changed::" NAUTILUS_PREFERENCES_DESKTOP_TEXT_ELLIPSIS_LIMIT,
+					  G_CALLBACK (desktop_text_ellipsis_limit_changed_callback),
+					  NULL);
 		desktop_text_ellipsis_limit_changed_callback (NULL);
 
 		setup_prefs = TRUE;
diff --git a/libnautilus-private/org.gnome.nautilus.gschema.xml.in b/libnautilus-private/org.gnome.nautilus.gschema.xml.in
index 2770bc6..27e0537 100644
--- a/libnautilus-private/org.gnome.nautilus.gschema.xml.in
+++ b/libnautilus-private/org.gnome.nautilus.gschema.xml.in
@@ -391,7 +391,7 @@
       <_description>If this is set to true, an icon linking to the Network Servers view will be put on the desktop.</_description>
     </key>
     <key name="computer-icon-name" type="s">
-      <default>''</default>
+      <default l10n="messages" context="computer-icon-name">'Computer'</default>
       <_summary>Desktop computer icon name</_summary>
       <_description>This name can be set if you want a custom name for the computer icon on the desktop.</_description>
     </key>
@@ -401,12 +401,12 @@
       <_description>This name can be set if you want a custom name for the home icon on the desktop.</_description>
     </key>
     <key name="trash-icon-name" type="s">
-      <default>''</default>
+      <default l10n="messages" context="trash-icon-name">'Trash'</default>
       <_summary>Desktop trash icon name</_summary>
       <_description>This name can be set if you want a custom name for the trash icon on the desktop.</_description>
     </key>
     <key name="network-icon-name" type="s">
-      <default>''</default>
+      <default l10n="messages" context="network-icon-name">'Network Servers'</default>
       <_summary>Network servers icon name</_summary>
       <_description>This name can be set if you want a custom name for the network servers icon on the desktop.</_description>
     </key>
diff --git a/src/nautilus-file-management-properties.c b/src/nautilus-file-management-properties.c
index 8ef1317..71703ac 100644
--- a/src/nautilus-file-management-properties.c
+++ b/src/nautilus-file-management-properties.c
@@ -93,11 +93,15 @@ static const char * const zoom_values[] = {
 };
 
 static const char * const sort_order_values[] = {
+	"manually",
 	"name",
+	"directory",
 	"size",
 	"type",
-	"modification_date",
+	"mtime",
+	"atime",
 	"emblems",
+	"trash-time",
 	NULL
 };
 
@@ -977,6 +981,7 @@ nautilus_file_management_properties_dialog_setup (GtkBuilder *builder, GtkWindow
 			   NAUTILUS_FILE_MANAGEMENT_PROPERTIES_SORT_ORDER_WIDGET,
 			   NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_SORT_ORDER,
 			   (const char **) sort_order_values);
+	if (0) // TODO
 	eel_preferences_builder_connect_string_enum_combo_box_slave (builder,
 								     NAUTILUS_FILE_MANAGEMENT_PROPERTIES_SORT_ORDER_WIDGET,
 								     NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_SORT_ORDER);
diff --git a/src/nautilus-file-management-properties.ui b/src/nautilus-file-management-properties.ui
index eefd82a..0ce86ca 100644
--- a/src/nautilus-file-management-properties.ui
+++ b/src/nautilus-file-management-properties.ui
@@ -26,6 +26,9 @@
         <col id="0" translatable="yes">By Name</col>
       </row>
       <row>
+        <col id="0" translatable="yes">By Path</col>
+      </row>
+      <row>
         <col id="0" translatable="yes">By Size</col>
       </row>
       <row>
@@ -35,8 +38,14 @@
         <col id="0" translatable="yes">By Modification Date</col>
       </row>
       <row>
+        <col id="0" translatable="yes">By Access Date</col>
+      </row>
+      <row>
         <col id="0" translatable="yes">By Emblems</col>
       </row>
+      <row>
+        <col id="0" translatable="yes">By Trashed Date</col>
+      </row>
     </data>
   </object>
   <object class="GtkListStore" id="model3">



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]