summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Borelli <pborelli@katamail.com>2007-11-02 15:22:13 +0000
committerPaolo Borelli <pborelli@src.gnome.org>2007-11-02 15:22:13 +0000
commit9f51277f583b56d42c7ac9f7aba380453af3b6d7 (patch)
tree5ff1efa991b59997ab3c9f8813c22bfe549d05fb
parent3b3c8425b66dc6546b2615ca73fde5b573e5e4dc (diff)
downloadnautilus-9f51277f583b56d42c7ac9f7aba380453af3b6d7.tar.gz
Remove all uses of eel-string-list and update code to the new
2007-11-02 Paolo Borelli <pborelli@katamail.com> * src/file-manager/fm-icon-container.c: * src/file-manager/fm-list-view.c: * src/nautilus-shell.c: * src/nautilus-file-management-properties.c: * libnautilus-private/nautilus-column-utilities.c: * libnautilus-private/nautilus-column-utilities.h: * libnautilus-private/nautilus-column-chooser.c: * libnautilus-private/nautilus-column-chooser.h: Remove all uses of eel-string-list and update code to the new eel_preferences_[set|get]_string_array api. * libnautilus-private/nautilus-global-preferences.c: Update to the eel-enumerations api changes. svn path=/branches/gio-branch/; revision=13402
-rw-r--r--ChangeLog16
-rw-r--r--libnautilus-private/nautilus-column-chooser.c73
-rw-r--r--libnautilus-private/nautilus-column-chooser.h11
-rw-r--r--libnautilus-private/nautilus-column-utilities.c23
-rw-r--r--libnautilus-private/nautilus-column-utilities.h2
-rw-r--r--libnautilus-private/nautilus-global-preferences.c117
-rw-r--r--src/file-manager/fm-icon-container.c43
-rw-r--r--src/file-manager/fm-list-view.c144
-rw-r--r--src/nautilus-file-management-properties.c64
-rw-r--r--src/nautilus-shell.c45
-rw-r--r--test/test-nautilus-preferences-change.c121
11 files changed, 319 insertions, 340 deletions
diff --git a/ChangeLog b/ChangeLog
index 0a3db5586..044a385ea 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+2007-11-02 Paolo Borelli <pborelli@katamail.com>
+
+ * src/file-manager/fm-icon-container.c:
+ * src/file-manager/fm-list-view.c:
+ * src/nautilus-shell.c:
+ * src/nautilus-file-management-properties.c:
+ * libnautilus-private/nautilus-column-utilities.c:
+ * libnautilus-private/nautilus-column-utilities.h:
+ * libnautilus-private/nautilus-column-chooser.c:
+ * libnautilus-private/nautilus-column-chooser.h:
+ Remove all uses of eel-string-list and update code to the new
+ eel_preferences_[set|get]_string_array api.
+
+ * libnautilus-private/nautilus-global-preferences.c:
+ Update to the eel-enumerations api changes.
+
2007-11-02 Alexander Larsson <alexl@redhat.com>
* libnautilus-private/nautilus-customization-data.[ch]:
diff --git a/libnautilus-private/nautilus-column-chooser.c b/libnautilus-private/nautilus-column-chooser.c
index 383e89d1c..f0c016964 100644
--- a/libnautilus-private/nautilus-column-chooser.c
+++ b/libnautilus-private/nautilus-column-chooser.c
@@ -26,8 +26,6 @@
#include "nautilus-column-chooser.h"
#include <string.h>
-#include <eel/eel-glib-extensions.h>
-#include <eel/eel-gtk-macros.h>
#include <gtk/gtkalignment.h>
#include <gtk/gtkbutton.h>
#include <gtk/gtkcellrenderertext.h>
@@ -71,19 +69,12 @@ enum {
};
static guint signals[LAST_SIGNAL];
-static void nautilus_column_chooser_class_init (NautilusColumnChooserClass *chooser_class);
-static void nautilus_column_chooser_init (NautilusColumnChooser *chooser);
-static void nautilus_column_chooser_destroy (GtkObject *object);
-static void nautilus_column_chooser_finalize (GObject *object);
-EEL_CLASS_BOILERPLATE (NautilusColumnChooser, nautilus_column_chooser, GTK_TYPE_HBOX);
+G_DEFINE_TYPE(NautilusColumnChooser, nautilus_column_chooser, GTK_TYPE_HBOX);
static void
nautilus_column_chooser_class_init (NautilusColumnChooserClass *chooser_class)
{
- G_OBJECT_CLASS (chooser_class)->finalize = nautilus_column_chooser_finalize;
- GTK_OBJECT_CLASS (chooser_class)->destroy = nautilus_column_chooser_destroy;
-
signals[CHANGED] = g_signal_new
("changed",
G_TYPE_FROM_CLASS (chooser_class),
@@ -498,24 +489,20 @@ nautilus_column_chooser_init (NautilusColumnChooser *chooser)
G_CALLBACK (row_deleted_callback), chooser);
}
-static void
-nautilus_column_chooser_destroy (GtkObject *object)
-{
- NautilusColumnChooser *chooser;
-
- chooser = NAUTILUS_COLUMN_CHOOSER (object);
-}
-
-static void
-nautilus_column_chooser_finalize (GObject *object)
-{
-}
-
static void
set_visible_columns (NautilusColumnChooser *chooser,
- GList *visible_columns)
+ char **visible_columns)
{
+ GHashTable *visible_columns_hash;
GtkTreeIter iter;
+ int i;
+
+ visible_columns_hash = g_hash_table_new (g_str_hash, g_str_equal);
+ for (i = 0; visible_columns[i] != NULL; ++i) {
+ g_hash_table_insert (visible_columns_hash,
+ visible_columns[i],
+ visible_columns[i]);
+ }
if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (chooser->details->store),
&iter)) {
@@ -528,7 +515,7 @@ set_visible_columns (NautilusColumnChooser *chooser,
COLUMN_NAME, &name,
-1);
- visible = (eel_g_str_list_index (visible_columns, name) != -1);
+ visible = (g_hash_table_lookup (visible_columns_hash, name) != NULL);
gtk_list_store_set (chooser->details->store,
&iter,
@@ -537,17 +524,18 @@ set_visible_columns (NautilusColumnChooser *chooser,
g_free (name);
} while (gtk_tree_model_iter_next (GTK_TREE_MODEL (chooser->details->store), &iter));
- }
+ }
+
+ g_hash_table_destroy (visible_columns_hash);
}
-static GList *
+static char **
get_column_names (NautilusColumnChooser *chooser, gboolean only_visible)
{
-
- GList *ret;
+ GPtrArray *ret;
GtkTreeIter iter;
-
- ret = NULL;
+
+ ret = g_ptr_array_new ();
if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (chooser->details->store),
&iter)) {
do {
@@ -559,14 +547,15 @@ get_column_names (NautilusColumnChooser *chooser, gboolean only_visible)
COLUMN_NAME, &name,
-1);
if (!only_visible || visible) {
- /* give ownership to the list */
- ret = g_list_prepend (ret, name);
+ /* give ownership to the array */
+ g_ptr_array_add (ret, name);
}
-
+
} while (gtk_tree_model_iter_next (GTK_TREE_MODEL (chooser->details->store), &iter));
}
+ g_ptr_array_add (ret, NULL);
- return g_list_reverse (ret);
+ return (char **) g_ptr_array_free (ret, FALSE);
}
static gboolean
@@ -603,7 +592,7 @@ get_column_iter (NautilusColumnChooser *chooser,
static void
set_column_order (NautilusColumnChooser *chooser,
- GList *column_order)
+ char **column_order)
{
GList *columns;
@@ -646,8 +635,8 @@ set_column_order (NautilusColumnChooser *chooser,
void
nautilus_column_chooser_set_settings (NautilusColumnChooser *chooser,
- GList *visible_columns,
- GList *column_order)
+ char **visible_columns,
+ char **column_order)
{
g_return_if_fail (NAUTILUS_IS_COLUMN_CHOOSER (chooser));
g_return_if_fail (visible_columns != NULL);
@@ -661,13 +650,13 @@ nautilus_column_chooser_set_settings (NautilusColumnChooser *chooser,
void
nautilus_column_chooser_get_settings (NautilusColumnChooser *chooser,
- GList **visible_columns,
- GList **column_order)
+ char ***visible_columns,
+ char ***column_order)
{
g_return_if_fail (NAUTILUS_IS_COLUMN_CHOOSER (chooser));
g_return_if_fail (visible_columns != NULL);
g_return_if_fail (column_order != NULL);
-
+
*visible_columns = get_column_names (chooser, TRUE);
*column_order = get_column_names (chooser, FALSE);
}
@@ -678,5 +667,3 @@ nautilus_column_chooser_new (void)
return g_object_new (NAUTILUS_TYPE_COLUMN_CHOOSER, NULL);
}
-
-
diff --git a/libnautilus-private/nautilus-column-chooser.h b/libnautilus-private/nautilus-column-chooser.h
index 677f15280..a1d781f51 100644
--- a/libnautilus-private/nautilus-column-chooser.h
+++ b/libnautilus-private/nautilus-column-chooser.h
@@ -50,12 +50,11 @@ typedef struct {
GType nautilus_column_chooser_get_type (void);
GtkWidget *nautilus_column_chooser_new (void);
-void nautilus_column_chooser_set_settings (NautilusColumnChooser *chooser,
- GList *visible_columns,
- GList *column_order);
+void nautilus_column_chooser_set_settings (NautilusColumnChooser *chooser,
+ char **visible_columns,
+ char **column_order);
void nautilus_column_chooser_get_settings (NautilusColumnChooser *chooser,
- GList **visible_columns,
- GList **column_order);
-
+ char ***visible_columns,
+ char ***column_order);
#endif /* NAUTILUS_COLUMN_CHOOSER_H */
diff --git a/libnautilus-private/nautilus-column-utilities.c b/libnautilus-private/nautilus-column-utilities.c
index b467d952c..4aeaf9a47 100644
--- a/libnautilus-private/nautilus-column-utilities.c
+++ b/libnautilus-private/nautilus-column-utilities.c
@@ -190,18 +190,31 @@ nautilus_column_list_free (GList *columns)
}
static int
-column_compare (NautilusColumn *a, NautilusColumn *b, GList *column_order)
+strv_index (char **strv, const char *str)
+{
+ int i;
+
+ for (i = 0; strv[i] != NULL; ++i) {
+ if (strcmp (strv[i], str) == 0)
+ return i;
+ }
+
+ return -1;
+}
+
+static int
+column_compare (NautilusColumn *a, NautilusColumn *b, char **column_order)
{
int index_a;
int index_b;
char *name;
g_object_get (G_OBJECT (a), "name", &name, NULL);
- index_a = eel_g_str_list_index (column_order, name);
+ index_a = strv_index (column_order, name);
g_free (name);
g_object_get (G_OBJECT (b), "name", &name, NULL);
- index_b = eel_g_str_list_index (column_order, name);
+ index_b = strv_index (column_order, name);
g_free (name);
if (index_a == index_b) {
@@ -226,8 +239,8 @@ column_compare (NautilusColumn *a, NautilusColumn *b, GList *column_order)
}
GList *
-nautilus_sort_columns (GList *columns,
- GList *column_order)
+nautilus_sort_columns (GList *columns,
+ char **column_order)
{
return g_list_sort_with_data (columns,
(GCompareDataFunc)column_compare,
diff --git a/libnautilus-private/nautilus-column-utilities.h b/libnautilus-private/nautilus-column-utilities.h
index 48611db6c..a8306519a 100644
--- a/libnautilus-private/nautilus-column-utilities.h
+++ b/libnautilus-private/nautilus-column-utilities.h
@@ -32,7 +32,7 @@ GList *nautilus_column_list_copy (GList *columns);
void nautilus_column_list_free (GList *columns);
GList *nautilus_sort_columns (GList *columns,
- GList *column_order);
+ char **column_order);
#endif /* NAUTILUS_COLUMN_UTILITIES_H */
diff --git a/libnautilus-private/nautilus-global-preferences.c b/libnautilus-private/nautilus-global-preferences.c
index 8817c2b84..0ec8fcf51 100644
--- a/libnautilus-private/nautilus-global-preferences.c
+++ b/libnautilus-private/nautilus-global-preferences.c
@@ -37,7 +37,7 @@
#include <libgnome/gnome-util.h>
/* Constants */
-#define STRING_LIST_DEFAULT_TOKENS_DELIMETER ","
+#define STRING_ARRAY_DEFAULT_TOKENS_DELIMETER ","
#define PREFERENCES_SORT_ORDER_MANUALLY 100
/* Path for gnome-vfs preferences */
@@ -61,15 +61,14 @@ typedef enum
PREFERENCE_BOOLEAN = 1,
PREFERENCE_INTEGER,
PREFERENCE_STRING,
- PREFERENCE_STRING_LIST
+ PREFERENCE_STRING_ARRAY
} PreferenceType;
/* Enumerations used to qualify some INTEGER preferences */
static EelEnumerationEntry speed_tradeoff_enum_entries[] = {
{ "always", N_("_Always"), NAUTILUS_SPEED_TRADEOFF_ALWAYS },
{ "local_only", N_("_Local File Only"), NAUTILUS_SPEED_TRADEOFF_LOCAL_ONLY },
- { "never", N_("_Never"), NAUTILUS_SPEED_TRADEOFF_NEVER },
- { NULL }
+ { "never", N_("_Never"), NAUTILUS_SPEED_TRADEOFF_NEVER }
};
static EelEnumerationEntry default_zoom_level_enum_entries[] = {
@@ -86,8 +85,7 @@ static EelEnumerationEntry default_zoom_level_enum_entries[] = {
/* xgettext:no-c-format */
{ "larger", N_("200%"), NAUTILUS_ZOOM_LEVEL_LARGER },
/* xgettext:no-c-format */
- { "largest", N_("400%"), NAUTILUS_ZOOM_LEVEL_LARGEST },
- { NULL }
+ { "largest", N_("400%"), NAUTILUS_ZOOM_LEVEL_LARGEST }
};
static EelEnumerationEntry file_size_enum_entries[] = {
@@ -97,8 +95,7 @@ static EelEnumerationEntry file_size_enum_entries[] = {
{ "3145728", N_("3 MB"), 3145728 },
{ "5242880", N_("5 MB"), 5242880 },
{ "10485760", N_("10 MB"), 10485760 },
- { "104857600", N_("100 MB"), 104857600 },
- { NULL }
+ { "104857600", N_("100 MB"), 104857600 }
};
static EelEnumerationEntry click_policy_enum_entries[] = {
@@ -109,8 +106,7 @@ static EelEnumerationEntry click_policy_enum_entries[] = {
{ "double",
N_("Activate items with a _double click"),
NAUTILUS_CLICK_POLICY_DOUBLE
- },
- { NULL }
+ }
};
static EelEnumerationEntry executable_text_activation_enum_entries[] = {
@@ -125,8 +121,7 @@ static EelEnumerationEntry executable_text_activation_enum_entries[] = {
{ "ask",
N_("_Ask each time"),
NAUTILUS_EXECUTABLE_TEXT_ASK
- },
- { NULL }
+ }
};
static EelEnumerationEntry search_bar_type_enum_entries[] = {
@@ -137,14 +132,12 @@ static EelEnumerationEntry search_bar_type_enum_entries[] = {
{ "search by text and properties",
N_("Search for files by file name and file properties"),
NAUTILUS_COMPLEX_SEARCH_BAR
- },
- { NULL }
+ }
};
static EelEnumerationEntry default_folder_viewer_enum_entries[] = {
{ "icon_view", N_("Icon View"), NAUTILUS_DEFAULT_FOLDER_VIEWER_ICON_VIEW },
- { "list_view", N_("List View"), NAUTILUS_DEFAULT_FOLDER_VIEWER_LIST_VIEW },
- { NULL }
+ { "list_view", N_("List View"), NAUTILUS_DEFAULT_FOLDER_VIEWER_LIST_VIEW }
};
static EelEnumerationEntry default_icon_view_sort_order_enum_entries[] = {
@@ -154,8 +147,7 @@ static EelEnumerationEntry default_icon_view_sort_order_enum_entries[] = {
{ "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 },
- { NULL }
+ { "emblems", N_("By Emblems"), NAUTILUS_FILE_SORT_BY_EMBLEMS }
};
static EelEnumerationEntry standard_font_size_entries[] = {
@@ -167,34 +159,14 @@ static EelEnumerationEntry standard_font_size_entries[] = {
{ "18", N_("18"), 18 },
{ "20", N_("20"), 20 },
{ "22", N_("22"), 22 },
- { "24", N_("24"), 24 },
- { NULL }
+ { "24", N_("24"), 24 }
};
/* These are not translated, because the text is not used in the ui */
static EelEnumerationEntry date_format_entries[] = {
{ "locale", "Locale Default", NAUTILUS_DATE_FORMAT_LOCALE },
{ "iso", "ISO Format", NAUTILUS_DATE_FORMAT_ISO },
- { "informal", "Informal", NAUTILUS_DATE_FORMAT_INFORMAL },
- { NULL }
-};
-
-/* These enumerations are used in the preferences dialog to
- * populate widgets and route preferences changes between the
- * storage (GConf) and the displayed values.
- */
-static EelEnumerationInfo enumerations[] = {
- { "click_policy", click_policy_enum_entries },
- { "default_folder_viewer", default_folder_viewer_enum_entries },
- { "default_icon_view_sort_order", default_icon_view_sort_order_enum_entries },
- { "default_zoom_level", default_zoom_level_enum_entries },
- { "executable_text_activation", executable_text_activation_enum_entries },
- { "file_size", file_size_enum_entries },
- { "search_bar_type", search_bar_type_enum_entries },
- { "speed_tradeoff", speed_tradeoff_enum_entries },
- { "standard_font_size", standard_font_size_entries },
- { "date_format", date_format_entries },
- { NULL }
+ { "informal", "Informal", NAUTILUS_DATE_FORMAT_INFORMAL }
};
/*
@@ -233,7 +205,7 @@ typedef struct
* PREFERENCE_BOOLEAN
* PREFERENCE_INTEGER
* PREFERENCE_STRING
- * PREFERENCE_STRING_LIST
+ * PREFERENCE_STRING_ARRAY
*
* 3. fallback_value
* Emergency fallback value if our gconf schemas are hosed somehow.
@@ -345,7 +317,7 @@ static const PreferenceDefault preference_defaults[] = {
"search_bar_type"
},
{ NAUTILUS_PREFERENCES_ICON_VIEW_CAPTIONS,
- PREFERENCE_STRING_LIST,
+ PREFERENCE_STRING_ARRAY,
"size,date_modified,type",
NULL, NULL,
NULL
@@ -563,14 +535,47 @@ global_preferences_register_enumerations (void)
{
guint i;
- /* Register the enumerations */
- eel_enumeration_register (enumerations);
+ /* Register the enumerations.
+ * These enumerations are used in the preferences dialog to
+ * populate widgets and route preferences changes between the
+ * storage (GConf) and the displayed values.
+ */
+ eel_enumeration_register ("click_policy",
+ click_policy_enum_entries,
+ G_N_ELEMENTS (click_policy_enum_entries));
+ eel_enumeration_register ("default_folder_viewer",
+ default_folder_viewer_enum_entries,
+ G_N_ELEMENTS (default_folder_viewer_enum_entries));
+ 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));
+ eel_enumeration_register ("executable_text_activation",
+ executable_text_activation_enum_entries,
+ G_N_ELEMENTS (executable_text_activation_enum_entries));
+ eel_enumeration_register ("file_size",
+ file_size_enum_entries,
+ G_N_ELEMENTS (file_size_enum_entries));
+ eel_enumeration_register ("search_bar_type",
+ search_bar_type_enum_entries,
+ G_N_ELEMENTS (search_bar_type_enum_entries));
+ eel_enumeration_register ("speed_tradeoff",
+ speed_tradeoff_enum_entries,
+ G_N_ELEMENTS (speed_tradeoff_enum_entries));
+ eel_enumeration_register ("standard_font_size",
+ standard_font_size_entries,
+ G_N_ELEMENTS (standard_font_size_entries));
+ eel_enumeration_register ("date_format",
+ date_format_entries,
+ G_N_ELEMENTS (date_format_entries));
/* Set the enumeration ids for preferences that need them */
for (i = 0; preference_defaults[i].name != NULL; i++) {
if (eel_strlen (preference_defaults[i].enumeration_id) > 0) {
g_assert (preference_defaults[i].type == PREFERENCE_STRING
- || preference_defaults[i].type == PREFERENCE_STRING_LIST
+ || preference_defaults[i].type == PREFERENCE_STRING_ARRAY
|| preference_defaults[i].type == PREFERENCE_INTEGER);
eel_preferences_set_enumeration_id (preference_defaults[i].name,
preference_defaults[i].enumeration_id);
@@ -584,11 +589,11 @@ global_preferences_install_one_default (const char *preference_name,
const PreferenceDefault *preference_default)
{
gpointer value = NULL;
- EelStringList *string_list_value;
-
+ char **string_array_value;
+
g_return_if_fail (preference_name != NULL);
g_return_if_fail (preference_type >= PREFERENCE_BOOLEAN);
- g_return_if_fail (preference_type <= PREFERENCE_STRING_LIST);
+ g_return_if_fail (preference_type <= PREFERENCE_STRING_ARRAY);
g_return_if_fail (preference_default != NULL);
/* If a callback is given, use that to fetch the default value */
@@ -614,14 +619,14 @@ global_preferences_install_one_default (const char *preference_name,
eel_preferences_set_emergency_fallback_string (preference_name,
value);
break;
-
- case PREFERENCE_STRING_LIST:
- string_list_value = eel_string_list_new_from_tokens (value,
- STRING_LIST_DEFAULT_TOKENS_DELIMETER,
- TRUE);
- eel_preferences_set_emergency_fallback_string_list (preference_name,
- string_list_value);
- eel_string_list_free (string_list_value);
+
+ case PREFERENCE_STRING_ARRAY:
+ string_array_value = g_strsplit (value,
+ STRING_ARRAY_DEFAULT_TOKENS_DELIMETER,
+ -1);
+ eel_preferences_set_emergency_fallback_string_array (preference_name,
+ string_array_value);
+ g_strfreev (string_array_value);
break;
default:
diff --git a/src/file-manager/fm-icon-container.c b/src/file-manager/fm-icon-container.c
index d4ebad8e7..ab10c6975 100644
--- a/src/file-manager/fm-icon-container.c
+++ b/src/file-manager/fm-icon-container.c
@@ -23,9 +23,9 @@
*/
#include <config.h>
+#include <string.h>
#include <libgnome/gnome-macros.h>
#include <glib/gi18n.h>
-#include <eel/eel-string.h>
#include <gio/gcontenttype.h>
#include <libnautilus-private/nautilus-global-preferences.h>
#include <libnautilus-private/nautilus-file-attributes.h>
@@ -176,19 +176,18 @@ fm_icon_container_prioritize_thumbnailing (NautilusIconContainer *container,
}
}
-
/*
* Get the preference for which caption text should appear
* beneath icons.
*/
-static const EelStringList *
+static char **
fm_icon_container_get_icon_text_attributes_from_preferences (void)
{
- static const EelStringList *attributes;
+ static char **attributes;
if (attributes == NULL) {
- eel_preferences_add_auto_string_list (NAUTILUS_PREFERENCES_ICON_VIEW_CAPTIONS,
- &attributes);
+ eel_preferences_add_auto_string_array (NAUTILUS_PREFERENCES_ICON_VIEW_CAPTIONS,
+ &attributes);
}
/* We don't need to sanity check the attributes list even though it came
@@ -211,7 +210,7 @@ fm_icon_container_get_icon_text_attributes_from_preferences (void)
* duplicate attributes by making "bad" choices insensitive.
*
* In the second case, the preferences getter (and also the auto storage) for
- * string_list values are always valid members of the enumeration associated
+ * string_array values are always valid members of the enumeration associated
* with the preference.
*
* So, no more error checking on attributes is needed here and we can return
@@ -229,11 +228,11 @@ fm_icon_container_get_icon_text_attributes_from_preferences (void)
* @view: FMIconView to query.
*
**/
-static const EelStringList *
+static char **
fm_icon_container_get_icon_text_attribute_names (NautilusIconContainer *container,
int *len)
{
- const EelStringList *attributes;
+ char **attributes;
int piece_count;
const int pieces_by_level[] = {
@@ -247,11 +246,11 @@ fm_icon_container_get_icon_text_attribute_names (NautilusIconContainer *containe
};
piece_count = pieces_by_level[nautilus_icon_container_get_zoom_level (container)];
-
+
attributes = fm_icon_container_get_icon_text_attributes_from_preferences ();
- *len = MIN (piece_count, eel_string_list_get_length (attributes));
-
+ *len = MIN (piece_count, g_strv_length (attributes));
+
return attributes;
}
@@ -266,8 +265,7 @@ fm_icon_container_get_icon_text (NautilusIconContainer *container,
{
char *actual_uri;
gchar *description;
- const EelStringList *attribute_names;
- const char *attribute;
+ char **attribute_names;
char *text_array[4];
int i, j, num_attributes;
FMIconView *icon_view;
@@ -312,18 +310,21 @@ fm_icon_container_get_icon_text (NautilusIconContainer *container,
* make sense. */
return;
}
-
+
/* Find out what attributes go below each icon. */
- attribute_names = fm_icon_container_get_icon_text_attribute_names (container, &num_attributes);
+ attribute_names = fm_icon_container_get_icon_text_attribute_names (container,
+ &num_attributes);
/* Get the attributes. */
- for (i = 0, j = 0; i < num_attributes; i++) {
- attribute = eel_string_list_peek_nth (attribute_names, i);
- if (eel_strcmp (attribute, "none") == 0) {
+ j = 0;
+ for (i = 0; i < num_attributes; ++i)
+ {
+ if (strcmp (attribute_names[i], "none") == 0) {
continue;
}
+
text_array[j++] =
- nautilus_file_get_string_attribute_with_default (file, attribute);
+ nautilus_file_get_string_attribute_with_default (file, attribute_names[i]);
}
text_array[j] = NULL;
@@ -331,7 +332,7 @@ fm_icon_container_get_icon_text (NautilusIconContainer *container,
*additional_text = g_strjoinv ("\n", text_array);
for (i = 0; i < j; i++) {
- g_free(text_array[i]);
+ g_free (text_array[i]);
}
}
diff --git a/src/file-manager/fm-list-view.c b/src/file-manager/fm-list-view.c
index 1664c58a4..673e1892c 100644
--- a/src/file-manager/fm-list-view.c
+++ b/src/file-manager/fm-list-view.c
@@ -136,8 +136,8 @@ static int click_policy_auto_value;
static char * default_sort_order_auto_value;
static gboolean default_sort_reversed_auto_value;
static NautilusZoomLevel default_zoom_level_auto_value;
-static GList * default_visible_columns_auto_value;
-static GList * default_column_order_auto_value;
+static char ** default_visible_columns_auto_value;
+static char ** default_column_order_auto_value;
static GdkCursor * hand_cursor = NULL;
static GtkTargetList * source_target_list = NULL;
@@ -1156,33 +1156,58 @@ move_copy_items_callback (NautilusTreeViewDragDest *dest,
}
static void
-apply_columns_settings (FMListView *list_view, GList *column_order, GList *visible_columns)
+apply_columns_settings (FMListView *list_view,
+ char **column_order,
+ char **visible_columns)
{
GList *all_columns;
GList *old_view_columns, *view_columns;
+ GHashTable *visible_columns_hash;
GtkTreeViewColumn *prev_view_column;
GList *l;
+ int i;
/* prepare ordered list of view columns using column_order and visible_columns */
view_columns = NULL;
all_columns = nautilus_get_all_columns ();
all_columns = nautilus_sort_columns (all_columns, column_order);
+
+ /* hash table to lookup if a given column should be visible */
+ visible_columns_hash = g_hash_table_new_full (g_str_hash,
+ g_str_equal,
+ (GDestroyNotify) g_free,
+ (GDestroyNotify) g_free);
+ for (i = 0; visible_columns[i] != NULL; ++i) {
+ g_hash_table_insert (visible_columns_hash,
+ g_ascii_strdown (visible_columns[i], -1),
+ g_ascii_strdown (visible_columns[i], -1));
+ }
+
for (l = all_columns; l != NULL; l = l->next) {
char *name;
+ char *lowercase;
g_object_get (G_OBJECT (l->data), "name", &name, NULL);
- if (g_list_find_custom (visible_columns, name, (GCompareFunc) g_ascii_strcasecmp) != NULL) {
+ lowercase = g_ascii_strdown (name, -1);
+
+ if (g_hash_table_lookup (visible_columns_hash, lowercase) != NULL) {
GtkTreeViewColumn *view_column;
view_column = g_hash_table_lookup (list_view->details->columns, name);
if (view_column != NULL) {
- view_columns = g_list_append (view_columns, view_column);
+ view_columns = g_list_prepend (view_columns, view_column);
}
}
+
g_free (name);
+ g_free (lowercase);
}
+
+ g_hash_table_destroy (visible_columns_hash);
nautilus_column_list_free (all_columns);
+ view_columns = g_list_reverse (view_columns);
+
/* remove columns that are not present in the configuration */
old_view_columns = gtk_tree_view_get_columns (list_view->details->tree_view);
for (l = old_view_columns; l != NULL; l = l->next) {
@@ -1418,7 +1443,9 @@ create_and_set_up_tree_view (FMListView *view)
/* Apply the default column order and visible columns, to get it
* right most of the time. The metadata will be checked when a
* folder is loaded */
- apply_columns_settings (view, default_column_order_auto_value, default_visible_columns_auto_value);
+ apply_columns_settings (view,
+ default_column_order_auto_value,
+ default_visible_columns_auto_value);
gtk_widget_show (GTK_WIDGET (view->details->tree_view));
gtk_container_add (GTK_CONTAINER (view), GTK_WIDGET (view->details->tree_view));
@@ -1437,12 +1464,15 @@ fm_list_view_add_file (FMDirectoryView *view, NautilusFile *file, NautilusDirect
fm_list_model_add_file (model, file, directory);
}
-static GList *
+static char **
get_visible_columns (FMListView *list_view)
{
NautilusFile *file;
GList *visible_columns;
-
+ char **ret;
+
+ ret = NULL;
+
file = fm_directory_view_get_directory_as_file (FM_DIRECTORY_VIEW (list_view));
visible_columns = nautilus_file_get_metadata_list
@@ -1450,19 +1480,31 @@ get_visible_columns (FMListView *list_view)
NAUTILUS_METADATA_KEY_LIST_VIEW_VISIBLE_COLUMNS,
NAUTILUS_METADATA_SUBKEY_COLUMNS);
- if (!visible_columns) {
- visible_columns = eel_g_str_list_copy (default_visible_columns_auto_value);
+ if (visible_columns) {
+ GPtrArray *res;
+ GList *l;
+
+ res = g_ptr_array_new ();
+ for (l = visible_columns; l != NULL; l = l->next) {
+ g_ptr_array_add (res, l->data);
+ }
+ g_ptr_array_add (res, NULL);
+
+ ret = (char **) g_ptr_array_free (res, FALSE);
}
- return visible_columns;
+ return ret ? ret : g_strdupv (default_visible_columns_auto_value);
}
-static GList *
+static char **
get_column_order (FMListView *list_view)
{
NautilusFile *file;
GList *column_order;
-
+ char **ret;
+
+ ret = NULL;
+
file = fm_directory_view_get_directory_as_file (FM_DIRECTORY_VIEW (list_view));
column_order = nautilus_file_get_metadata_list
@@ -1470,26 +1512,35 @@ get_column_order (FMListView *list_view)
NAUTILUS_METADATA_KEY_LIST_VIEW_COLUMN_ORDER,
NAUTILUS_METADATA_SUBKEY_COLUMNS);
- if (!column_order) {
- column_order = eel_g_str_list_copy (default_column_order_auto_value);
+ if (column_order) {
+ GPtrArray *res;
+ GList *l;
+
+ res = g_ptr_array_new ();
+ for (l = column_order; l != NULL; l = l->next) {
+ g_ptr_array_add (res, l->data);
+ }
+ g_ptr_array_add (res, NULL);
+
+ ret = (char **) g_ptr_array_free (res, FALSE);
}
- return column_order;
+ return ret ? ret : g_strdupv (default_visible_columns_auto_value);
}
static void
set_columns_settings_from_metadata_and_preferences (FMListView *list_view)
{
- GList *column_order;
- GList *visible_columns;
+ char **column_order;
+ char **visible_columns;
column_order = get_column_order (list_view);
visible_columns = get_visible_columns (list_view);
apply_columns_settings (list_view, column_order, visible_columns);
- eel_g_list_free_deep (column_order);
- eel_g_list_free_deep (visible_columns);
+ g_strfreev (column_order);
+ g_strfreev (visible_columns);
}
static void
@@ -1886,20 +1937,41 @@ column_chooser_changed_callback (NautilusColumnChooser *chooser,
FMListView *view)
{
NautilusFile *file;
- GList *visible_columns;
- GList *column_order;
-
+ char **visible_columns;
+ char **column_order;
+ GList *list;
+ int i;
+
file = fm_directory_view_get_directory_as_file (FM_DIRECTORY_VIEW (view));
nautilus_column_chooser_get_settings (chooser,
&visible_columns,
&column_order);
- nautilus_file_set_metadata_list (file, NAUTILUS_METADATA_KEY_LIST_VIEW_VISIBLE_COLUMNS, NAUTILUS_METADATA_SUBKEY_COLUMNS, visible_columns);
- nautilus_file_set_metadata_list (file, NAUTILUS_METADATA_KEY_LIST_VIEW_COLUMN_ORDER, NAUTILUS_METADATA_SUBKEY_COLUMNS, column_order);
+ list = NULL;
+ for (i = 0; visible_columns[i] != NULL; ++i) {
+ list = g_list_prepend (list, visible_columns[i]);
+ }
+ list = g_list_reverse (list);
+ nautilus_file_set_metadata_list (file,
+ NAUTILUS_METADATA_KEY_LIST_VIEW_VISIBLE_COLUMNS,
+ NAUTILUS_METADATA_SUBKEY_COLUMNS,
+ list);
+ g_list_free (list);
+
+ list = NULL;
+ for (i = 0; column_order[i] != NULL; ++i) {
+ list = g_list_prepend (list, column_order[i]);
+ }
+ list = g_list_reverse (list);
+ nautilus_file_set_metadata_list (file,
+ NAUTILUS_METADATA_KEY_LIST_VIEW_COLUMN_ORDER,
+ NAUTILUS_METADATA_SUBKEY_COLUMNS,
+ list);
+ g_list_free (list);
- eel_g_list_free_deep (visible_columns);
- eel_g_list_free_deep (column_order);
+ g_strfreev (visible_columns);
+ g_strfreev (column_order);
set_columns_settings_from_metadata_and_preferences (view);
}
@@ -1908,8 +1980,8 @@ static void
column_chooser_set_from_settings (NautilusColumnChooser *chooser,
FMListView *view)
{
- GList *visible_columns;
- GList *column_order;
+ char **visible_columns;
+ char **column_order;
g_signal_handlers_block_by_func
(chooser, G_CALLBACK (column_chooser_changed_callback), view);
@@ -1921,9 +1993,9 @@ column_chooser_set_from_settings (NautilusColumnChooser *chooser,
visible_columns,
column_order);
- eel_g_list_free_deep (visible_columns);
- eel_g_list_free_deep (column_order);
-
+ g_strfreev (visible_columns);
+ g_strfreev (column_order);
+
g_signal_handlers_unblock_by_func
(chooser, G_CALLBACK (column_chooser_changed_callback), view);
}
@@ -2628,10 +2700,10 @@ fm_list_view_class_init (FMListViewClass *class)
&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_glist (NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_VISIBLE_COLUMNS,
- (const GList **) &default_visible_columns_auto_value);
- eel_preferences_add_auto_string_glist (NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_COLUMN_ORDER,
- (const GList **) &default_column_order_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);
}
static const char *
diff --git a/src/nautilus-file-management-properties.c b/src/nautilus-file-management-properties.c
index 3a205099f..fc493aad4 100644
--- a/src/nautilus-file-management-properties.c
+++ b/src/nautilus-file-management-properties.c
@@ -266,18 +266,18 @@ static void
columns_changed_callback (NautilusColumnChooser *chooser,
gpointer callback_data)
{
- GList *visible_columns;
- GList *column_order;
-
+ char **visible_columns;
+ char **column_order;
+
nautilus_column_chooser_get_settings (NAUTILUS_COLUMN_CHOOSER (chooser),
&visible_columns,
&column_order);
- eel_preferences_set_string_glist (NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_VISIBLE_COLUMNS, visible_columns);
- eel_preferences_set_string_glist (NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_COLUMN_ORDER, 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);
- eel_g_list_free_deep (visible_columns);
- eel_g_list_free_deep (column_order);
+ g_strfreev (visible_columns);
+ g_strfreev (column_order);
}
static void
@@ -331,13 +331,13 @@ static void
icon_captions_changed_callback (GtkComboBox *combo_box,
gpointer user_data)
{
- GList *captions;
+ GPtrArray *captions;
GladeXML *xml;
int i;
xml = GLADE_XML (user_data);
- captions = NULL;
+ captions = g_ptr_array_new ();
for (i = 0; icon_captions_components[i] != NULL; i++) {
GtkWidget *combo_box;
@@ -353,11 +353,13 @@ icon_captions_changed_callback (GtkComboBox *combo_box,
"column_names");
name = g_ptr_array_index (column_names, active);
- captions = g_list_prepend (captions, g_strdup (name));
+ g_ptr_array_add (captions, name);
}
- captions = g_list_reverse (captions);
- eel_preferences_set_string_glist (NAUTILUS_PREFERENCES_ICON_VIEW_CAPTIONS, captions);
- eel_g_list_free_deep (captions);
+ g_ptr_array_add (captions, NULL);
+
+ eel_preferences_set_string_array (NAUTILUS_PREFERENCES_ICON_VIEW_CAPTIONS,
+ (char **)captions->pdata);
+ g_ptr_array_free (captions, TRUE);
}
static void
@@ -395,28 +397,29 @@ update_caption_combo_box (GladeXML *xml,
static void
update_icon_captions_from_gconf (GladeXML *xml)
{
- GList *captions;
- int i;
- GList *l;
- char *data;
+ char **captions;
+ int i, j;
- captions = eel_preferences_get_string_glist (NAUTILUS_PREFERENCES_ICON_VIEW_CAPTIONS);
+ captions = eel_preferences_get_string_array (NAUTILUS_PREFERENCES_ICON_VIEW_CAPTIONS);
- for (l = captions, i = 0;
+ for (i = 0, j = 0;
icon_captions_components[i] != NULL;
i++) {
- if (l != NULL) {
- data = l->data;
- l = l->next;
+ char *data;
+
+ if (captions[j]) {
+ data = captions[j];
+ ++j;
} else {
data = "none";
}
-
+
update_caption_combo_box (xml,
icon_captions_components[i],
data);
}
- eel_g_list_free_deep (captions);
+
+ g_strfreev (captions);
}
static void
@@ -478,19 +481,18 @@ create_date_format_menu (GladeXML *xml_dialog)
static void
set_columns_from_gconf (NautilusColumnChooser *chooser)
{
- GList *visible_columns;
- GList *column_order;
+ char **visible_columns;
+ char **column_order;
- visible_columns = eel_preferences_get_string_glist (NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_VISIBLE_COLUMNS);
- column_order = eel_preferences_get_string_glist (NAUTILUS_PREFERENCES_LIST_VIEW_DEFAULT_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,
column_order);
-
- eel_g_list_free_deep (visible_columns);
- eel_g_list_free_deep (column_order);
+ g_strfreev (visible_columns);
+ g_strfreev (column_order);
}
static void
diff --git a/src/nautilus-shell.c b/src/nautilus-shell.c
index 4a803b134..18cfa5f5a 100644
--- a/src/nautilus-shell.c
+++ b/src/nautilus-shell.c
@@ -379,10 +379,10 @@ save_window_states (void)
char *window_attributes;
int x, y, width, height;
char *location;
- GList *states;
+ GPtrArray *states;
int screen_num = -1;
- states = NULL;
+ states = g_ptr_array_new ();
windows = nautilus_application_get_window_list ();
for (node = windows; node; node = g_list_next (node)) {
g_assert (node->data != NULL);
@@ -407,23 +407,21 @@ save_window_states (void)
screen_num);
g_free (location);
- states = g_list_prepend (states, window_attributes);
+ g_ptr_array_add (states, window_attributes);
}
+ g_ptr_array_add (states, NULL);
if (eel_preferences_key_is_writable (START_STATE_CONFIG)) {
- states = g_list_reverse (states);
- eel_preferences_set_string_glist (START_STATE_CONFIG, states);
+ eel_preferences_set_string_array (START_STATE_CONFIG,
+ (char **) states->pdata);
}
- eel_g_list_free_deep (states);
- g_list_free (states);
+ g_ptr_array_free (states, TRUE);
}
static void
-restore_one_window_callback (const char *attributes,
- gpointer callback_data)
+restore_one_window (const char *attributes, NautilusShell *shell)
{
- NautilusShell *shell;
char **attrs;
int attrs_len;
int x;
@@ -435,9 +433,7 @@ restore_one_window_callback (const char *attributes,
GdkScreen *screen = NULL;
g_return_if_fail (!eel_str_is_empty (attributes));
- g_return_if_fail (NAUTILUS_IS_SHELL (callback_data));
-
- shell = NAUTILUS_SHELL (callback_data);
+ g_return_if_fail (NAUTILUS_IS_SHELL (shell));
attrs = g_strsplit (attributes, ",", -1);
attrs_len = g_strv_length (attrs);
@@ -505,18 +501,27 @@ restore_one_window_callback (const char *attributes,
static gboolean
restore_window_states (NautilusShell *shell)
{
- GList *states;
+ char **states;
gboolean result;
+ int i;
+
+ result = FALSE;
+
+ states = eel_preferences_get_string_array (START_STATE_CONFIG);
+ if (!states) {
+ return result;
+ }
+
+ for (i = 0; states[i] != NULL; ++i) {
+ result = TRUE;
+ restore_one_window (states[i], shell);
+ }
- states = eel_preferences_get_string_glist (START_STATE_CONFIG);
- result = g_list_length (states) > 0;
- g_list_foreach (states, (GFunc) restore_one_window_callback, shell);
if (eel_preferences_key_is_writable (START_STATE_CONFIG)) {
- eel_preferences_set_string_glist (START_STATE_CONFIG, NULL);
+ eel_preferences_set_string_array (START_STATE_CONFIG, NULL);
}
- eel_g_list_free_deep (states);
- g_list_free (states);
+ g_strfreev (states);
return result;
}
diff --git a/test/test-nautilus-preferences-change.c b/test/test-nautilus-preferences-change.c
deleted file mode 100644
index b34317751..000000000
--- a/test/test-nautilus-preferences-change.c
+++ /dev/null
@@ -1,121 +0,0 @@
-#include "test.h"
-
-#include <eel/eel-string-picker.h>
-#include <libnautilus-private/nautilus-global-preferences.h>
-#include <unistd.h>
-
-static void
-fruits_changed_callback (gpointer callback_data)
-{
- g_print ("Something underneath 'fruits' changed, dunno what\n");
-}
-
-static void
-int_picker_changed_callback (EelStringPicker *string_picker,
- gpointer callback_data)
-{
- char *selected_string;
- int new_value;
-
- g_return_if_fail (EEL_IS_STRING_PICKER (string_picker));
- g_return_if_fail (callback_data != NULL);
-
- selected_string = eel_string_picker_get_selected_string (string_picker);
-
- new_value = eel_string_picker_get_index_for_string (string_picker, selected_string);
-
- eel_preferences_set_integer ((const char *) callback_data, new_value);
-
- g_free (selected_string);
-}
-
-static GtkWidget *
-picker_new (const char *name,
- const EelStringList *entries)
-{
- GtkWidget *string_picker;
-
- g_return_val_if_fail (name != NULL, NULL);
- g_return_val_if_fail (entries != NULL, NULL);
-
- string_picker = eel_string_picker_new ();
- eel_caption_set_title_label (EEL_CAPTION (string_picker), name);
- g_signal_connect (string_picker, "changed",
- G_CALLBACK (int_picker_changed_callback), (gpointer) name);
-
- eel_string_picker_set_string_list (EEL_STRING_PICKER (string_picker), entries);
- eel_string_picker_set_selected_string_index (EEL_STRING_PICKER (string_picker),
- eel_preferences_get_integer (name));
-
- return string_picker;
-}
-
-int
-main (int argc, char *argv[])
-{
- GtkWidget *window;
- GtkWidget *green_picker;
- GtkWidget *yellow_picker;
- GtkWidget *red_picker;
- GtkWidget *fruits_apple_picker;
- GtkWidget *fruits_orange_picker;
- GtkWidget *fruits_pear_picker;
-
- GtkWidget *vbox;
-
- EelStringList *user_level_entries;
- EelStringList *color_entries;
- EelStringList *fruits_entries;
-
- test_init (&argc, &argv);
-
- nautilus_global_preferences_init ();
-
- user_level_entries = eel_string_list_new_from_tokens ("Beginner,Intermediate,Advanced", ",", TRUE);
- color_entries = eel_string_list_new_from_tokens ("0,1,2,3,4,5,6,7,8,9,10", ",", TRUE);
- fruits_entries = eel_string_list_new_from_tokens ("0,1,2,3", ",", TRUE);
-
- eel_preferences_set_emergency_fallback_integer ("green", 3);
-
- eel_preferences_set_emergency_fallback_integer ("yellow", 9);
-
- eel_preferences_set_emergency_fallback_integer ("red", 7);
-
- eel_preferences_set_emergency_fallback_integer ("fruits/apple", 1);
- eel_preferences_set_emergency_fallback_integer ("fruits/orange", 2);
- eel_preferences_set_emergency_fallback_integer ("fruits/pear", 3);
-
- /* sleep (10); */
-
- window = test_window_new (NULL, 4);
- test_window_set_title_with_pid (GTK_WINDOW (window), "Preferences Change");
-
- vbox = gtk_vbox_new (FALSE, 2);
- gtk_container_add (GTK_CONTAINER (window), vbox);
-
- green_picker = picker_new ("green", color_entries);
- yellow_picker = picker_new ("yellow", color_entries);
- red_picker = picker_new ("red", color_entries);
- fruits_apple_picker = picker_new ("fruits/apple", fruits_entries);
- fruits_orange_picker = picker_new ("fruits/orange", fruits_entries);
- fruits_pear_picker = picker_new ("fruits/pear", fruits_entries);
-
- gtk_box_pack_start (GTK_BOX (vbox), green_picker, FALSE, FALSE, 0);
- gtk_box_pack_start (GTK_BOX (vbox), yellow_picker, FALSE, FALSE, 0);
- gtk_box_pack_start (GTK_BOX (vbox), red_picker, FALSE, FALSE, 0);
- gtk_box_pack_start (GTK_BOX (vbox), fruits_apple_picker, FALSE, FALSE, 20);
- gtk_box_pack_start (GTK_BOX (vbox), fruits_orange_picker, FALSE, FALSE, 20);
- gtk_box_pack_start (GTK_BOX (vbox), fruits_pear_picker, FALSE, FALSE, 20);
-
- eel_string_list_free (user_level_entries);
- eel_string_list_free (color_entries);
- eel_string_list_free (fruits_entries);
-
- eel_preferences_add_callback ("fruits", fruits_changed_callback, NULL);
-
- gtk_widget_show_all (window);
-
- gtk_main ();
-
- return 0;
-}