[nautilus] Convert list-view preferences to gsettings



commit 36c238331d19b9a33f13fcbaf49928f35b78ff8c
Author: Alexander Larsson <alexl redhat com>
Date:   Fri Jul 23 10:58:56 2010 +0200

    Convert list-view preferences to gsettings
    
    Also removes unused default-use-manual-layout setting, and
    joins the sort order preferences of the list view and the icon
    view.

 libnautilus-private/nautilus-global-preferences.c |   57 +-----------
 libnautilus-private/nautilus-global-preferences.h |   24 +----
 src/file-manager/fm-icon-view.c                   |   82 +++-------------
 src/file-manager/fm-list-view.c                   |  109 ++++++++++++++-------
 src/nautilus-file-management-properties.c         |   61 ++++++------
 5 files changed, 125 insertions(+), 208 deletions(-)
---
diff --git a/libnautilus-private/nautilus-global-preferences.c b/libnautilus-private/nautilus-global-preferences.c
index da255e5..2a2da50 100644
--- a/libnautilus-private/nautilus-global-preferences.c
+++ b/libnautilus-private/nautilus-global-preferences.c
@@ -160,24 +160,6 @@ typedef struct
  */
 static const PreferenceDefault preference_defaults[] = {
 
-	/* List View Default Preferences */
-	{ NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_SORT_ORDER,
-	  PREFERENCE_STRING,
-	  "name",
-	  NULL, NULL,
-	  NULL,
-	},
-	{ NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_SORT_IN_REVERSE_ORDER,
-	  PREFERENCE_BOOLEAN,
-	  GINT_TO_POINTER (FALSE)
-	},
-	{ NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_ZOOM_LEVEL,
-	  PREFERENCE_STRING,
-	  "smaller",
-	  NULL, NULL,
-	  "default_zoom_level"
-	},
-
 	{ NAUTILUS_PREFERENCES_LOCKDOWN_COMMAND_LINE,
 	  PREFERENCE_BOOLEAN,
 	  GINT_TO_POINTER (FALSE)
@@ -328,38 +310,6 @@ nautilus_global_preferences_get_default_folder_viewer_preference_as_iid (void)
 	return g_strdup (viewer_iid);
 }
 
-/* The icon view uses 2 variables to store the sort order and
- * whether to use manual layout.  However, the UI for these
- * preferences presensts them as single option menu.  So we
- * use the following preference as a proxy for the other two.
- * In nautilus-global-preferences.c we install callbacks for
- * the proxy preference and update the other 2 when it changes
- */
-static void
-default_icon_view_sort_order_or_manual_layout_changed_callback (gpointer callback_data)
-{
-	int default_sort_order_or_manual_layout;
-	int default_sort_order;
-
-	default_sort_order_or_manual_layout =
-		g_settings_get_enum (nautilus_icon_view_preferences,
-				     NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_SORT_ORDER_OR_MANUAL_LAYOUT);
-
-	g_settings_set_boolean (nautilus_icon_view_preferences, NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_USE_MANUAL_LAYOUT,
-				default_sort_order_or_manual_layout == PREFERENCES_SORT_ORDER_MANUALLY);
-
-	if (default_sort_order_or_manual_layout != PREFERENCES_SORT_ORDER_MANUALLY) {
-		default_sort_order = default_sort_order_or_manual_layout;
-
-		g_return_if_fail (default_sort_order >= NAUTILUS_FILE_SORT_BY_DISPLAY_NAME);
-		g_return_if_fail (default_sort_order <= NAUTILUS_FILE_SORT_BY_EMBLEMS);
-
-		g_settings_set_enum (nautilus_icon_view_preferences,
-				     NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_SORT_ORDER,
-				     default_sort_order);
-	}
-}
-
 void
 nautilus_global_preferences_init (void)
 {
@@ -388,16 +338,11 @@ 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_list_view_preferences = g_settings_new("org.gnome.nautilus.list-view");
 	nautilus_compact_view_preferences = g_settings_new("org.gnome.nautilus.compact-view");
 	nautilus_desktop_preferences = g_settings_new("org.gnome.nautilus.desktop");
 	nautilus_tree_sidebar_preferences = g_settings_new("org.gnome.nautilus.sidebar-panels.tree");
 
-	/* Set up storage for values accessed in this file */
-	g_signal_connect_swapped (nautilus_icon_view_preferences,
-				  "changed::" NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_SORT_ORDER_OR_MANUAL_LAYOUT,
-				  G_CALLBACK (default_icon_view_sort_order_or_manual_layout_changed_callback), 
-				  NULL);
-
 	/* Preload everything in a big batch */
 	eel_gconf_preload_cache ("/apps/nautilus/preferences",
 				 GCONF_CLIENT_PRELOAD_ONELEVEL);
diff --git a/libnautilus-private/nautilus-global-preferences.h b/libnautilus-private/nautilus-global-preferences.h
index 26c6453..4968857 100644
--- a/libnautilus-private/nautilus-global-preferences.h
+++ b/libnautilus-private/nautilus-global-preferences.h
@@ -116,6 +116,8 @@ typedef enum
 
 /* Sorting order */
 #define NAUTILUS_PREFERENCES_SORT_DIRECTORIES_FIRST		"sort-directories-first"
+#define NAUTILUS_PREFERENCES_DEFAULT_SORT_ORDER			"default-sort-order"
+#define NAUTILUS_PREFERENCES_DEFAULT_SORT_IN_REVERSE_ORDER	"default-sort-in-reverse-order"
 
 /* The default folder viewer - one of the two enums below */
 #define NAUTILUS_PREFERENCES_DEFAULT_FOLDER_VIEWER		"default-folder-viewer"
@@ -135,24 +137,11 @@ enum
 
 
 /* Icon View */
-#define NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_SORT_IN_REVERSE_ORDER	"default-sort-in-reverse-order"
-#define NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_SORT_ORDER		"default-sort-order"
 #define NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_USE_TIGHTER_LAYOUT	"default-use-tighter-layout"
 #define NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_ZOOM_LEVEL		"default-zoom-level"
-#define NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_USE_MANUAL_LAYOUT	"default-use-manual-layout"
 
 #define NAUTILUS_PREFERENCES_ICON_VIEW_LABELS_BESIDE_ICONS		"labels-beside-icons"
 
-
-/* The icon view uses 2 variables to store the sort order and
- * whether to use manual layout.  However, the UI for these
- * preferences presensts them as single option menu.  So we
- * use the following preference as a proxy for the other two.
- * In nautilus-global-preferences.c we install callbacks for
- * the proxy preference and update the other 2 when it changes
- */
-#define NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_SORT_ORDER_OR_MANUAL_LAYOUT "default-sort-order-or-manual-layout"
-
 /* Which text attributes appear beneath icon names */
 #define NAUTILUS_PREFERENCES_ICON_VIEW_CAPTIONS				"captions"
 
@@ -168,11 +157,9 @@ enum
 #define NAUTILUS_PREFERENCES_COMPACT_VIEW_ALL_COLUMNS_SAME_WIDTH	"all-columns-have-same-width"
 
 /* List View */
-#define NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_SORT_IN_REVERSE_ORDER	"list_view/default_sort_in_reverse_order"
-#define NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_SORT_ORDER		"list_view/default_sort_order"
-#define NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_ZOOM_LEVEL		"list_view/default_zoom_level"
-#define NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_VISIBLE_COLUMNS	        "list_view/default_visible_columns"
-#define NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_COLUMN_ORDER	        "list_view/default_column_order"
+#define NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_ZOOM_LEVEL		"default-zoom-level"
+#define NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_VISIBLE_COLUMNS		"default-visible-columns"
+#define NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_COLUMN_ORDER		"default-column-order"
 
 enum
 {
@@ -224,6 +211,7 @@ char *nautilus_global_preferences_get_default_folder_viewer_preference_as_iid (v
 
 GSettings *nautilus_preferences;
 GSettings *nautilus_icon_view_preferences;
+GSettings *nautilus_list_view_preferences;
 GSettings *nautilus_compact_view_preferences;
 GSettings *nautilus_desktop_preferences;
 GSettings *nautilus_tree_sidebar_preferences;
diff --git a/src/file-manager/fm-icon-view.c b/src/file-manager/fm-icon-view.c
index cb52aba..320fbe4 100644
--- a/src/file-manager/fm-icon-view.c
+++ b/src/file-manager/fm-icon-view.c
@@ -193,7 +193,6 @@ static NautilusFileSortType get_default_sort_order                    (NautilusF
 static void default_sort_order_changed_callback            (gpointer callback_data);
 static void default_sort_in_reverse_order_changed_callback (gpointer callback_data);
 static void default_use_tighter_layout_changed_callback    (gpointer callback_data);
-static void default_use_manual_layout_changed_callback     (gpointer callback_data);
 static void default_zoom_level_changed_callback            (gpointer callback_data);
 static void labels_beside_icons_changed_callback           (gpointer callback_data);
 static void all_columns_same_width_changed_callback	   (gpointer callback_data);
@@ -243,19 +242,16 @@ fm_icon_view_finalize (GObject *object)
 
 	g_free (icon_view->details);
 
-	g_signal_handlers_disconnect_by_func (nautilus_icon_view_preferences,
+	g_signal_handlers_disconnect_by_func (nautilus_preferences,
 					      default_sort_order_changed_callback,
 					      icon_view);
-	g_signal_handlers_disconnect_by_func (nautilus_icon_view_preferences,
+	g_signal_handlers_disconnect_by_func (nautilus_preferences,
 					      default_sort_in_reverse_order_changed_callback,
 					      icon_view);
 	g_signal_handlers_disconnect_by_func (nautilus_icon_view_preferences,
 					      default_use_tighter_layout_changed_callback,
 					      icon_view);
 	g_signal_handlers_disconnect_by_func (nautilus_icon_view_preferences,
-					      default_use_manual_layout_changed_callback,
-					      icon_view);
-	g_signal_handlers_disconnect_by_func (nautilus_icon_view_preferences,
 					      default_zoom_level_changed_callback,
 					      icon_view);
 	g_signal_handlers_disconnect_by_func (nautilus_icon_view_preferences,
@@ -772,11 +768,11 @@ get_default_sort_order (NautilusFile *file, gboolean *reversed)
 
 	if (auto_storaged_added == FALSE) {
 		auto_storaged_added = TRUE;
-		eel_g_settings_add_auto_enum (nautilus_icon_view_preferences,
-					      NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_SORT_ORDER,
+		eel_g_settings_add_auto_enum (nautilus_preferences,
+					      NAUTILUS_PREFERENCES_DEFAULT_SORT_ORDER,
 					      (int *) &default_sort_order);
-		eel_g_settings_add_auto_boolean (nautilus_icon_view_preferences,
-						 NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_SORT_IN_REVERSE_ORDER,
+		eel_g_settings_add_auto_boolean (nautilus_preferences,
+						 NAUTILUS_PREFERENCES_DEFAULT_SORT_IN_REVERSE_ORDER,
 						 &default_sort_in_reverse_order);
 
 	}
@@ -926,24 +922,6 @@ fm_icon_view_set_directory_keep_aligned (FMIconView *icon_view,
 		 keep_aligned);
 }
 
-/* maintainence of auto layout boolean */
-static gboolean default_directory_manual_layout = FALSE;
-
-static gboolean
-get_default_directory_manual_layout (void)
-{
-	static gboolean auto_storaged_added = FALSE;
-
-	if (auto_storaged_added == FALSE) {
-		auto_storaged_added = TRUE;
-		eel_g_settings_add_auto_boolean (nautilus_icon_view_preferences,
-						 NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_USE_MANUAL_LAYOUT,
-						 &default_directory_manual_layout);
-	}
-
-	return default_directory_manual_layout;
-}
-
 static gboolean
 fm_icon_view_get_directory_auto_layout (FMIconView *icon_view,
 					NautilusFile *file)
@@ -965,10 +943,8 @@ static gboolean
 fm_icon_view_real_get_directory_auto_layout (FMIconView *icon_view,
 					     NautilusFile *file)
 {
-
-
 	return nautilus_file_get_boolean_metadata
-		(file, NAUTILUS_METADATA_KEY_ICON_VIEW_AUTO_LAYOUT, !get_default_directory_manual_layout ());
+		(file, NAUTILUS_METADATA_KEY_ICON_VIEW_AUTO_LAYOUT, TRUE);
 }
 
 static void
@@ -996,7 +972,7 @@ fm_icon_view_real_set_directory_auto_layout (FMIconView *icon_view,
 
 	nautilus_file_set_boolean_metadata
 		(file, NAUTILUS_METADATA_KEY_ICON_VIEW_AUTO_LAYOUT,
-		 !get_default_directory_manual_layout (),
+		 TRUE,
 		 auto_layout);
 }
 /* maintainence of tighter layout boolean */
@@ -1826,14 +1802,6 @@ fm_icon_view_reset_to_defaults (FMDirectoryView *view)
 
 	nautilus_icon_container_sort (icon_container);
 
-	/* Switch to manual layout of the default calls for it.
-	 * This needs to happen last for the sort order menus
-	 * to be in sync.
-	 */
- 	if (get_default_directory_manual_layout ()) {
- 		switch_to_manual_layout (icon_view);
- 	}
-
 	update_layout_menus (icon_view);
 
 	fm_icon_view_restore_default_zoom_level (view);
@@ -2595,28 +2563,6 @@ default_use_tighter_layout_changed_callback (gpointer callback_data)
 }
 
 static void
-default_use_manual_layout_changed_callback (gpointer callback_data)
-{
-	FMIconView *icon_view;
-	NautilusFile *file;
-	NautilusIconContainer *icon_container;
-
-	g_return_if_fail (FM_IS_ICON_VIEW (callback_data));
-
-	icon_view = FM_ICON_VIEW (callback_data);
-
-	file = fm_directory_view_get_directory_as_file (FM_DIRECTORY_VIEW (icon_view));
-	icon_container = get_icon_container (icon_view);
-	g_return_if_fail (NAUTILUS_IS_ICON_CONTAINER (icon_container));
-
-	nautilus_icon_container_set_auto_layout (
-		icon_container,
-		fm_icon_view_get_directory_auto_layout (icon_view, file));
-
-	nautilus_icon_container_request_update_all (icon_container);
-}
-
-static void
 default_zoom_level_changed_callback (gpointer callback_data)
 {
 	FMIconView *icon_view;
@@ -3107,12 +3053,12 @@ fm_icon_view_init (FMIconView *icon_view)
 		setup_sound_preview = TRUE;
 	}
 
-	g_signal_connect_swapped (nautilus_icon_view_preferences,
-				  "changed::" NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_SORT_ORDER,
+	g_signal_connect_swapped (nautilus_preferences,
+				  "changed::" NAUTILUS_PREFERENCES_DEFAULT_SORT_ORDER,
 				  G_CALLBACK (default_sort_order_changed_callback),
 				  icon_view);
-	g_signal_connect_swapped (nautilus_icon_view_preferences,
-				  "changed::" NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_SORT_IN_REVERSE_ORDER,
+	g_signal_connect_swapped (nautilus_preferences,
+				  "changed::" NAUTILUS_PREFERENCES_DEFAULT_SORT_IN_REVERSE_ORDER,
 				  G_CALLBACK (default_sort_in_reverse_order_changed_callback),
 				  icon_view);
 	g_signal_connect_swapped (nautilus_icon_view_preferences,
@@ -3120,10 +3066,6 @@ fm_icon_view_init (FMIconView *icon_view)
 				  G_CALLBACK (default_use_tighter_layout_changed_callback),
 				  icon_view);
 	g_signal_connect_swapped (nautilus_icon_view_preferences,
-				  "changed::" NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_USE_MANUAL_LAYOUT,
-				  G_CALLBACK (default_use_manual_layout_changed_callback),
-				  icon_view);
-	g_signal_connect_swapped (nautilus_icon_view_preferences,
 				  "changed::" NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_ZOOM_LEVEL,
 				  G_CALLBACK (default_zoom_level_changed_callback),
 				  icon_view);
diff --git a/src/file-manager/fm-list-view.c b/src/file-manager/fm-list-view.c
index fb35d94..6822542 100644
--- a/src/file-manager/fm-list-view.c
+++ b/src/file-manager/fm-list-view.c
@@ -131,7 +131,7 @@ struct SelectionForeachData {
 #define WAIT_FOR_RENAME_ON_ACTIVATE 200
 
 static int                      click_policy_auto_value;
-static char *              	default_sort_order_auto_value;
+static NautilusFileSortType     default_sort_order_auto_value;
 static gboolean			default_sort_reversed_auto_value;
 static NautilusZoomLevel        default_zoom_level_auto_value;
 static char **                  default_visible_columns_auto_value;
@@ -171,15 +171,28 @@ static const char * default_trash_columns_order[] = {
 /* for EEL_CALL_PARENT */
 #define parent_class fm_list_view_parent_class
 
+
 static const gchar*
 get_default_sort_order (NautilusFile *file, gboolean *reversed)
 {
 	const gchar *retval;
+	const char *attributes[] = {
+		"name", /* is really "manually" which doesn't apply to lists */
+		"name",
+		"uri",
+		"size",
+		"type",
+		"date_modified",
+		"date_accessed",
+		"emblems",
+		"trashed_on",
+		NULL
+	};
 
 	retval = nautilus_file_get_default_sort_attribute (file, reversed);
 
 	if (retval == NULL) {
-		retval = default_sort_order_auto_value;
+		retval = attributes[default_sort_order_auto_value];
 		*reversed = default_sort_reversed_auto_value;
 	}
 
@@ -626,8 +639,8 @@ button_press_callback (GtkWidget *widget, GdkEventButton *event, gpointer callba
 		(FM_LIST_MODEL (gtk_tree_view_get_model (tree_view)),
 		 tree_view,
 		 event->x, event->y);
-	
-	g_object_get (G_OBJECT (gtk_widget_get_settings (widget)), 
+
+	g_object_get (G_OBJECT (gtk_widget_get_settings (widget)),
 		      "gtk-double-click-time", &double_click_time,
 		      NULL);
 
@@ -1140,7 +1153,8 @@ sort_column_changed_callback (GtkTreeSortable *sortable,
 		 * or if it makes sense for the attribute (i.e. date). */
 		if (sort_attr == default_sort_attr) {
 			/* use value from preferences */
-			reversed = eel_preferences_get_boolean (NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_SORT_IN_REVERSE_ORDER);
+			reversed = g_settings_get_boolean (nautilus_preferences,
+							   NAUTILUS_PREFERENCES_DEFAULT_SORT_IN_REVERSE_ORDER);
 		} else {
 			reversed = nautilus_file_is_date_sort_attribute_q (sort_attr);
 		}
@@ -1158,9 +1172,9 @@ sort_column_changed_callback (GtkTreeSortable *sortable,
 	reversed_attr = (reversed ? "true" : "false");
 	nautilus_file_set_metadata (file, NAUTILUS_METADATA_KEY_LIST_VIEW_SORT_REVERSED,
 				    default_reversed_attr, reversed_attr);
-				    
+
 	/* Make sure selected item(s) is visible after sort */
-	fm_list_view_reveal_selection (FM_DIRECTORY_VIEW (view));							      
+	fm_list_view_reveal_selection (FM_DIRECTORY_VIEW (view));
 
 	view->details->last_sort_attr = sort_attr;
 }
@@ -2868,6 +2882,19 @@ fm_list_view_finalize (GObject *object)
 
 	g_free (list_view->details);
 
+	g_signal_handlers_disconnect_by_func (nautilus_preferences,
+					      default_sort_order_changed_callback,
+					      list_view);
+	g_signal_handlers_disconnect_by_func (nautilus_list_view_preferences,
+					      default_zoom_level_changed_callback,
+					      list_view);
+	g_signal_handlers_disconnect_by_func (nautilus_list_view_preferences,
+					      default_visible_columns_changed_callback,
+					      list_view);
+	g_signal_handlers_disconnect_by_func (nautilus_list_view_preferences,
+					      default_column_order_changed_callback,
+					      list_view);
+
 	G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
@@ -3048,16 +3075,21 @@ fm_list_view_class_init (FMListViewClass *class)
 	eel_g_settings_add_auto_enum (nautilus_preferences,
 				      NAUTILUS_PREFERENCES_CLICK_POLICY,
 				      &click_policy_auto_value);
-	eel_preferences_add_auto_string (NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_SORT_ORDER,
-					 (const char **) &default_sort_order_auto_value);
-	eel_preferences_add_auto_boolean (NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_SORT_IN_REVERSE_ORDER,
-					  &default_sort_reversed_auto_value);
-	eel_preferences_add_auto_enum (NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_ZOOM_LEVEL,
-				       (int *) &default_zoom_level_auto_value);
-	eel_preferences_add_auto_string_array (NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_VISIBLE_COLUMNS,
-					       &default_visible_columns_auto_value);
-	eel_preferences_add_auto_string_array (NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_COLUMN_ORDER,
-					       &default_column_order_auto_value);
+	eel_g_settings_add_auto_enum (nautilus_preferences,
+				      NAUTILUS_PREFERENCES_DEFAULT_SORT_ORDER,
+				      (int *) &default_sort_order_auto_value);
+	eel_g_settings_add_auto_boolean (nautilus_preferences,
+					 NAUTILUS_PREFERENCES_DEFAULT_SORT_IN_REVERSE_ORDER,
+					 &default_sort_reversed_auto_value);
+	eel_g_settings_add_auto_enum (nautilus_list_view_preferences,
+				      NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_ZOOM_LEVEL,
+				      (int *) &default_zoom_level_auto_value);
+	eel_g_settings_add_auto_strv (nautilus_list_view_preferences,
+				      NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_VISIBLE_COLUMNS,
+				      &default_visible_columns_auto_value);
+	eel_g_settings_add_auto_strv (nautilus_list_view_preferences,
+				      NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_COLUMN_ORDER,
+				      &default_column_order_auto_value);
 }
 
 static const char *
@@ -3071,7 +3103,7 @@ static void
 fm_list_view_iface_init (NautilusViewIface *iface)
 {
 	fm_directory_view_init_view_iface (iface);
-	
+
 	iface->get_view_id = fm_list_view_get_id;
 	iface->get_first_visible_file = fm_list_view_get_first_visible_file;
 	iface->scroll_to_file = list_view_scroll_to_file;
@@ -3086,31 +3118,36 @@ fm_list_view_init (FMListView *list_view)
 
 	create_and_set_up_tree_view (list_view);
 
-	eel_preferences_add_callback_while_alive (NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_SORT_ORDER,
-						  default_sort_order_changed_callback,
-						  list_view, G_OBJECT (list_view));
-	eel_preferences_add_callback_while_alive (NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_SORT_IN_REVERSE_ORDER,
-						  default_sort_order_changed_callback,
-						  list_view, G_OBJECT (list_view));
-	eel_preferences_add_callback_while_alive (NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_ZOOM_LEVEL,
-						  default_zoom_level_changed_callback,
-						  list_view, G_OBJECT (list_view));
-	eel_preferences_add_callback_while_alive (NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_VISIBLE_COLUMNS,
-						  default_visible_columns_changed_callback,
-						  list_view, G_OBJECT (list_view));
-	eel_preferences_add_callback_while_alive (NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_COLUMN_ORDER,
-						  default_column_order_changed_callback,
-						  list_view, G_OBJECT (list_view));
+	g_signal_connect_swapped (nautilus_preferences,
+				  "changed::" NAUTILUS_PREFERENCES_DEFAULT_SORT_ORDER,
+				  G_CALLBACK (default_sort_order_changed_callback),
+				  list_view);
+	g_signal_connect_swapped (nautilus_preferences,
+				  "changed::" NAUTILUS_PREFERENCES_DEFAULT_SORT_IN_REVERSE_ORDER,
+				  G_CALLBACK (default_sort_order_changed_callback),
+				  list_view);
+	g_signal_connect_swapped (nautilus_list_view_preferences,
+				  "changed::" NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_ZOOM_LEVEL,
+				  G_CALLBACK (default_zoom_level_changed_callback),
+				  list_view);
+	g_signal_connect_swapped (nautilus_list_view_preferences,
+				  "changed::" NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_VISIBLE_COLUMNS,
+				  G_CALLBACK (default_visible_columns_changed_callback),
+				  list_view);
+	g_signal_connect_swapped (nautilus_list_view_preferences,
+				  "changed::" NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_COLUMN_ORDER,
+				  G_CALLBACK (default_column_order_changed_callback),
+				  list_view);
 
 	fm_list_view_click_policy_changed (FM_DIRECTORY_VIEW (list_view));
-	
+
 	fm_list_view_sort_directories_first_changed (FM_DIRECTORY_VIEW (list_view));
-	
+
 	/* ensure that the zoom level is always set in begin_loading */
 	list_view->details->zoom_level = NAUTILUS_ZOOM_LEVEL_SMALLEST - 1;
 
 	list_view->details->hover_path = NULL;
-	list_view->details->clipboard_handler_id = 
+	list_view->details->clipboard_handler_id =
 		g_signal_connect (nautilus_clipboard_monitor_get (),
 		                  "clipboard_info",
 		                  G_CALLBACK (list_view_notify_clipboard_info), list_view);
diff --git a/src/nautilus-file-management-properties.c b/src/nautilus-file-management-properties.c
index 4e71e7b..bbdc0b5 100644
--- a/src/nautilus-file-management-properties.c
+++ b/src/nautilus-file-management-properties.c
@@ -274,8 +274,12 @@ columns_changed_callback (NautilusColumnChooser *chooser,
 					      &visible_columns,
 					      &column_order);
 
-	eel_preferences_set_string_array (NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_VISIBLE_COLUMNS, visible_columns);
-	eel_preferences_set_string_array (NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_COLUMN_ORDER, column_order);
+	g_settings_set_strv (nautilus_list_view_preferences,
+			     NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_VISIBLE_COLUMNS,
+			     (const char * const *)visible_columns);
+	g_settings_set_strv (nautilus_list_view_preferences,
+			     NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_COLUMN_ORDER,
+			     (const char * const *)column_order);
 
 	g_strfreev (visible_columns);
 	g_strfreev (column_order);
@@ -465,7 +469,7 @@ create_date_format_menu (GtkBuilder *builder)
 	gchar *date_string;
 	time_t now_raw;
 	struct tm* now;
-	
+
 	combo_box = GTK_WIDGET (gtk_builder_get_object (builder,
 							NAUTILUS_FILE_MANAGEMENT_PROPERTIES_DATE_FORMAT_WIDGET));
 
@@ -486,15 +490,17 @@ create_date_format_menu (GtkBuilder *builder)
 }
 
 static void
-set_columns_from_gconf (NautilusColumnChooser *chooser)
+set_columns_from_settings (NautilusColumnChooser *chooser)
 {
 	char **visible_columns;
 	char **column_order;
-	
-	visible_columns = eel_preferences_get_string_array (NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_VISIBLE_COLUMNS);
-	column_order = eel_preferences_get_string_array (NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_COLUMN_ORDER);
 
-	nautilus_column_chooser_set_settings (NAUTILUS_COLUMN_CHOOSER (chooser), 
+	visible_columns = g_settings_get_strv (nautilus_list_view_preferences,
+					       NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_VISIBLE_COLUMNS);
+	column_order = g_settings_get_strv (nautilus_list_view_preferences,
+					    NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_COLUMN_ORDER);
+
+	nautilus_column_chooser_set_settings (NAUTILUS_COLUMN_CHOOSER (chooser),
 					      visible_columns,
 					      column_order);
 
@@ -502,13 +508,15 @@ set_columns_from_gconf (NautilusColumnChooser *chooser)
 	g_strfreev (column_order);
 }
 
-static void 
-use_default_callback (NautilusColumnChooser *chooser, 
+static void
+use_default_callback (NautilusColumnChooser *chooser,
 		      gpointer user_data)
 {
-	eel_preferences_unset (NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_VISIBLE_COLUMNS);
-	eel_preferences_unset (NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_COLUMN_ORDER);
-	set_columns_from_gconf (chooser);
+	g_settings_reset (nautilus_list_view_preferences,
+			  NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_VISIBLE_COLUMNS);
+	g_settings_reset (nautilus_list_view_preferences,
+			  NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_COLUMN_ORDER);
+	set_columns_from_settings (chooser);
 }
 
 static void
@@ -516,18 +524,18 @@ nautilus_file_management_properties_dialog_setup_list_column_page (GtkBuilder *b
 {
 	GtkWidget *chooser;
 	GtkWidget *box;
-	
+
 	chooser = nautilus_column_chooser_new (NULL);
-	g_signal_connect (chooser, "changed", 
+	g_signal_connect (chooser, "changed",
 			  G_CALLBACK (columns_changed_callback), chooser);
-	g_signal_connect (chooser, "use_default", 
+	g_signal_connect (chooser, "use_default",
 			  G_CALLBACK (use_default_callback), chooser);
 
-	set_columns_from_gconf (NAUTILUS_COLUMN_CHOOSER (chooser));
+	set_columns_from_settings (NAUTILUS_COLUMN_CHOOSER (chooser));
 
 	gtk_widget_show (chooser);
 	box = GTK_WIDGET (gtk_builder_get_object (builder, "list_columns_vbox"));
-	
+
 	gtk_box_pack_start (GTK_BOX (box), chooser, TRUE, TRUE, 0);
 }
 
@@ -760,6 +768,7 @@ bind_builder_enum (GtkBuilder *builder,
 				      enum_values, NULL);
 }
 
+
 typedef struct {
 	const guint64 *values;
 	int n_values;
@@ -973,18 +982,14 @@ nautilus_file_management_properties_dialog_setup (GtkBuilder *builder, GtkWindow
 			   NAUTILUS_FILE_MANAGEMENT_PROPERTIES_COMPACT_VIEW_ZOOM_WIDGET,
 			   NAUTILUS_PREFERENCES_COMPACT_VIEW_DEFAULT_ZOOM_LEVEL,
 			   (const char **) zoom_values);
-	eel_preferences_builder_connect_string_enum_combo_box (builder,
-							       NAUTILUS_FILE_MANAGEMENT_PROPERTIES_LIST_VIEW_ZOOM_WIDGET,
-							       NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_ZOOM_LEVEL,
-							       (const char **) zoom_values);
-	bind_builder_enum (builder, nautilus_icon_view_preferences,
+	bind_builder_enum (builder, nautilus_list_view_preferences,
+			   NAUTILUS_FILE_MANAGEMENT_PROPERTIES_LIST_VIEW_ZOOM_WIDGET,
+			   NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_ZOOM_LEVEL,
+			   (const char **) zoom_values);
+	bind_builder_enum (builder, nautilus_preferences,
 			   NAUTILUS_FILE_MANAGEMENT_PROPERTIES_SORT_ORDER_WIDGET,
-			   NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_SORT_ORDER,
+			   NAUTILUS_PREFERENCES_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);
 	bind_builder_enum (builder, nautilus_preferences,
 			   NAUTILUS_FILE_MANAGEMENT_PROPERTIES_PREVIEW_TEXT_WIDGET,
 			   NAUTILUS_PREFERENCES_SHOW_TEXT_IN_ICONS,



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